命令嵌套深度不能超过4层,致命错误
我想把图中的围墙的宽度修改成0.5,但是在图中如果一个一个的刷可以刷成0.5,如果选中所以需要刷的一块刷,就还是0.25,刷不了,所以我就想编程序实现,下面是代码:(defun c:wq()(setq ss(ssget"x"'((-3 ("SOUTH" (1000 . "144301")))))j -1)
(setq wqen(car(entsel"\n请选择正确围墙线:")))
(repeat (sslength ss)
(setq en (ssname ss (setq j(1+ j))))
(command"putp"wqen en"""")
)
(alert"运行完毕")
(princ)
)
但是到运行到第四次的时候出现:命令嵌套深度不能超过4层,致命错误,我百思不得其解,也不知道该怎么解决,望高手们帮帮忙!
用这个吧
(defun c:wXQ(/ ss1 n m entx list1 olditem );多段线改线宽
(setq kd (getreal"\n输入新线宽:"))
(setq ss1 (ssget '((0 . "LWPOLYLINE"))));过滤,得到多段线的选择集
(setq n (sslength ss1));得到选择集的图元数目
(setq m 0);循环变量m置0,从选择集中的第1个改起
(while (< m n);循环,可以一次改多个图元的线宽
(setq entx (ssname ss1 m));得到图元名
(setq list1 (entget entx));注意最后一个参数需要图元名,返回的是码表
(setq olditem (assoc 43 list1));查找旧的组码43,多段线的组码43是控制固定线宽的
;(setq str(cdr olditem));去除点表中的第一个元素,即去掉43 .
(entmod(subst (cons 43 kd) olditem list1));修改组码,并更新组码
(setq m (+ 1 m));变量加1,循环下一个图元
);while
(princ)
)
VBALISPER 发表于 2012-3-21 17:46 static/image/common/back.gif
用这个吧
(defun c:wXQ(/ ss1 n m entx list1 olditem );多段线改线宽
(setq kd (getreal"\n输入新线宽 ...
你可能理解错我的意思了,我不是单单的改变线宽,我要改的是围墙的宽度,如图,是要改变两个线之间的宽度,因为两条线和方块是一体的,所以一般方法行不通,cass里有个属性匹配命令putp,可以把正确宽度围墙的属性赋给需要改正宽度的围墙,因为手工批量刷不正确,我就想用程序解决,也就出现了上面的问题!谢谢你的关注! 真奇怪,我一个1.23k的文件怎么上传不上去啊,提示不能上传那么大的文件,难道太小也不行吗,郁闷! 解决了吗??????
页:
[1]