CChafee 发表于 2022-7-6 12:15:02

需要对象Co的编码帮助

我们公司正在向2010年产品过渡。在此切换过程中,我们还将从非常旧的笔式绘图仪进行更改。ctb到一个新的,更好地利用我们的新激光绘图仪。我发现并修改了autolip,它可以帮助我将所有图层颜色从旧设置转换为新设置。现在,我需要一些东西来更改图形中未使用相同转换号设置为“Bylayer”的任何对象。这是我用于图层颜色转换的lisp。
(defun c:laycol (/ colLst lay col)
(vl-load-com)
(setq colLst '(
(1 . 6)
(2 . 40)
(3 . 5)
(4 . 2)
(5 . 170)
(6 . 210)
(8 . 243)
(9 . 1)
(10 . 11)
(11 . 124)
(12 . 235)
(13 . 242)
(14 . 243)
(15 . 244)
(240 . 235)
))

(vlax-for l (vla-get-layers
       (vla-get-activedocument
         (vlax-get-acad-object)))
   (setq lay (cons l lay)))
(foreach layer lay
   (if (setq col (assoc (vla-get-color layer) colLst))
   (vla-put-color layer (cdr col))))
(princ))
我刚刚开始接触这种编程,所以这是我的头。任何帮助都将不胜感激。

rkmcswain 发表于 2022-7-6 12:35:52

你是说你只是需要一种方法将对象的颜色设置为“bylayer”?

CChafee 发表于 2022-7-6 12:40:53

 
不,我想将对象的颜色更改为与当前脚本类似的颜色。i、 e如果对象的颜色设置为1或红色,则将其转换为颜色6或洋红。设置为颜色2的对象更改为颜色40,等等。我们公司的标准将我们的对象设置为bylayer,但我们必须在实施这些标准之前转换一些图形,并注意任何“杂费”。

lpseifert 发表于 2022-7-6 12:57:46

我知道你想要帮助你的Lisp程序,但我认为这是错误的。在这里找到的lsp会做你想做的事。http://www.cadtutor.net/forum/showthread.php?t=31017
 
如果不是bylayer,它将编辑单个实体的颜色,如果实体是bylayer,则编辑图层的颜色。您可以创建一个用于多个图形的表;它还允许您“即时”输入颜色。表格应创建为文本文件,格式为From_Color To_Color
.e、 g.将颜色1更改为颜色101,将颜色2更改为颜色202
我在脚本中使用了它,使其更容易在多个图形上使用
2其中颜色变化。tbl是您如上所述创建的文本文件的名称

fixo 发表于 2022-7-6 13:06:38

 
看看它将如何为你工作
 
(defun C:entcol(/col colLst ecol en layer layerobj locked obj ss)(vl load com)(setq colLst’((1.6)(2.40)(3.5)(4.2)(5.170)(6.210)(8.243)(9.1)(10.11)(11.124)(12.235)(13.242)(14.243)(15.244)(240.235))(princ“\n\t\t>>\t选择要更改颜色的对象

CChafee 发表于 2022-7-6 13:15:22

谢谢你lpseifert和fixo这两个都做得很好。我非常感谢你的帮助。当我学到更多关于这些的知识时,我肯定会学习,也许会调整这两个例程。再次感谢你。
页: [1]
查看完整版本: 需要对象Co的编码帮助