[日积月累]:对垂直、水平标注按间距分列/行对齐(附件更新)
应一位网友所写的标注对齐程序。注意:测试请下载附件,以下代码不能直接使用!!
(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 (ea:sort_entitydl 1 4 dist)) ;_ver
(setq dl (ea:sort_entitydl 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) 个人觉得没有aeo斑竹的具有相同功能的程序好。 这里有一个
http://www.xdcad.net/forum/showthread.php?s=&threadid=51960 最初由 xbx7920 发布
个人觉得没有aeo斑竹的具有相同功能的程序好。
一直想写一个圆弧标注对齐的,就是没时间.
圆弧标注要移动一下位置很麻烦,比直线的麻烦的多.
不知谁写了,省的我动脑筋.
一般的商用软件里都没有. 最初由 aeo 发布
一直想写一个圆弧标注对齐的,就是没时间.
圆弧标注要移动一下位置很麻烦,比直线的麻烦的多.
不知谁写了...
(defun c:aladim (/ ss ssl i e el typ r dis pc dl)
(if
(and (setq ss (ssget '((0 . "dimension") (100 . "*AngularDimension"))))
(setq dis (getdist "\n间距: "))
)
(progn
(setq ssl (sslength ss)
i -1
)
(repeat ssl
(setq e (ssname ss (setq i (1+ i)))
el(entget e)
typ (cdr (assoc 100 (reverse el)))
)
(if (wcmatch typ "*2*")
(setq pcen (inters (cdr (assoc 10 el))
(cdr (assoc 15 el))
(cdr (assoc 14 el))
(cdr (assoc 13 el))
nil
)
r (distance pcen (cdr (assoc 16 el)))
)
(setq pcen (cdr (assoc 15 el))
r (distance pcen (cdr (assoc 10 el)))
)
)
(setq dl (cons (list r pcen e) dl))
)
(setq dl (ea:sort_entity dl nil nil dis))
(setq pc (cadaar dl)
r (caaar dl)
dl (mapcar '(lambda (x) (mapcar 'last x)) dl)
)
(foreach a dl
(foreach d a
(setq el (entget d)
p(cdr (assoc 11 el))
)
(entmod (subst (cons 11 (polar pc (angle pc p) r))
(assoc 11 el)
el
)
)
)
)
(setq r (+ r dis))
)
)
(princ)
)
Re: [日积月累]:对垂直、水平标注按间距分列/行对齐(附件更新)
最初由 eachy 发布应一位网友所写的标注对齐程序。
注意:测试请下载附件,以下代码不能直接使用!!
(defun c:AlDim (/ ss ssl i e el p dl tf dist)
(if (and (setq ss (ssget '((0 . "dimension"...
谢谢eachy版主的程序,已经达到我的要求了! ea的程序有个问题(不知道是不是编程思路本来就是这样),假设输入的间距是800,而如果两行尺寸之间的距离不足800,那么程序就将两行标注对齐。
是不是应该加一个开关,询问究竟是要将多行标注全部对齐,还是调整标注的间距? 最初由 l19811102 发布
ea的程序有个问题(不知道是不是编程思路本来就是这样),假设输入的间距是800,而如果两行尺寸之间的距离不足800,那么程序就将两行标注对齐。
是不是应该加一个开关,询问究竟是要将多行标注全部对齐,还是调整标...
查看 ea:sort_entity 的说明文件,将dis修改为一个合适的值或者在图中指定
(ea:sort_entity dl nil nil dis)) 非常感谢楼主提供.......楼主,能帮俺写一个能标注当一个角度大于180度的程序吗????
万分感激!!!! 我看看,使用一下啊 好的,谢谢 郁闷,没有爱心币,下不了!! 版主,附件下载不了了!请帮忙查查原因。 有了爱心币,下了两次都没有东西,快查查啊 没看到附件,试试回复后能不能看到附件
页:
[1]