乐筑天下

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

[编程交流] 重命名块的单个实例...有可能吗?

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2017-6-5 19:12:58 | 显示全部楼层 |阅读模式
重命名块的单个实例...有可能吗?
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2017-6-5 19:50:26 | 显示全部楼层
仍然在努力弄清楚你想做什么
块的几何图形会发生更改,还是仅更改属性值
如果几何图形正在更改,似乎每个布局都需要一个唯一的块。您需要修改几何体并为其指定唯一名称,然后将其插入该布局中。我喜欢你的命名想法,如果需要以编程方式访问,你可以稍后对其进行解析。
不过,我很可能完全误解了你的帖子
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2017-6-5 22:18:31 | 显示全部楼层
我想你有基本的想法..几何图形将被修改,类似于动态块。
该项目的关键在于,只有25个+/-块可以通过数以万计的方式进行配置以创建图形。当属性更改并更新为各种值时,块会根据预定义的参数自动重新配置。有点像一个动态块,具有与属性值绑定的参数化约束。
用户将选择要导入的数据点。最初,图形中没有块,但一旦输入了数据集,用户就可以使用该基本模型生成其他布局,并使用新数据更新该特定布局上的块,而无需更改初始数据。
因此,基本上,代码以编程方式创建一个块,并为其提供唯一的名称。然后,它将其他块插入其中,以基于属性值创建几何图形。如果复制该块,则需要重命名它,因为同一块的两个实例将导致数据计算不正确。
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2017-6-5 22:37:39 | 显示全部楼层

这可能是一个关键点。用户是否有可能在您的软件未运行时复制此块?如果是这样,您将拥有同一块的两个实例以及与之相关的所有 tomfoolery。
如果没有,那么您已经很好地解决了问题。差不多是时候为它编写一些代码了。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2017-6-5 22:58:41 | 显示全部楼层
当AutoCAD打开时,软件将自动加载。当然,再多的代码都无法控制人们如何破坏图纸,但如果他们一开始就获得了正确执行的工具,破坏图纸的机会就会最小化。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2017-6-6 09:37:04 | 显示全部楼层
要理解您的问题,我的问题是:您是作为CAD用户还是作为程序员来描述场景?既然这是一个关于编程的论坛,让我们假设它是后者。那么我们程序员应该总是通过BlockTableRecord和/或BlockReference来引用“块”,当您说“插入块‘a’”然后“重命名块‘a’”时,并不清楚“块‘a’”是指块表记录还是“块参考”:可以将块图形作为块表记录插入,也可以“插入”块参考(从技术上讲,它不是插入,而是创建,因为块表记录必须存在/首先被插入)。但是BlockReference不能被重命名,它采用BlockTableRecord的名称。我相信你知道这一切,但指出我想说的如下;下面是我对you want to do(带代码)的简要翻译在layout“Current”上,插入一个块定义“a”,然后根据“a”block table record创建一个带有lot属性的BlockReference给它;。
将布局“当前”上的所有内容(假设只有一个BlockReference)复制到布局“未来”,。
您希望布局“Current”上的块参考将其名称更改为“a-xxx-index”,布局“Fututre”上的块参考将其名称更改为“a-yyyy-index”(或任何名称)。但是,BlockTableRecord保持不变正如我上面提到的,BlockReference的名称是不可更改的(即只读),因此,唯一的方法是使用所需的块名称创建新的BlockTableRecord,并将BlockReference的BlockTableRecord属性重新指向新的BlockTableRecord(即BlockReference被更改为另一个BlockTableRecord的引用)。因此,您可以这样做:1。使用代码创建一个新的BlockTableRecord,它具有与block table record“a”相同的几何图形,根据需要命名它。2,将目标BlockReference的BlockTablerecord属性设置为新创建的BlockTableRecord的ObjectId。3,如果“重命名”的BlockReference仍然是新创建的BlockTableRecord的唯一引用(仅用于命名目的),则可以省略在新的blocktablerecord中创建所有AttributeDenitions,如块定义“a”中一样。也就是说,新创建的不具有所有attributedefinitions的blocktablerecord不会影响现有BlockReference的attributereferences。4,创建所有新的块表记录并重新引用相应的块引用后,调用编辑器。Regen()更新编辑器中的块参考视图,希望我对您需求的理解没有太多偏差。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2017-6-6 20:05:59 | 显示全部楼层
同上
通过编程,您可以使用现有btr中所有项目的克隆来创建新的btr,
然后您可以使用paperspace块来访问insertpts和rotations,以便在其中插入新的brefs。
因此,您不是复制布局,更像是创建一个新布局并填充它。
如果您有复杂的视窗,这可能涉及更多的工作,否则相当简单
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2017-6-6 23:22:54 | 显示全部楼层
是啊,我知道哪里让人困惑了。我将尝试从编程的角度用最简单的术语来解释它。
我以编程方式将一个布局(包括所有关联的几何图形)复制到一个新布局中。acLayoutMgr。CopyLayout(源,目标);
[/ol]
新的目标布局是源布局的精确副本,除了名称(以及我在别处设置的tab键顺序)
源布局有多个块引用,每个块引用都有多个复制到目标布局的属性。我需要这些块参照具有唯一的名称,该名称由基本块名称(它是12个预定义名称之一)、布局名称(块参照所在的位置)以及在该布局中唯一标识该块的索引组成。因此,如果源布局命名为“当前”,目标布局命名为“未来”,则“当前”布局中名为“a-current-32”的块参考将是“未来”布局中的“a-future-32”。
我意识到在BlockTableRecord中需要一个新的块定义,因为最终每个块定义只能有一个块引用。
我的设想如下:
打开一个用户窗体;
将布局复制到新布局;
获取目标布局上所有块引用的集合;
对于未来布局中的每个块参考,
将现有块定义(即“a-Current-21”)复制到新的块定义(“a-Future-21”);
更新相关的块引用(“a-Current-21”)以指向新的块定义(“a-Future-21”);
重新生成编辑器;
关闭用户窗体;
我想解释它的一个非常简单的方法是“用引用原始块定义副本的新插入替换指定布局上的所有插入,同时用目标布局的布局名称替换源块定义名称中的布局名称。”
我真的希望这有意义,因为我不确定我知道如何解释它。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2017-6-7 22:44:31 | 显示全部楼层
/yes所以只需要1个sub replaceblockrefs()。并且您正在使用属于该布局的图纸空间块在blockfrefs中循环。用字典抄附件。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2017-6-7 23:54:35 | 显示全部楼层
到目前为止还没有代码...接受管理它的最佳方式。只有到那时,我才会编写一些代码,但它越来越接近了!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 01:53 , Processed in 0.302219 second(s), 83 queries .

© 2020-2024 乐筑天下

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