BlackBox 发表于 2022-7-6 08:23:21

 
根据定义,如果将对象设置为“BYLAYER”,则当您指定除“BYLAYER”之外的任何颜色时,QSELECT将不会选择该对象相反,您可以考虑按块名选择QSELECT。SelectSimular(或的自定义改编)也可能是一种解决方法。
 
 
我不知道。

Lee Mac 发表于 2022-7-6 08:27:18

 
这是一个非常简单的程序,可以将一组颜色“映射”到另一组颜色:
 
程序将更改所有对象的颜色,对于这些对象,颜色属性未设置为ByLayer,并且颜色在颜色图中找到。
 
该程序将包括所有布局中的所有对象,还将包括嵌套在任何级别的块中的对象。
 
该程序将排除外部参照中的对象或锁定图层上的对象。

Lee Roy 发表于 2022-7-6 08:31:02

李,当你想把1换成3,把3换成1时会发生什么?
 
例如:
3
 
这会不会把所有的红色都变成绿色,然后把所有的绿色变成红色,最后只剩下红色?

Lee Mac 发表于 2022-7-6 08:34:50

 
否,因为块集合只迭代一次;结果会如你预想的那样:红色变成绿色,绿色变成红色。

BlackBox 发表于 2022-7-6 08:37:02

(Assoc…特朗普(Foreach x。。。
 

Lee Roy 发表于 2022-7-6 08:40:06

 
啊。。。。就在那里!
 
谢谢你们!

econnerly 发表于 2022-7-6 08:41:36

 
我希望我能像你们一样有编程技巧。我不知道那是什么意思。

BlackBox 发表于 2022-7-6 08:45:34

 
李做了所有的(难?)工作
 
 
基本上,通过李正确使用Assoc函数根据地图列表变量(由列表列表组成,即(list(list OldColor1 NewColor1)(list OldColor2 NewColor2))查询对象的颜色,地图列表变量设置定义了哪些被替换,哪些不被替换。
 
如果在查询地图列表变量时,没有返回匹配项,则不会对该对象进行更改。
 
 
如果Lee在选择集上使用带有Map list变量的Foreach函数,这不仅会大大降低效率,因为代码会对Map list变量中的每个项目在选择集进行迭代,而且任何已经更改为新颜色(对应于地图列表下一步的旧颜色)的对象都会再次更改。
 
... 这会使(更多?)你现在感觉到了吗?

econnerly 发表于 2022-7-6 08:50:43

 
这更有意义!

BlackBox 发表于 2022-7-6 08:53:31

 
早期,当我第一次学习LISP(不是很久以前)时,我觉得我总是在阅读别人对代码在这里或那里做什么的解释,几乎没有一个对我有多大意义。。。当时。
 
然而,我学到的越多,我就越能够反思,甚至重新阅读旧帖子,尽管速度很慢(就我而言),但一切都开始到位。
 
**编辑-我还在学习。。。当然,是通过他人的善良,也通过试错。
 
我相信,随着你的编码能力的提高,这同样适用于你。
页: 1 [2]
查看完整版本: 挑战:硬编码颜色re