Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
cadthanyeu

đổi thuộc tính cho text

Các bài được khuyến nghị

Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.

các bạn xem giúp tôi nhé.

 

(setq ent(ssget "x" (list (cons 8 "hoten")(cons 0 "TEXT"))))

(setq n(sslength ent))

(command "text" "j" "C" "" "0" n )

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.

các bạn xem giúp tôi nhé.

 

(setq ent(ssget "x" (list (cons 8 "hoten")(cons 0 "TEXT"))))

(setq n(sslength ent))

(command "text" "j" "C" "" "0" n )

Mình nghĩ rằng không nhất thiết phải sử dụng Lisp, bạn hãy dùng lệnh filter trong AutoCad.

Để thay đổi đối tượng thì đầu tiên bạn phải lựa chọn đối tượng

Command : filter

Bạn Add to list :

layer = hoten

Text Style name = vnarial

Text Height = 5

Object = Text

Bạn lưu cách chọn lựa này theo một tên nào đó trong hộp Save As sau đó Apply chọn đối tượng là xong

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Mình nghĩ rằng không nhất thiết phải sử dụng Lisp, bạn hãy dùng lệnh filter trong AutoCad.

Để thay đổi đối tượng thì đầu tiên bạn phải lựa chọn đối tượng

Command : filter

Bạn Add to list :

layer = hoten

Text Style name = vnarial

Text Height = 5

Object = Text

Bạn lưu cách chọn lựa này theo một tên nào đó trong hộp Save As sau đó Apply chọn đối tượng là xong

Tôi cũng biết lệnh Change text (CHT) trong acad nhưng tôi muốn hỏi cách viết mã lisp để học hỏi về nhôn ngữ lisp.

- ttôi đã biết được mã lisp để chọn tất cả các text trong lớp "HOten" nhưng không biết đoạn mã nào để thay đổi tất cả thuộc tính của chúng.

Các bạn gíup tôi với nhé .

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tôi cũng biết lệnh Change text (CHT) trong acad nhưng tôi muốn hỏi cách viết mã lisp để học hỏi về nhôn ngữ lisp.

- ttôi đã biết được mã lisp để chọn tất cả các text trong lớp "HOten" nhưng không biết đoạn mã nào để thay đổi tất cả thuộc tính của chúng.

Các bạn gíup tôi với nhé .

Text có rất nhiều thuộc tính. Bạn nói chung chung quá. Bạn có thể nói rõ hơn được không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.

các bạn xem giúp tôi nhé.

 

(setq ent(ssget "x" (list (cons 8 "hoten")(cons 0 "TEXT"))))

(setq n(sslength ent))

(command "text" "j" "C" "" "0" n )

Bạn thử làm bài này trước đã:

 

Thay đổi height của MỘT ĐỐI TƯỢNG TEXT bất kỳ nào đó đang có trên bản vẽ.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Tôi mới làm quen với lisp. Tôi xin hỏi các bạn là : tôi muốn thay đổi thuộc tính (Heihght = 5, textstyle= vnarial) tất cả các đối tượng text thuộc lớp "hoten" trong bản vẽ thì viết lisp như thế nào ? tôi đã viết lệnh sau nhưng không được. Tôi không biết dùng hàm gì để thay dổi được tất cả các text thuộc lớp "hoten" trong bản vẽ.

các bạn xem giúp tôi nhé.

......................

Bạn thử LISP này xem sao :

;;;; Doi thuoc tinh chieu cao va kieu TEXT 
(defun C:doi_text (/ ss lst ent)
 (setq ss (ssget "X" (list (cons 8 "hoten")(cons 0 "TEXT")))
lst (ss2ent ss))
 (if (not (tblsearch "style" "vnarial"))
(command "-style" "vnarial" "" "" "" "" "" "" "")  )
 (repeat (length lst)
   (setq ent (entget (car lst))
  lst (cdr lst)
  ent (subst (cons 40 5) (assoc 40 ent) ent)
  ent (subst (cons 7 "vnarial") (assoc 7 ent) ent)
   )
   (entmod ent)
 )
 (princ)
)

(defun ss2ent (ss / sodt index lstent)
 (setq sodt (if ss (sslength ss) 0)
index 0
)
 (repeat sodt
   (setq ent (ssname ss index)
  index (1+ index)
  lstent (cons ent lstent)
  )
   )
 (reverse lstent)
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn thử LISP này xem sao :

;;;; Doi thuoc tinh chieu cao va kieu TEXT 
(defun C:doi_text (/ ss lst ent)
 (setq ss (ssget "X" (list (cons 8 "hoten")(cons 0 "TEXT")))
lst (ss2ent ss))
 (if (not (tblsearch "style" "vnarial"))
(command "-style" "vnarial" "" "" "" "" "" "" "")  )
 (repeat (length lst)
   (setq ent (entget (car lst))
  lst (cdr lst)
  ent (subst (cons 40 5) (assoc 40 ent) ent)
  ent (subst (cons 7 "vnarial") (assoc 7 ent) ent)
   )
   (entmod ent)
 )
 (princ)
)

(defun ss2ent (ss / sodt index lstent)
 (setq sodt (if ss (sslength ss) 0)
index 0
)
 (repeat sodt
   (setq ent (ssname ss index)
  index (1+ index)
  lstent (cons ent lstent)
  )
   )
 (reverse lstent)
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn ơi lisp này sao tôi chạy không được,bạn xem lại giúp tôi nhé.

 

Khi chạy, CAD thông báo lỗi gì hả bạn ?

 

Bạn kiểm tra : bản vẽ của bạn có Đối tượng Text trên lớp Hoten không ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×