sailorcwx
发表于 2008-5-18 22:17:00
(defun c:changelayer(/ ENT OBJ OBJCOLOR OBJLAYER ss)<br/> (vl-load-com)<br/> (setq ss (cadr (ssgetfirst)))<br/> (if ss<br/> (setq ent (list (ssname ss 0)))<br/> (setq ent (entsel "\n选择目标对象: "))<br/> )<br/> (if ent<br/> (progn<br/> (setq obj (vlax-ename->vla-object (car Ent))<br/> objlayer (vla-get-layer obj)<br/> objcolor (vla-get-color obj)<br/> )<br/> (cond<br/> ((= objcolor 256)(setq objcolor "bylayer"))<br/> ((= objcolor 0)(setq objcolor "byblock"))<br/> )<br/> (setvar "CLAYER" objlayer)<br/> (command "color" objcolor)<br/> )<br/> )<br/> (princ)<br/> )
liminnet
发表于 2008-5-18 22:43:00
xyp1964
发表于 2008-5-18 22:55:00
有写字+选择的功夫,还不如直接生成需要的图层!
liminnet
发表于 2008-5-18 23:10:00
狂刀无痕
发表于 2008-5-18 23:47:00
<p>有点像绕口令,没看明白.</p>
xyp1964
发表于 2008-5-18 23:50:00
<p>试试这个:</p><p></p><p></p>
xyp1964
发表于 2008-5-18 23:53:00
<p>感觉也就是一个“图层更换”的功能</p>
liminnet
发表于 2008-5-19 09:52:00
狂刀无痕
发表于 2008-5-19 20:22:00
(DEFUN C:TT ()
(SETQ ENT (ENTGET (CAR (ENTSEL))))
(mapcar '(LAMBDA
(X Y)
(SETQ Y (CDR (ASSOC Y ENT)))
(COND ((= 0 Y) (SETQ Y "BYBLOCK"))
((NOT Y) (SETQ Y "BYLAYER"))
)
(setvar X (VL-PRINC-TO-STRING Y))
)
'("CECOLOR" "CLAYER" "CELTYPE");;颜色,图层,线型
'(62 8 6)
)
)
liminnet
发表于 2008-5-20 10:55:00