明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1574|回复: 7

块改色插件

[复制链接]
发表于 2024-2-26 11:10:18 | 显示全部楼层 |阅读模式
本帖最后由 yefei812678 于 2024-2-26 11:23 编辑

选择颜色能不能改成,下面这种直接输入色号的方式


(defun c:gk (/ ChBlkColor SS blks I Obj BnLst)
  (defun ChBlkColor (Blks Obj Color / BlkName oName)
    (if (and (= (vla-get-ObjectName obj) "AcDbBlockReference")
             (= (vla-get-HasAttributes obj) :vlax-true)
        )
      (foreach x (vlax-invoke obj 'getattributes)
        (vla-put-color x Color)
      )
    )
    (setq BlkName (vla-get-name obj))
    (if (not (member BlkName bnlst))
      (progn
        (setq bnlst (cons BlkName BnLst))
        (vlax-for X (vla-item Blks BlkName)
          (setq oName (vla-get-ObjectName X))
          (cond ((wcmatch oName "*Dimension,AcDbLeader,AcDbFcf")
                 (vla-put-DimensionLineColor X Color)
                 (if (wcmatch oName "*Dimension")
                 (progn
                     (vla-put-ExtensionLineColor X Color)
                     (if (setq BlkName (assoc 2 (entget (vlax-vla-object->ename X))))
                       (vlax-for X (vla-item Blks (cdr BlkName))
                         (vla-put-color X Color)
                       )
                     )
                   )
                 )
                 (if (wcmatch oName "*Dimension,AcDbFcf")
                   (vla-put-TextColor X Color)
                 )
                )
                ((= oName "AcDbBlockReference")
                 (ChBlkColor Blks X Color)
                )
          )
          (vla-put-color X Color)
        )
      )
    )
    (vla-UpDate obj)
  )
  (if (and (setq ss (ssget '((0 . "insert"))))
           (or $ChBlkColor$ (setq $ChBlkColor$ 7))
           (setq $ChBlkColor$ (acad_colordlg $ChBlkColor$))
      )
    (progn
      (setq blks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
      (repeat (setq i (sslength ss))
        (setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
        (ChBlkColor Blks Obj $ChBlkColor$)
      )
    )
  )
  (princ)
)





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-2-26 13:26:27 | 显示全部楼层
  1. (defun c:gk (/ ChBlkColor SS blks I Obj BnLst)
  2.   (defun ChBlkColor (Blks Obj Color / BlkName oName)
  3.     (if (and (= (vla-get-ObjectName obj) "AcDbBlockReference")
  4.                                         (= (vla-get-HasAttributes obj) :vlax-true)
  5.         )
  6.       (foreach x (vlax-invoke obj 'getattributes)
  7.         (vla-put-color x Color)
  8.       )
  9.     )
  10.     (setq BlkName (vla-get-name obj))
  11.     (if (not (member BlkName bnlst))
  12.       (progn
  13.         (setq bnlst (cons BlkName BnLst))
  14.         (vlax-for X (vla-item Blks BlkName)
  15.           (setq oName (vla-get-ObjectName X))
  16.           (cond ((wcmatch oName "*Dimension,AcDbLeader,AcDbFcf")
  17.                                                                         (vla-put-DimensionLineColor X Color)
  18.                                                                         (if (wcmatch oName "*Dimension")
  19.                                                                                 (progn
  20.                                                                                         (vla-put-ExtensionLineColor X Color)
  21.                                                                                         (if (setq BlkName (assoc 2 (entget (vlax-vla-object->ename X))))
  22.                                                                                                 (vlax-for X (vla-item Blks (cdr BlkName))
  23.                                                                                                         (vla-put-color X Color)
  24.                                                                                                 )
  25.                                                                                         )
  26.                                                                                 )
  27.                                                                         )
  28.                                                                         (if (wcmatch oName "*Dimension,AcDbFcf")
  29.                                                                                 (vla-put-TextColor X Color)
  30.                                                                         )
  31.                 )
  32.                                                 ((= oName "AcDbBlockReference")
  33.                                                         (ChBlkColor Blks X Color)
  34.                                                 )
  35.           )
  36.           (vla-put-color X Color)
  37.         )
  38.       )
  39.     )
  40.     (vla-UpDate obj)
  41.   )
  42.   (if (and
  43.                                 (setq ss (ssget '((0 . "insert"))))
  44.                                 (or $ChBlkColor0$ (setq $ChBlkColor0$ 7))
  45.                         )
  46.     (progn
  47.                         (setq $ChBlkColor$ (getint (strcat "\n请输入颜色号(1-255)<" (itoa $ChBlkColor0$) ">:")))
  48.                         (if (null $ChBlkColor$)
  49.                                 (setq $ChBlkColor$ $ChBlkColor0$)
  50.                                 (setq $ChBlkColor0$ $ChBlkColor$)
  51.                         )
  52.                         (setq blks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
  53.       (repeat (setq i (sslength ss))
  54.         (setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
  55.         (ChBlkColor Blks Obj $ChBlkColor$)
  56.       )
  57.     )
  58.   )
  59.   (princ)
  60. )
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-2-26 11:12:42 | 显示全部楼层
选择颜色能不能改成,下面这种直接输入色号的方式
 楼主| 发表于 2024-2-26 13:55:30 | 显示全部楼层

非常感谢 非常感谢
发表于 2024-2-26 23:48:34 | 显示全部楼层
不错插件谢谢分享
发表于 2024-3-12 09:32:03 | 显示全部楼层
发表于 2024-4-7 10:27:00 | 显示全部楼层
感谢大神的热心分享,点赞
发表于 2024-6-3 19:56:19 | 显示全部楼层
未知名称: ExtensionLineColor
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 15:12 , Processed in 0.176897 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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