|
应一位网友所写的标注对齐程序。
(defun c:AlDim (/ ss ssl i e el p dl tf dist)
(if (and (setq ss (ssget '((0 . "dimension") (70 . 32))))
(setq dist (getdist "\n输入间距: "))
)
(progn
(command ".undo" "be")
(setq ssl (sslength ss)
i -1
)
(repeat ssl
(setq e (ssname ss (setq i (1+ i)))
el (entget e)
p (cdr (assoc 10 el))
dl (cons (list p e) dl)
)
(if
(and (not tf) (equal (cdr (assoc 50 el)) (/ pi 2.) 1e-6)) ;_ver
(setq tf t)
)
)
(if tf
(setq dl (ybl-ent-sort dl 1 4 dist)) ;_ver
(setq dl (ybl-ent-sort dl 0 1 dist))
)
(setq p (caaar dl))
(foreach x dl
(foreach d x
(setq el (entget (cadr d)))
(entmod (subst (cons 10
(if tf
(list (car p) (cadar d))
(list (caar d) (cadr p))
)
)
(assoc 10 el)
el
)
)
)
(setq p (if tf
(mapcar '+ (list dist 0. 0.) p)
(mapcar '- p (list 0. (- dist) 0.))
)
)
)
(command ".undo" "end")
)
)
(princ)
)
(princ "\nStart command with AlDim , eachy [www.xdcad.net]!")
(princ)
|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )
GMT+8, 2024-4-27 23:02 , Processed in 0.343834 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.