sailorcwx 发表于 2008-5-18 22:17:00

(defun c:changelayer(/ ENT OBJ OBJCOLOR OBJLAYER ss)<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setq ss (cadr (ssgetfirst)))<br/>&nbsp; (if ss<br/>&nbsp;&nbsp;&nbsp; (setq ent (list (ssname ss 0)))<br/>&nbsp;&nbsp;&nbsp; (setq ent (entsel "\n选择目标对象: "))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (if ent<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq obj (vlax-ename-&gt;vla-object (car Ent))<br/>&nbsp;&nbsp;&nbsp;&nbsp; objlayer (vla-get-layer obj)<br/>&nbsp;&nbsp;&nbsp;&nbsp; objcolor (vla-get-color obj)<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond<br/>&nbsp;((= objcolor 256)(setq objcolor "bylayer"))<br/>&nbsp;((= objcolor 0)(setq objcolor "byblock"))<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "CLAYER" objlayer)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "color" objcolor)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (princ)<br/>&nbsp; )

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

页: 1 2 [3] 4
查看完整版本: 求改lsp,点中文字后就可以以文字内容建立图层,但颜色总是白色,改随层