尺寸界线修剪的问题?
我想用VBA编一个修剪对齐标注尺寸界线的程序,其实是想模仿天正建筑的修剪尺寸界线的方法,我一开始是想通过修改标注原点来实现的,但发现尺寸线也跟着有一小段位移,按照常规想法,尺寸线应该不动才对。而用天正建筑的修剪尺寸界线里就没有这个现象!但我想原理是差不多的,真不知道为什么啊!希望有人能帮我写一个,或给点提示也好!这困惑了我好久啊!另外,我用其他方法也可以实现,但稍微复杂一点,要通过扩展数据才可以实现,但个别情况下不尽人意。这个问题的关键是:实现这个效果到底是不是修改对齐标注的原点就可以,怎样确保尺寸线不要随着对齐标注原点的变化而移动。但我想除了修改对齐标注的原点外,好像没什么办法了吧,不知道我想歪了没有,急需高手指点!谢谢! 天正建筑没有用过,所以不知道你到底是什么意思。其实,你可以放两张图片在这里,大家就清楚你的目的了。 只要是画过图的就知道什么是修剪对齐标注尺寸界线,希望各位老大帮帮忙啊,我真的好困惑啊! 我真的好困惑,我见过很多人用lisp编过,但我不会lisp,所以想请有经验的人给个提醒也好,到底怎样修剪对齐标注啊? 对齐标注的定义以前已经说过。
要修剪就必须两条尺寸界线一起修剪,而且修剪的长度必须相同,否则它就会动。 明总,dimaligned的两条尺寸界线,修剪长度肯定是相同,要不然两个extlinepoint之间的长度不是变了,但就算是修剪相同长度,它还是会变,而且尺寸越小,修剪越长,变的位置越明显。 楼上的说得对,这正是困惑我很久的问题,明总,我见过其他人编的lisp程序,我虽然不会lisp,但我看他们好像用到旋转标注,但我要修剪的是对齐标注,跟旋转标注好像没关系的啊?希望你能指教一下,万分感谢! (princ "\ndmtr2=====dim trim 剪齐dim边界线---v2 终结版----------lxx.2002\n")
;;;
(defun c:dmtr2 ( / pt1 pt2 ss i ent entl p10 p13 p14 ptt np14 np13)
(princ "\ndmtr2=====dim trim 剪齐dim边界线--v2 终结版-----------lxx.2001")
(command "_.undo" "be" ^c )
;;;
(defun *error* (msg) (print msg)(command "_.undo" "e" ^c)(setq *error* nil))
;;;
(setq pt1 (getpoint "\n定义修剪界线 (只处理相交的dim),起点:")
pt2 (getpoint pt1 "\n终点:")
ss (ssget "f" (list pt1 pt2) '((0 . "DIMENSION")) )
pt1 (trans pt1 1 0)
pt2 (trans pt2 1 0)
i 0
)
(repeat (sslength ss)
(setq ent (ssname ss i)
entl (entget ent)
p10 (cdr (assoc 10 entl))
p13 (cdr (assoc 13 entl))
p14 (cdr (assoc 14 entl))
;;ptt (cdr (assoc 11 entl));;文字定位
i (1+ i)
pt1 (polar pt1 (angle pt1 pt2) (/ (distance pt1 pt2) 2) ) ;;变为pt1 pt2的中点
pt2 (polar pt1 (+ (/ PI 2) (angle p10 p14)) 100)
np14 (inters pt1 pt2 p14 p10 nil)
)
(if (not(member '(100 . "AcDbRotatedDimension") entl)) ;;如果不是linear类型
(setq np13 (polar np14 (angle p14 p13) (distance p14 p13)))
(setq np13 (inters pt1 pt2 p13 (polar p13 (angle p14 p10) 100) nil)) ;;else;;align类型
)
(setq entl (subst (cons 13 np13) (assoc 13 entl) entl)
entl (subst (cons 14 np14) (assoc 14 entl) entl)
)
(entmod entl)
);end repeat
(command "_.undo" "e" ^c)
(setq *error* nil)
(princ)
)
以上是我拷别人的,什么意思啊?思路是怎样的呢?用vba怎样实现呢?谢了! 你还是把你的程序和图形传上来调试。
各位试试这个修剪对齐标注的程序吧,这用vba怎样实现呢?帮我翻译成vba行吗?谢谢各位老大啦!我想问的就是:实现这个效果到底是不是修改对齐标注的原点就可以,怎样确保尺寸线不要随着对齐标注原点的变化而移动。但我想除了修改对齐标注的原点外,好像没什么办法了吧,不知道我想歪了没有?
尺寸界线修剪的问题?
尺寸界线修剪的问题?
页:
[1]