nelsonbriles 发表于 2022-7-5 18:23:38

从一个b复制所有属性

我使用AutoCad Electrical。我一直在使用AlanJ.Thompson(他是一个经常的贡献者)编写的一个很棒的Lisp文件来调用匹配属性值,这大大节省了时间。
 
但是,在AutoCad Electrical中,名为“components”的电气块具有名为Tag1的属性,该属性赋予该组件其唯一性。当我在这些块之间复制所有属性时,我不想更改这个(而且只有这个)属性。
 
我附上了精彩的MAV代码。(我希望没问题。)
 
有人能帮我修改代码,修改除了标记为“TAG1”的属性之外的所有属性吗。(可能还有一个或两个其他可能的附加标签——供将来使用。)
 
谢谢你的帮助。
mav。lsp

Lee Mac 发表于 2022-7-5 18:30:15

欢迎来到nelsonbriles论坛
 
试一试:
根据需要更改“除外”列表以满足您的要求。

nelsonbriles 发表于 2022-7-5 18:32:44

谢谢你,李。你现在在我最喜欢的“麦当劳”排行榜上排名第三,仅次于网球选手约翰·麦肯罗(JohnMcEnroe)和通心粉奶酪(Macaroni'n Cheese),但领先于麦当劳(McDonald's Big Macs)。
 
你的逻辑很紧凑。(如何保持所有括号的正确排列?我看到程序员如何尝试将它们排列起来,但仍然…..您是否使用带有特殊“括号计数器上限”的Lisp编辑器?)
 
无论如何,我计划很快学习一些Lisp,所以我为这个简单的Lisp问题道歉。。。
 
当您声明“根据需要更改‘除外’列表以满足您的要求”时。
 
那看起来怎么样?这样地。。。
 
(setq除'(“TAG1”,“TAG2”,TAG3”);;例外,必须为大写
 
或者像这样。。。
 
(setq,除“(“TAG1”),(“TAG2”));;例外情况,必须为大写
 
或者其他一些语法。
 
再次感谢。
 
 
 
 

Lee Mac 发表于 2022-7-5 18:35:03

很抱歉,纳尔逊·布里尔斯延迟了我的回复,我一定是错过了你的回复——碰巧我在浏览最近的帖子。
 
 
这是可以理解的。。。通心粉奶酪很好吃。。。
 
 
谢谢-只是为了好玩,如果我牺牲了定制的选择消息(这需要本地的“ssget”功能),它实际上可以编码得更简洁一些;但我认为这样对用户来说更清楚。
 
 
对于LISP,我选择的代码编辑器是AutoCAD提供的Visual LISP IDE(VLIDE),它实际上提供了一个代码格式化实用程序-然而,我不喜欢它产生的结果,所以在编写代码时倾向于手动格式化代码-可能我的OCD也与此有关。。。
 
其他的都有记事本++
 
 
没有那么复杂,只是:
 
(setq except '("TAG1" "TAG2" TAG3"))
 
很高兴你喜欢这个节目,谢谢你的赞美。
 
干杯
 

nelsonbriles 发表于 2022-7-5 18:38:55

再次感谢李。
 
自从我意识到我在你的网站上捐赠了一些很好的时间节省。(来自美国的詹姆斯·朗)。
 
您可能知道,AutoCad Electrical是一种非常特殊的工具。每个块(在ACADE中称为组件)——无论是原理图还是面板——都有大量的属性,范围从10到20不等。
 
无论如何,既然你看起来很慷慨地提供了帮助,那么你的算法将如何更改为只复制4个属性呢。例如,我有一个具有20个属性的块:“Tag1”,Tag“2”。。。。,“标签20”。与其复制除一对之外的所有20个(这是您的“MAV”代码现在所做的),相反的“MAV”将很好地出现在您的兵工厂中,在那里只有几个(指定的)块属性必须在图形中的许多块中复制。我已经下载了你强大的Batte。lsp,但是,因为我猜这是一种批处理类型的算法,它不会在我正在编辑的图形上工作。(尽管我会将其用于其他任务!)

Lee Mac 发表于 2022-7-5 18:43:07

为了报答您的捐赠(非常感谢!),以下是修改后的“匹配属性值”代码,以仅匹配“包含”列表中列出的那些属性:
我希望它能帮助你和论坛的其他成员

KeithSWD 发表于 2022-7-5 18:47:17

多年来,我一直在寻找一个LISP例程来在块之间复制属性值,我认为我的搜索已经结束了。但不幸的是,我需要一个将在Autocad for MAC中运行的,它没有Visual LISP(vl load com会直接生成错误)。我也不能使用VBA解决方案。如果有人知道一个纯LISP解决方案,请让我知道,这是超越我的能力写一个!
谢谢

Lee Mac 发表于 2022-7-5 18:50:10

 
以下程序将匹配选定块之间的所有属性值,并应在AutoCAD for Mac上运行:
上述函数是我的属性函数集的一部分。
 

KeithSWD 发表于 2022-7-5 18:52:26

很明显,我在这里发布的时间太长了——你的解决方案很管用!真的非常感谢你。我将调查你的网站,因为我怀疑那里有更多的好东西。
 
谢谢
 
基思

Lee Mac 发表于 2022-7-5 18:57:11

非常欢迎Keith
页: [1] 2
查看完整版本: 从一个b复制所有属性