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版本上就不行。你如果有空也可以试用下,希望能帮我把这个问题解决。
展开
 我来答
bcatv
2018-09-15 · TA获得超过4433个赞
知道大有可为答主
回答量:4763
采纳率:77%
帮助的人:563万
展开全部
既然你已选中了想突出显示的图元,它就已经突出显示了(这个无须编写程序),而且你用MOVE命令并不能让它突出显示的
追问
谢谢你的关注,我说的是把选定图层的图元(整个图档内属于该图层的全部图形)凸出显示于相叠图元之上,这个功能只能够点选,而且点选的图元只是为选全部图形作为参照的,当然点选的图元会和整个图档内属于该图层的全部图形一起被选中的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式