Chuyển đến nội dung
Diễn đàn CADViet
tuan_thietkedien

Xin các pác viết dùm lisp ở lệnh text fit

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

Chào cả nhà

 

Tớ thường sử dụng lệnh text fit để thay đổi width factor theo chiều dài khung định trước.

 

Mà cái lệnh này mỗi lần dùng chỉ dùng được cho 1 text thôi. Hàng ngày tớ dùng rất nhiều nên nhờ pác nào có thể viết dùng lisp để ứng dụng hàng loạt text.

 

http://www.cadviet.com/upfiles/tham_khao.jpg

 

Cảm ơn các pác nhiều.

 

Tuấn tiger19812004@yahoo.co.jp

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
Chào cả nhà

 

Tớ thường sử dụng lệnh text fit để thay đổi width factor theo chiều dài khung định trước.

 

Mà cái lệnh này mỗi lần dùng chỉ dùng được cho 1 text thôi. Hàng ngày tớ dùng rất nhiều nên nhờ pác nào có thể viết dùng lisp để ứng dụng hàng loạt text.

 

http://www.cadviet.com/upfiles/tham_khao.jpg

 

Cảm ơn các pác nhiều.

 

Tuấn tiger19812004@yahoo.co.jp

 

Lệnh là TEXTFITM.

-Vì áp dụng cho nhiều text nên tiện ích không tự nhận điểm đầu tiên mà bạn phải chọn cả điểm bắt đầu và kết thúc (nhập giá trị độ dài bằng số cũng được).

-Tiện ích chỉ thay đổi độ rộng các dòng text bằng với khoảng độ dài mới (chọn 2 điểm hoặc nhập giá trị số) còn lại điểm canh lề thứ nhất và góc quay vẫn giữ nguyên.

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(Defun c:textfitm ( )
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
(Princ "\nHay chon doi tuong :")
(setq SS (ssget '((0 . "TEXT"))))

  (SETQ NDT (GETDIST "\nNhap do rong : "))

(setq i 0)
(setq N (sslength ss))
(while (< i N)
  (setq TEXTENT (ssname SS i))

 (setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)

(command "ucs" "object" textent)
(setq tbTB (textbox (list (cons -1 textent)))
        ll (car tbTB)
       ur (cadr tbTB)
       ul (list (car ll) (cadr ur))
       lr (list (car ur) (cadr ll))
)

 (setq  daitext (distance ul lr))

          (setq e (entget TEXTENT))

          (setq tilehientai (cdr (assoc 41 e)))
          (setq daitextthuc (/ daitext tilehientai))
          (setq tilexmoi (/ NDT daitextthuc))

          (setq e (subst (cons 41 tilexmoi) (assoc 41 e) e))
          (entmod e)

 (command "ucs" "p")

  (setq i (1+ i))

 (setvar "osmode" luubatdiem)  

)
     (Princ)
) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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
Lệnh là TEXTFITM.

-Vì áp dụng cho nhiều text nên tiện ích không tự nhận điểm đầu tiên mà bạn phải chọn cả điểm bắt đầu và kết thúc (nhập giá trị độ dài bằng số cũng được).

-Tiện ích chỉ thay đổi độ rộng các dòng text bằng với khoảng độ dài mới (chọn 2 điểm hoặc nhập giá trị số) còn lại điểm canh lề thứ nhất và góc quay vẫn giữ nguyên.

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(Defun c:textfitm ( )
(princ "\nPHAM QUOC DUY Binh Son - Quang ngai")
(Princ "\nHay chon doi tuong :")
(setq SS (ssget '((0 . "TEXT"))))

  (SETQ NDT (GETDIST "\nNhap do rong : "))

(setq i 0)
(setq N (sslength ss))
(while (< i N)
  (setq TEXTENT (ssname SS i))

 (setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)

(command "ucs" "object" textent)
(setq tbTB (textbox (list (cons -1 textent)))
        ll (car tbTB)
       ur (cadr tbTB)
       ul (list (car ll) (cadr ur))
       lr (list (car ur) (cadr ll))
)

 (setq  daitext (distance ul lr))

          (setq e (entget TEXTENT))

          (setq tilehientai (cdr (assoc 41 e)))
          (setq daitextthuc (/ daitext tilehientai))
          (setq tilexmoi (/ NDT daitextthuc))

          (setq e (subst (cons 41 tilexmoi) (assoc 41 e) e))
          (entmod e)

 (command "ucs" "p")

  (setq i (1+ i))

 (setvar "osmode" luubatdiem)  

)
     (Princ)
) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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ớ đã dùng thử rồi.

 

Cám ơn bạn Duy nhiều.

 

Không biết là để viết được lisp như vậy thì học có khó không.

 

Bởi vì tớ định hỏi Duy thêm vài lisp nữa.

 

Nếu được thì xin Duy chỉ giáo nha.

 

Rãnh rỗi mời Duy ucf.^^ :cheers:

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ớ đã dùng thử rồi.

 

Cám ơn bạn Duy nhiều.

 

Không biết là để viết được lisp như vậy thì học có khó không.

 

Bởi vì tớ định hỏi Duy thêm vài lisp nữa.

 

Nếu được thì xin Duy chỉ giáo nha.

 

Rãnh rỗi mời Duy ucf.^^ :cheers:

Bạn cứ nêu yêu cầu mọi người trên diễn đàn ai giúp được sẽ giúp.

Học lisp theo mình thì củng không khó lắm.

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

@Duy : nếu Duy có giáo trình nào tự học lisp dễ hiểu thì xin cho tớ link để down nha

 

HÔm nay có 2 lisp nhờ mọi người chỉ giáo

 

Lisp 1 : Lineweight của tất cả màu tím - magenta ; màu xanh - cyan là 0.09mm

 

tất cả màu trắng - white là 0.2mm

 

tất cả màu vàng - yellow ; màu đỏ - red là 0.3mm

 

Lisp 2 : lệnh về sử dụng Quickleader

 

http://www.cadviet.com/upfiles/BOOK1.xls

 

Về Quickleader tớ dùng nhiều lắm nên nếu có thề áp dụng hàng loạt thí quá tốt.

 

Cám ơn các pác nhiều.

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


×