caoyin大哥,帮个忙,块或子块 插入点坐标值
www.dimcax.com
caoyin大哥,帮个忙,块或子块 插入点坐标值
我用nentsel点中块中的一个对象后,我想找它所属的块或子块的插入点的wcs坐标是多少,
打个比如,一个块中有一个子块和几个图元,然后这个子块中又有几个图元,如果我点中的是这个子块中的对象,我想知道这个子块的插入点的wcs坐标是多少呀,我的一个程序就差这一步就通过啦,帮帮我caoyin大哥
d
问题不是太明白:
假如块a中有子块b和若干图元,
子块b中有子块c和若干图元,
你是想求哪个块插入点,假如 nentsel点中的不是 块b,那如何求啊
d
恭喜caoyin大哥做我们的老大,大家鼓掌。。。。。。。。
问题不是太明白:
假如块a中有子块b和若干图元a,b,c,d,
子块b中有子块c和若干图元e,f,g,
子块c中有若干图元h,i,j,
如果nentsel选中到是g图元,那就求b子块的插入点,
如果nentsel选中到是i图元,那就求c子块的插入点,
如果nentsel选中到是b图元,那就求a子块的插入点,
d
其实就是把图元(不管有没有块在里面)做成块后的那个插入点
d
笨方法:原理很简单,但写出来就会有点烦
(defun c:tt (/ a lst p an pt)
(if (setq a (nentsel))
(progn
(setq lst (mapcar '(lambda (x / y)
(setq y (entget x))
(list (cdr (assoc 10 y))
(cdr (assoc 50 y))
)
)
(last a);;套嵌块图元名列表
)
)
(setq lst (reverse lst)
p (caar lst)
an (cadar lst)
pt '(0 0 0)
lst (cdr lst)
)
(foreach x lst
(setq a (+ an (angle '(0 0 0) (car x)))
pt (polar pt a (distance '(0 0 0) (car x)))
an (+ an (cadr x))
)
)
(mapcar '+ pt p)
)
)
)
d
谢谢啦caoyin大哥