1、用过滤法,做一个大历唯选择集,选中图中所有的TK块
2、遍历这个选择集,得到每个图框的左下角坐标与右上角坐标,以及它里边的图号属性值
----同时得到坐标的滚培最大Y值(用来找空的地方)
3、按属性值进行排序,将每个TK的坐标,排好顺序后,按先后次序,移动到“空”的地方
从左到右放置 ,间隔就是你所说的200
4、第3步中,要根据每个TK的坐标,选中TK内的烂老所有实体,然后一起移动
5、唔。。。。差不多就是以上几步
我个人的体会,程序不要写得太复杂。尽可能简化一些。比如上面这个例子。
如果只是要更改某些对象的线型比例,可以在创建那些对象之前,加一句代码,设置相应的线型比例。创建完成后,马上改回来。就可以了。我平激裂迅常就是这样做的。
另外,读了上面明此的程序,源陵entsel读取的是一个单一对象的值,楼主提供的程序里,好像是选择了一个块吧?
试用以下程序(defun c:kjxwk()
(vl-load-com)
(setq cm (getvar "cmdecho") os (getvar "osmode"樱祥消))
(setvar "cmdecho" 0) (setvar "osmode" 0)
(command "_undo" "be")
(while (setq ssa (ssget ":S" '((0 . "INSERT"))))
(setq ent (ssname ssa 0)
obj (vlax-ename->vla-object ent)
)
(vla-GetBoundingBox obj 'p1 'p2)
(setq p1 (vlax-safearray->list p1)
p2 (vlax-safearray->list p2)
)
(command "_rectang" p1 p2)
(command "_chprop" (entlast) "" "c" 1 ""脊知)
)
(command "宴兄_undo" "e")
(setvar "osmode" os) (setvar "cmdecho" cm)
(princ)
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)