cad lisp 代码问题
(defunC:cf(/pocea1a2a3iss1numnamenewlistindex)(setqoce(getvar"cmdecho"))(setvar"cmdec...
(defun C:cf( / p oce a1 a2 a3 i ss1 num name newlist index)
(setq oce (getvar "cmdecho"))
(setvar "cmdecho" 0)
(graphscr)
(setq p (list 0.0 0.0))
(prompt "\n选择要浮到最上面的图层:")
(setq a1(ssget))
(if a1
(progn
(setq i 0)
(repeat (sslength a1)
(setq a3 (ssname a1 i))
(setq a2 (cdr (assoc 8 (entget a3))))
(setq ss1 (ssget "x" (list (cons 8 a2))))
(setq index 0)
(setq num (sslength ss1))
(repeat num
(setq name (ssname ss1 index))
(command "move" name "" p p)
(setq index (1+ index))
)
(setq i (1+ i))
)
(princ a2)
)
)
(setvar "cmdecho" oce)
(princ)
)
哪位大师能否帮忙修正一下以上代码中的问题,为什么此代码加载到cad2004版可正常使用,但是加载到cad2005版就不能用了,感激不尽!
我的这个代码它并不是改变叠在一起的两个图元的真正的前置或者后置位置,而仅仅是把选定图层的图元凸出显示于相叠图元之上,相当于只是临时凸出显示一下,一旦该图层关闭再打开或者使用命令REGEN以后将不会凸出显示的(也就是说并没有改变相叠图元真正的前置或者后置位置,比如用鼠标点选原来真正前置的图元现在还是首先被选中),代码加载到cad2004版上就能达到我要的这个临时显示的效果,但是就不晓得什么原因加载到cad2005版本上就不行。你如果有空也可以试用下,希望能帮我把这个问题解决。 展开
(setq oce (getvar "cmdecho"))
(setvar "cmdecho" 0)
(graphscr)
(setq p (list 0.0 0.0))
(prompt "\n选择要浮到最上面的图层:")
(setq a1(ssget))
(if a1
(progn
(setq i 0)
(repeat (sslength a1)
(setq a3 (ssname a1 i))
(setq a2 (cdr (assoc 8 (entget a3))))
(setq ss1 (ssget "x" (list (cons 8 a2))))
(setq index 0)
(setq num (sslength ss1))
(repeat num
(setq name (ssname ss1 index))
(command "move" name "" p p)
(setq index (1+ index))
)
(setq i (1+ i))
)
(princ a2)
)
)
(setvar "cmdecho" oce)
(princ)
)
哪位大师能否帮忙修正一下以上代码中的问题,为什么此代码加载到cad2004版可正常使用,但是加载到cad2005版就不能用了,感激不尽!
我的这个代码它并不是改变叠在一起的两个图元的真正的前置或者后置位置,而仅仅是把选定图层的图元凸出显示于相叠图元之上,相当于只是临时凸出显示一下,一旦该图层关闭再打开或者使用命令REGEN以后将不会凸出显示的(也就是说并没有改变相叠图元真正的前置或者后置位置,比如用鼠标点选原来真正前置的图元现在还是首先被选中),代码加载到cad2004版上就能达到我要的这个临时显示的效果,但是就不晓得什么原因加载到cad2005版本上就不行。你如果有空也可以试用下,希望能帮我把这个问题解决。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询