求助:粘切的图元置为当前层---属性随层
本帖最后由 冒个烟圈 于 2015-7-6 20:30 编辑瞎折腾了几行代码,主要是应付从其它图复制(ctrl+c)过来的图形,在当前图形中粘切(ctrl+v)后
反复置为当前层并属性随层的操作,但现在有一个问题解决不了,就是如何才能取得粘切后的图元实体(即:选择集)
请问前辈们:entlast只能取得最后一个图形实体,有什么办法能取得粘切的全部实体???
(defun c:b1 ()
(setvar "cmdecho" 0)
(setvar "setbylayermode" 253)
(setq po (getpoint))
(command "PASTECLIP" po)
(setq ss (entlast));;;用entlast函数只能取得最后一个实体,属性只更新一个实体
(command "laycur" ss "")
(command "_setbylayer" ss "" "y" "y")
(alert " OK 已置为当前层属性随层!!! ")
(princ)
)
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 冒个烟圈的微博 entlast取得最后一个图形实体 ==>eh
粘切
entnext 取得 eh 之后图形实体
有前例... Andyhon 发表于 2015-7-7 08:14 static/image/common/back.gif
entlast取得最后一个图形实体 ==>eh
粘切
entnext 取得 eh 之后图形实体
长老!!!小生愚钝,按你说的试了,结果还是只能取得一个图元
代码如下,帮我诊断一下哪里有问题,谢谢
(defun c:b1 ()
(setvar "cmdecho" 0)
(setq oe (getvar "setbylayermode"))
(setvar "setbylayermode" 253)
(setq po (getpoint "\n指定插入点:"))
(setq eh (entlast)) ;;;取得最后一个对象
(command "PASTECLIP" po)
(setq ss (entnext eh)) ;;;取得eh之后的对象
(command "laycur" ss "")
(command "_setbylayer" ss "" "y" "y")
(setvar "setbylayermode" oe)
(alert " OK 插入到当前层,属性Bylayer ")
(princ)
)
http://bbs.mjtd.com/thread-12657-1-1.html
more...
Andyhon 发表于 2015-7-7 09:15 static/image/common/back.gif
http://bbs.mjtd.com/thread-12657-1-1.html
more...
长老真及时,。。谢谢。搞定了
(defun c:b1 ()
(setvar "cmdecho" 0)
(setq oe (getvar "setbylayermode"))
(setvar "setbylayermode" 253)
(setq s1 (entlast) ss1 (ssadd))
(setq po (getpoint "\n指定插入点:"))
(command "PASTECLIP" po)
(while (setq s1 (entnext s1)) (ssadd s1 ss1))
(command "laycur" ss1 "")
(command "_setbylayer" ss1 "" "y" "y")
(setvar "setbylayermode" oe)
(alert " OK 插入到当前层,属性Bylayer ")
(princ)
) 冒个烟圈 发表于 2015-7-7 09:18 static/image/common/back.gif
长老真及时,。。谢谢。搞定了
(defun c:b1 ()
(setvar "cmdecho" 0)
我用2006使用提示函数取消 长风(尚品) 发表于 2015-7-7 14:11 static/image/common/back.gif
我用2006使用提示函数取消
不记得2006的CAD是否有setbylayer这个命令,如果有的话,你就删除(setq oe (getvar "setbylayermode"))和(setvar "setbylayermode" oe)这两行试试,我用的2013 ;;;经 Andyhon提示之后,完整的命令如下:
;;;因个人用法不一样,这个是增加了旋转的,
(defun c:V ();;;粘切实体到当前层属性随层
(setvar "cmdecho" 0)
(setvar "setbylayermode" 253)
(setq s1 (entlast) ss1 (ssadd))
(setq po (getpoint "\n指定插入点:"))
(command "PASTECLIP" po)
(while (setq s1 (entnext s1)) (ssadd s1 ss1))
(command "ROTATE" ss1 "" po pause)
(command "laycur" ss1 "")
(command "_setbylayer" ss1 "" "y" "y")
(alert " OK 插入到当前层,属性Bylayer ")
(princ)
)
谢谢大神,牛牛牛牛!!! 冒个烟圈 发表于 2015-7-7 09:18
长老真及时,。。谢谢。搞定了
(defun c:b1 ()
(setvar "cmdecho" 0)
能否改为复制后为一个块
页:
[1]