theisland 发表于 2014-9-15 08:50:17

开心版主的改图层颜色程序,对天正图元不管用,求助~

本帖最后由 theisland 于 2014-9-15 08:52 编辑

;建筑图层改色
(defun c:GS()
(vl-load-com)(KX-LAY-COL "0" 7)
(KX-LAY-COL "厨卫设备" 252)
(KX-LAY-COL "家具" 252)
(KX-LAY-COL "空调洞" 252)
(KX-LAY-COL "预留孔洞" 252)
(KX-LAY-COL "空调" 252)
(KX-LAY-COL "WALL" 140)
(KX-LAY-COL "PUB_DIM" 3)
(KX-LAY-COL "PUB_TEXT" 255)
(KX-LAY-COL "STAIR" 2)
(PRINC)
)


CAD提示:错误: 此类型的 LISP 值不能强制转换成 VARIANT: 252

原帖子在这里 http://bbs.mjtd.com/thread-93873-1-1.html

print1985 发表于 2014-9-15 08:50:18

;改图层颜色子程序。参数:图层、颜色 例:(GL:LayCol "PUB_DIM" 3)
(defun GL:LayCol (lay col / acaddoc acadobj layobj vlay)
(setq AcadObj (vlax-get-Acad-object)
        AcadDoc (vla-get-ActiveDocument AcadObj)
        LayObj (vla-get-layers AcadDoc)
)
(setq vlay (vla-item LayObj lay))    ; 转为VL图层名
(vla-put-color vlay col)             ; 改图层颜色
)天正实体改图层颜色之后可能要re重新生成图形才能显示最新的颜色
http://bbs.mjtd.com/thread-111059-1-1.html 这里还有个快速改图层颜色的小程序 支持天正

hnfsf 发表于 2014-9-15 17:47:37

源程序贴上来改改看

theisland 发表于 2014-9-15 20:00:24

hnfsf 发表于 2014-9-15 17:47 static/image/common/back.gif
源程序贴上来改改看

源程序开心版主是收费的~纠结,我只贴出关键部分吧,开心的大作有3个独立的程序,我针对实际遇到的问题只贴出其中1个(请开心版主海涵):
;功能:取得实体DXF组码对应的值。参数:DXF为组码 ;ent为实体名。;返回值:DXF组码值表
(defun KX-get-dxf (DXF ent)
    (cond ((= (type ent) 'ename)
            (cdr (assoc DXF (entget ent)))
             )
          ((= (type ent) 'list)
         (cdr (assoc DXF ent))
         )
    )
)


;;功能:更换图元。参数:sname为实体名;DXF为组码;newvalue为新值;返回值:新对象
(defun KX-SubUpd (sname DXF newvalue)
   (entmod
   (subst
       (cons DXF newvalue)   
       (assoc DXF (entget sname))   
       (entget sname)
   )
   )
(entupd sname)
)

;改变对象颜色 sname为实体名 col为颜色号
(defun KX-put-color(sname col)
      (vla-put-color (vlax-ename->vla-object sname) col)
(PRINC)
)

;批量匹配图层改色
;(KX-LAY-COL lname COL)lname为层名CO为颜色
(defun KX-LAY-COL (lname coL)
(if (setq newl (tblobjname "layer" lname))
   (progn
   (KX-SubUpd newl 62 col)
    (if (SETQ ss (ssget "X" (list (cons 8 lname))))
      (progn
          (setq X -1)
      (while (setq s1 (ssname ss (setq X (1+ X))))      
         (KX-put-color s1 coL)
         )
       )
   )
   )
)
)



;程序一 (批量匹配图层改色)
(defun c:XX()
(vl-load-com)
   (KX-LAY-COL "DOTE" 1)
   (KX-LAY-COL "DIM" 2)
   (KX-LAY-COL "WALL" 3)
(PRINC)
)

fire9527 发表于 2014-9-20 19:59:03

楼主找到答案了吗?同求

theisland 发表于 2014-9-20 23:43:08

开心老大还不来看看吗?

ZZXXQQ 发表于 2014-9-21 08:11:20

theisland 发表于 2014-9-15 20:00 static/image/common/back.gif
源程序开心版主是收费的~纠结,我只贴出关键部分吧,开心的大作有3个独立的程序,我针对实际遇到的问题只 ...

天正的东东要用ARX编程来改。

ivde 发表于 2014-9-21 09:01:50

chprop   ssget   c

【KAIXIN】 发表于 2014-9-21 09:08:43

天正很多都是自定义实体,LISP办不打

theisland 发表于 2014-9-21 19:50:44

本帖最后由 theisland 于 2014-9-21 19:59 编辑

print1985 发表于 2014-9-21 17:49 static/image/common/back.gif
天正实体改图层颜色之后可能要re重新生成图形才能显示最新的颜色
http://bbs.mjtd.com/thread-111059-1-1. ...
老大们都来了,好开心!你这个这么用?补充到开心版主 的程序里吗?链接里没有预先设置好的改色,我现在最需要的就是像开心版主那种预先设置好的改色方案
页: [1] 2 3
查看完整版本: 开心版主的改图层颜色程序,对天正图元不管用,求助~