lamensterms 发表于 2022-7-5 22:53:40

更改颜色的LISP例程

嘿伙计们,
 
我想知道是否有人能告诉我他们是否知道这样一个惯例?
 
我正在寻找一种工具来改变所有选定对象的颜色。我目前正在使用以下例程:
 
(defun c:c2 () (ssget) (command "chprop" "p" "" "c" "2" "")(princ))
 
这将很容易改变线条、柱脚、圆弧、圆、文本等的颜色。但我也希望包括没有此类基本颜色属性的对象。例如,我希望能够像更改线条颜色一样,在相同的例行程序中更改文字、尺寸和尺寸界线颜色。
 
有谁知道有一种例行程序能够完成这样的任务吗?
 
我刚刚开始编写一些代码来实现这一点,但我想先问问是否有人知道现有的例程。
 
非常感谢您的帮助。

Tharwat 发表于 2022-7-5 23:22:23

你好
 
你的帖子标题与内容不同!。
 
无论如何,请尝试更改对齐和旋转尺寸的颜色。
 
(defun c:test (/ ss)
(if (and (setq *clr* (acad_colordlg
                        (cond (*clr*)
                              (t (setq *clr* 256))
                        )
                      )
          )
          (princ "\n Select Dimension to change their color :")
          (setq ss (ssget "_:L" '((0 . "*DIMENSION"))))
   )
   ((lambda (x / sn)
      (while (setq sn (ssname ss (setq x (1+ x))))
      (if (vl-remove-if-not
            '(lambda (o) (and (eq (car o) 100) (wcmatch (cdr o) "AcDbAlignedDimension,AcDbRotatedDimension")))
            (entget sn)
            )
          (mapcar '(lambda (e)
                     (vla-put-textcolor e *clr*)
                     (vla-put-extensionlinecolor e *clr*)
                     (vla-put-DimensionLineColor e *clr*)
                   )
                  (list (vlax-ename->vla-object sn))
          )
      )
      )
    )
   -1
   )
)
(princ)
)
(vl-load-com)

lamensterms 发表于 2022-7-5 23:31:37

谢谢塔瓦的回复,
 
我期待着明天上班时测试一下你的日常生活。关于威胁标题,我很抱歉。我希望能够创建一个例程来改变所有物体的颜色,但尺寸是目前的优先事项。

MSasu 发表于 2022-7-5 23:48:12

对于尺寸,我建议仅当已被覆盖时才覆盖元素的颜色;其他根据相关样式进行调整。

Tharwat 发表于 2022-7-6 00:07:17

 
不客气,希望它能满足你的需要。
页: [1]
查看完整版本: 更改颜色的LISP例程