乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 42|回复: 17

[编程交流] 从一个b复制所有属性

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:30:15 | 显示全部楼层
欢迎来到nelsonbriles论坛
 
试一试:
根据需要更改“除外”列表以满足您的要求。
192341oxssvhhsfxxdyxss.png
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

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

 
很高兴你喜欢这个节目,谢谢你的赞美。
 
干杯
 
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:43:07 | 显示全部楼层
为了报答您的捐赠(非常感谢!),以下是修改后的“匹配属性值”代码,以仅匹配“包含”列表中列出的那些属性:
我希望它能帮助你和论坛的其他成员
192342ktop53twjj5o48ft.png
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:50:10 | 显示全部楼层
 
以下程序将匹配选定块之间的所有属性值,并应在AutoCAD for Mac上运行:
上述函数是我的属性函数集的一部分。
 
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:52:26 | 显示全部楼层
很明显,我在这里发布的时间太长了——你的解决方案很管用!真的非常感谢你。我将调查你的网站,因为我怀疑那里有更多的好东西。
 
谢谢
 
基思
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:57:11 | 显示全部楼层
非常欢迎Keith
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 19:40 , Processed in 0.543159 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表