7 tháng 4, 2011

LISP căn chỉnh text

;;--------------------------------------------------------------------------------------
;;Ch­¬ng tr×nh canh dßng bªn tr¸i- canh ®øng theo trôc Y
(defun c:tt () ; Canh dßng tr¸i
(setvar "cmdecho" 1)
(setq chon (ssget '((0 . "text")))) ;ChØ chän Text
(setq sotext (sslength chon))
(setq N 0)
(setq diem (getpoint "\nChon diem canh dong:"))
(setq canhX (car diem)) ;LÊy täa ®é X cña ®iÓm canh dßng
(setq canhY (cadr diem)) ; LÊy täa ®é Y cña ®iÓm canh dßng
;--- Chän chÕ ®é canh tr¸i ----------
(repeat sotext
(setq toadoY (caddr (assoc 10 (entget (ssname chon N))))) ;LÊy gi¸ trÞ täa ®é Y cña ch÷
(setq text (entget (ssname chon N)))
(setq trai (assoc 72 text)) ;LÊy ®Æc tÝnh canh dßng
(setq text (subst '(72 . 0) trai text)) ; ChuyÓn sang canh dßng tr¸i
(setq day (assoc 73 text)) ;LÊy ®Æc tÝnh canh dßng d¹ng canh ngang
(setq text (subst '(73 . 0) day text)) ; ChuyÓn sang canh dßng ®¸y (baseline)
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq toado (assoc 10 text))
(setq toadomoi (list 10 canhX toadoY 0.0)) ;LËp vÞ trÝ míi cho ch÷
(setq text (subst toadomoi toado text)) ; ChuyÓn sang täa ®é míi
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq toado1 (assoc 11 text))
(setq toadomoi1 (list 11 0.0 0.0 0.0)) ;LËp vÞ trÝ míi cho ch÷
(setq text (subst toadomoi1 toado1 text)) ; ChuyÓn sang täa ®é míi
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq N(+ 1 N))
))
;;--------------------------------------------------------------------------------------------
;;--------------------------------------------------------------------------------------------
;;Ch­¬ng tr×nh canh dßng bªn ph¶i- canh ®øng theo trôc X
(defun c:pp () ; Canh dßng ph¶i
(setvar "cmdecho" 1)
(setq chon (ssget '((0 . "text")))) ;ChØ chän Text
(setq sotext (sslength chon))
(setq N 0)
(setq diem (getpoint "\nChon diem canh dong:"))
(setq canhX (car diem)) ;LÊy täa ®é X cña ®iÓm canh dßng
(setq canhY (cadr diem)) ; LÊy täa ®é Y cña ®iÓm canh dßng
;--- Chän chÕ ®é canh ph¶i ----------
(repeat sotext
(setq toadoY (caddr (assoc 10 (entget (ssname chon N))))) ;LÊy gi¸ trÞ täa ®é Y cña ch÷
(setq text (entget (ssname chon N)))
(setq phai (assoc 72 text)) ;LÊy ®Æc tÝnh canh dßng
(setq text (subst '(72 . 2) phai text)) ; ChuyÓn sang canh dßng ph¶i
(setq day (assoc 73 text)) ;LÊy ®Æc tÝnh canh dßng d¹ng canh ngang
(setq text (subst '(73 . 0) day text)) ; ChuyÓn sang canh dßng ®¸y (baseline)
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq toado (assoc 11 text))
(setq toadomoi (list 11 canhX toadoY 0.0)) ;LËp vÞ trÝ míi cho ch÷
(setq text (subst toadomoi toado text)) ; ChuyÓn sang täa ®é míi
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq N(+ 1 N))
))
;;--------------------------------------------------------------------------------------------
;;Ch­¬ng tr×nh canh dßng bªn gi÷a- canh ®øng theo trôc X
(defun c:gg () ; Canh dßng gÜ­a
(setvar "cmdecho" 1)
(setq chon (ssget '((0 . "text")))) ;ChØ chän Text
(setq sotext (sslength chon))
(setq N 0)
(setq diem (getpoint "\nChon diem canh dong:"))
(setq canhX (car diem)) ;LÊy täa ®é X cña ®iÓm canh dßng
(setq canhY (cadr diem)) ; LÊy täa ®é Y cña ®iÓm canh dßng
;--- Chän chÕ ®é canh gi÷a ----------
(repeat sotext
(setq toadoY (caddr (assoc 10 (entget (ssname chon N))))) ;LÊy gi¸ trÞ täa ®é Y cña ch÷
(setq text (entget (ssname chon N)))
(setq giua (assoc 72 text)) ;LÊy ®Æc tÝnh canh dßng
(setq text (subst '(72 . 1) giua text)) ; ChuyÓn sang canh gi÷a
(setq day (assoc 73 text)) ;LÊy ®Æc tÝnh canh dßng d¹ng canh ngang
(setq text (subst '(73 . 0) day text)) ; ChuyÓn sang canh dßng ®¸y (baseline)
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq toado (assoc 11 text))
(setq toadomoi (list 11 canhX toadoY 0.0)) ;LËp vÞ trÝ míi cho ch÷
(setq text (subst toadomoi toado text)) ; ChuyÓn sang täa ®é míi
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq N(+ 1 N))
))
;;--------------------------------------------------------------------------------------------
;;--------------------------------------------------------------------------------------------
;;Ch­¬ng tr×nh canh dßng - canh ngang theo trôc X
(defun c:Ng () ; Canh dßng ngang, canh ®¸y ch÷
(setvar "cmdecho" 1)
(setq chon (ssget '((0 . "text")))) ;ChØ chän Text
(setq sotext (sslength chon))
(setq N 0)
(setq diem (getpoint "\nChon diem canh dong:"))
(setq canhX (car diem)) ;LÊy täa ®é X cña ®iÓm canh dßng
(setq canhY (cadr diem)) ; LÊy täa ®é Y cña ®iÓm canh dßng
;--- Chän chÕ ®é canh tr¸i ----------
(repeat sotext
;--Canh tr¸i -----
(setq toadoX (cadr (assoc 10 (entget (ssname chon N))))) ;LÊy gi¸ trÞ täa ®é X cña ch÷
(setq text (entget (ssname chon N)))
(setq trai (assoc 72 text)) ;LÊy ®Æc tÝnh canh dßng
(setq text (subst '(72 . 0) trai text)) ; ChuyÓn sang canh dßng tr¸i
(entmod text) ;CËp nhËp lªn mµn h×nh
;-- Canh ngang ----
;(setq text (entget (ssname chon N)))
(setq day (assoc 73 text)) ;LÊy ®Æc tÝnh canh dßng d¹ng canh ngang
(setq text (subst '(73 . 0) day text)) ; ChuyÓn sang canh dßng ®¸y
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq toado (assoc 10 text))
(setq toadomoi (list 10 toadoX canhY 0.0)) ;LËp vÞ trÝ míi cho ch÷
(setq text (subst toadomoi toado text)) ; ChuyÓn sang täa ®é míi
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq toado1 (assoc 11 text))
(setq toadomoi1 (list 11 toadoX canhY 0.0)) ;LËp vÞ trÝ míi cho ch÷
(setq text (subst toadomoi1 toado1 text)) ; ChuyÓn sang täa ®é míi
(entmod text) ;CËp nhËp lªn mµn h×nh
(setq N(+ 1 N))
))








-----Hướng dẫn sử dung-------
Sử dụng để sắp xếp các đối tượng text đơn dòng theo các thuộc tính :
+ NG-Thẳng theo hàng ngang: điểm chèn tất cả các text được chọn thay đổi thành Right Bottom và có toạ độ Y cùng bằng toạ độ Y tại vị trí lựa chọn
+ TT-PP-GG-Thẳng cột : điểm chèn của tất cả các text được chon thay đổi thành Left-Right-Miđle Center và có toạ độ Y cùng bằng toạ độ Y tại giá trị lựa chọn.(TT-PP-GG = Trái - Phải - Giữa ).
+

Không có nhận xét nào:

Đăng nhận xét