明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5762|回复: 20

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

[复制链接]
发表于 2014-9-15 08:50 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 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

最佳答案

查看完整内容

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

使用道具 举报

发表于 2014-9-15 17:47 | 显示全部楼层
源程序贴上来改改看
回复

使用道具 举报

 楼主| 发表于 2014-9-15 20:00 | 显示全部楼层
hnfsf 发表于 2014-9-15 17:47
源程序贴上来改改看

源程序开心版主是收费的~纠结,我只贴出关键部分吧,开心的大作有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)
)
回复

使用道具 举报

发表于 2014-9-20 19:59 | 显示全部楼层
楼主找到答案了吗?同求
回复

使用道具 举报

 楼主| 发表于 2014-9-20 23:43 | 显示全部楼层
开心老大还不来看看吗?
回复

使用道具 举报

发表于 2014-9-21 08:11 | 显示全部楼层
theisland 发表于 2014-9-15 20:00
源程序开心版主是收费的~纠结,我只贴出关键部分吧,开心的大作有3个独立的程序,我针对实际遇到的问题只 ...

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

使用道具 举报

发表于 2014-9-21 09:01 来自手机 | 显示全部楼层
chprop   ssget   c
回复

使用道具 举报

发表于 2014-9-21 09:08 | 显示全部楼层
天正很多都是自定义实体,LISP办不打
回复

使用道具 举报

 楼主| 发表于 2014-9-21 19:50 | 显示全部楼层
本帖最后由 theisland 于 2014-9-21 19:59 编辑
print1985 发表于 2014-9-21 17:49
天正实体改图层颜色之后可能要re重新生成图形才能显示最新的颜色
http://bbs.mjtd.com/thread-111059-1-1. ...

老大们都来了,好开心!你这个这么用?补充到开心版主 的程序里吗?链接里没有预先设置好的改色,我现在最需要的就是像开心版主那种预先设置好的改色方案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-21 14:24 , Processed in 0.271669 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表