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

Lisp Canh Lề Text nhanh

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

DOWNLOAD LISP CANH LỀ TEXT:  https://kysuthietke.com/lisp-canh-le-text/

 

Khi bạn làm việc sẽ thường xuyên gặp trường hợp các dòng Text nằm lộn xộn. Để sắp xếp chúng thẳng hàng nhanh chóng hãy sử dụng lisp phía trên. Bạn sẽ có thể Lisp canh lề Text theo bên trái, bên phải hoặc ở giữa.

Canh lề trái: lệnh JL

Canh lề phải: lệnh JR

Canh giữa: lệnh JC

Ví dụ:

CÁC TEXT NẰM LỘN XỘN CẦN ĐƯỢC SẮP XẾP

Text-lon-xon-1024x213.jpg

CÁC TEXT ĐƯỢC CANH LỀ TRÁI (SỬ DỤNG LỆNH JL)

Canh-Le-Trai-1.jpg

CÁC TEXT ĐƯỢC CANH LỀ PHẢI (SỬ DỤNG LỆNH JR)

Canh-Le-Prai-1-1024x267.jpg

CÁC TEXT ĐƯỢC CANH GIỮA (SỬ DỤNG LỆNH JC)

Canh-giua-1-1024x233.jpg

  • Like 1

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

Dựa vào ý tưởng trên, mình viết lại tổng hợp lại thành 1 lệnh, tổng hợp các trường hợp canh lề (và bổ sung thêm Spacing), áp dụng cho Text và Mtext. Lệnh CLT.

 

 

CLT.rar

  • Like 1
  • Vote tăng 1

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

Em dùng quen Cad 2014 nên chưa có lệnh TextAlign, và em nghĩ cũng có nhiều người chưa nâng cấp lên cad đời cao quá vì thói quen ^^

Sửa lại 1 chút Lisp của chủ tus để dùng được với cả MTEXT. Lệnh vẫn như cũ.

(Mtext mình hay dùng kiểu TOP Left, Top Right, Top Center. Bạn nào dùng kiểu khác như Middle Left, bottom left thì đổi các kí tự đầu  tương ứng vào (command "_.justifytext" #sset "" "_TC") nhé ^^

(defun c:JL( / qa #sset osmode pt2 ssl pcanh te pt ptnew tent)
  (prompt "\nCh\U+1ECDn TEXT c\U+1EA7n ch\U+1EC9nh s\U+1EEDa: ")
  (setq #sset (ssget '((0 . "MTEXT,TEXT"))))
  (setq qa (getvar 'QAFLAGS)
	      oldos (getvar 'osmode))
  (setvar 'QAFLAGS 1)
  (command "_.justifytext" #sset "" "_TL")
  (setq pcanh (getpoint "\nPick \U+0111i\U+1EC3m c\U+0103n l\U+1EC1 tr\U+00E1i!"))
  
  
  (setq ssl (sslength #sset))
  
  (while (> ssl 0)
    (setq te (ssname #sset (setq ssl (1- ssl))))
    (if (= (cdr (assoc 0 (entget te))) "TEXT") (progn
    (setq pt (cdr (assoc 11 (entget te))))
    (if (equal pt '(0.0 0.0 0.0))
      (setq pt (cdr (assoc 10 (entget te))))
    )
    (setq ptnew (list (car pcanh) (cadr pt) 0.0))
    (setq tent (entget te))
    (setq tent (subst (cons 73 2) (assoc 73 tent) tent))
    (setq tent (subst (cons 72 0) (assoc 72 tent) tent))
    (setq tent (subst (cons 11 ptnew) (assoc 11 tent) tent))
    (entmod tent)
  )
    (progn
      (setq pt (cdr (assoc 10 (entget te))))
      (setq pt2  (list (car pcanh) (cadr pt) (caddr pt)))
      (setvar "osmode" 0)
      (command "MOVE" te "" pt pt2)
      (setvar "osmode" oldos)
      
      ))
  (princ)
)
(setvar 'QAFLAGS qa)
)
;======================================================================================================================================================================
(defun c:JR ( / qa #sset osmode pt2 ssl pcanh te pt ptnew tent)
  (prompt "\nCh\U+1ECDn TEXT c\U+1EA7n ch\U+1EC9nh s\U+1EEDa: ")
 (setq #sset  (ssget '((0 . "MTEXT,TEXT"))))
  (setq qa (getvar 'QAFLAGS)
	      oldos (getvar 'osmode))
  (setvar 'QAFLAGS 1)
  (command "_.justifytext" #sset "" "_TR")
  (setq pcanh (getpoint "\nPick \U+0111i\U+1EC3m c\U+0103n l\U+1EC1 ph\U+1EA3i!"))
  (setq ssl (sslength #sset))
  (while (> ssl 0)
    (setq te (ssname #sset (setq ssl (1- ssl))))
    (if (= (cdr (assoc 0 (entget te))) "TEXT") (progn
    (setq pt (cdr (assoc 11 (entget te))))
    (if (equal pt '(0.0 0.0 0.0))
      (setq pt (cdr (assoc 10 (entget te))))
    )
    (setq ptnew (list (car pcanh) (cadr pt) 0.0))
    (setq tent (entget te))
    (setq tent (subst (cons 73 2) (assoc 73 tent) tent))
    (setq tent (subst (cons 72 2) (assoc 72 tent) tent))
    (setq tent (subst (cons 11 ptnew) (assoc 11 tent) tent))
    (entmod tent)
  )  (progn
      (setq pt (cdr (assoc 10 (entget te))))
      (setq pt2  (list (car pcanh) (cadr pt) (caddr pt)))
      (setvar "osmode" 0)
      (command "MOVE" te "" pt pt2)
      (setvar "osmode" oldos)
      ))
  (princ)
)
(setvar 'QAFLAGS qa))
;======================================================================================================================================================================
(defun c:JC( / qa #sset osmode pt2 ssl pcanh te pt ptnew tent)
  (prompt "\nCh\U+1ECDn TEXT c\U+1EA7n ch\U+1EC9nh s\U+1EEDa: ")
  (setq #sset  (ssget '((0 . "MTEXT,TEXT"))))
  (setq qa (getvar 'QAFLAGS)
	      oldos (getvar 'osmode))
  (setvar 'QAFLAGS 1)
  (command "_.justifytext" #sset "" "_TC")
  (setq pcanh (getpoint "\nPick \U+0111i\U+1EC3m c\U+0103n l\U+1EC1 gi\U+1EEFa!"))

  (setq ssl (sslength #sset))
  
  (while (> ssl 0)
    (setq te (ssname #sset (setq ssl (1- ssl))))
    (if (= (cdr (assoc 0 (entget te))) "TEXT") (progn
    (setq pt (cdr (assoc 11 (entget te))))
    (if (equal pt '(0.0 0.0 0.0))
      (setq pt (cdr (assoc 10 (entget te))))
    )
    (setq ptnew (list (car pcanh) (cadr pt) 0.0))
    (setq tent (entget te))
    (setq tent (subst (cons 73 2) (assoc 73 tent) tent))
    (setq tent (subst (cons 72 1) (assoc 72 tent) tent))
    (setq tent (subst (cons 11 ptnew) (assoc 11 tent) tent))
    (entmod tent)
  )(progn
      (setq pt (cdr (assoc 10 (entget te))))
      (setq pt2  (list (car pcanh) (cadr pt) (caddr pt)))
      (setvar "osmode" 0)
      (command "MOVE" te "" pt pt2)
      (setvar "osmode" oldos)
      ))
  
  (princ)
)
(setvar 'QAFLAGS qa))

 

  • Like 1

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  

×