cwake 发表于 2022-7-5 19:01:46

我对AutoCAD for MAC没有任何经验,但我想看看在属性值中有字段的情况下,下面的方法是否可行?具体来说,我感兴趣的是字段引用另一个实体的属性,如圆的半径或面积,因为我已经尝试过在不使用ActiveX方法的情况下获取对象。。。这对我来说是新鲜事。
 
我可以感谢李推动我尝试这种东西。
 
4

Lee Mac 发表于 2022-7-5 19:04:44

 
不客气,我很高兴能激励你进行实验!
 
祝贺您编写了提取属性内容(包括存在的任何字段字符串)的代码,但是,在涉及嵌套字段表达式时要小心,因为您的函数将忽略这些字段
(例如,“%%[/颜色]+%%”)\\f\%lu6\“>%”)
 
为了提供一些思考的素材,考虑我的字段代码函数;当然,在AutoCAD for Mac上操作时,需要将对象ID函数转换为Vanilla AutoLISP。
 
就这种转换而言,我认为您需要使用类似于VovKa演示的函数,或者我演示的函数,以便将十六进制实体名称正确转换为对象ID,因为在64位系统中使用双精度将十六进制字符串转换为64位整数时会出现精度问题。
 
然而,在从属性值中检索到正确的字段表达式以及准确的对象ID后,仍然需要进行大量工作才能在“目标”属性中创建字段,因为如果希望entmake字段,还需要entmake附加到包含字段表达式的属性的扩展字典,除了此扩展字典中的ACAD\U字段字典外,ACAD\U字段字典中的文本字典以及文本字典中包含的每个单独字段实体。
 
本质上,从源属性值检索字段表达式时,需要创建遍历的每个字典。然而,当使用Visual LISP时,AutoCAD将自动检测文本字符串中何时存在字段表达式,并自动生成所需的词典。
 
要给出一个不使用Visual LISP创建字段的示例,请参见Tim Willey的示例。
 

cwake 发表于 2022-7-5 19:08:39

 
非常感谢李。
 
在我发布之后,我在gile的论坛上发现了一些递归代码,这些代码也提醒了我这个问题,我刚才在玩一些想法。我不知道你也做了一些,但我现在很想好好看看。
 
如果能更好地记录这样的事情就好了。如果你曾经在连接到多重引线的属性块内拆分字段,请告诉我!!当我看到它时,它似乎没有遵循与独立块相同的规则。

gpavlov 发表于 2022-7-5 19:10:48

嗨,纳尔逊·布里尔斯,
我已经下载了mav。lsp,已加载到Autocad 2013,但它不运行?
你能帮我做这个吗?
乔治

Todd 发表于 2022-7-5 19:13:21

你好
 
我还有一个非常类似的请求。当我寻找一种方法来匹配插入在同一位置的块的属性时,我发现了这个线程。
 
我正在做的是在杆子上放置信号灯(交通信号设计)。每个灯笼(上面有红绿灯和黄灯)都与车辆或行人群相关,它们安装在具有唯一标识符(车站编号)的杆子上。
 
当然,每根杆子可以有多个灯笼——这使任务复杂化了——否则我只会将杆子和灯笼块包括在一起。
 
我真的希望灯笼座自动拾取插入的杆子的站号。我一直在将数据提取到电子表格中,然后根据X、Y坐标(通过动态块属性)进行分组,但我希望能够通过将与灯笼相关的杆子粘贴到杆子上,使两个块的特定属性匹配,从而实现自动化或半自动化。
 
我还希望能够将每个信号组与“调用”该组的输入相关联,即道路中的感应回路、行人按钮和微波传感器。这基本上是你上面的例程所做的,我很有信心我可以适应这些,但我希望能够消除额外的点击,如果我插入到一个相同的位置计划。
 
这在我的其他工作领域也很有用,例如能够将建筑物中的灯具与供电开关和断路器关联起来(是的,我知道Revit可以做到这一点,但我是一个AutoCAD人员)。
 
希望同样的大师也在那里;这个线程最初启动已经有一段时间了。
 
谢谢

rjames 发表于 2022-7-5 19:18:58

是否可以将块1(tag1)的属性值作为字段复制到块2(tag2),然后将块2(tag3)的属性复制到块1(tag4)?

Lee Mac 发表于 2022-7-5 19:21:27

 
你可以试试我的复制字段程序。

rjames 发表于 2022-7-5 19:23:48

实际上,我有几个属性,我想从我选择的第一个块复制到我选择的第二个块,但源标记名和目标标记名可能需要稍有不同(第二个块将需要标记名上的前缀)。然后我还需要将第二个块中的一个属性复制到第一个块。如果我用嵌套块做一些事情,我可能可以摆脱标记前缀。
 
 
基本上,我可以有一个点表时间表(即第二个块),它具有每个点的属性
页: 1 [2]
查看完整版本: 从一个b复制所有属性