乐筑天下

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

[编程交流] 如何插入动态blo

[复制链接]

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:44:44 | 显示全部楼层
谢谢李,简洁明了。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:47:34 | 显示全部楼层
我找到了两种解决方案:
 
1、一次性使用(块插入):
在所需图形中插入动态块后,将得到一个常规块。它会爆炸,从而获得所需的动态块。
 
2、对于多次插入:
块插入到某个位置,然后删除,而不清除(清理)。因此,动态块定义仍保留在AutoCAD数据库中。然后,您可以在需要时正常插入动态块。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:52:10 | 显示全部楼层
 
仅当作为块插入的图形文件包含动态块参照而不是动态块定义时,才会发生这种情况;如果将动态块定义导出到单独的图形文件(使用WBLOCK),则可以插入动态块,而无需分解生成的参照。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 07:55:03 | 显示全部楼层
李,我搞不懂为什么警察要炸掉这个街区,因为我从来没有必要这么做。你的解释使事情更清楚了。
回复

使用道具 举报

10

主题

37

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-6 07:57:55 | 显示全部楼层
你好,李-什么是我学习如何创建三维动态块的最佳方式,这样我就可以创建一个由直径、长度和头部样式定义的三维紧固件库?
 
非常感谢。
 
 
你不知道你不知道的。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 08:01:56 | 显示全部楼层
谢谢李,你完全正确,如果用WBLOCK定义动态块,它会创建一个块定义文件。
插入到另一个图形中是任何块的正常操作。
 
 
  1. ([color=blue]command[/color] [color=magenta]"insert"[/color] "PunctT" (list x y z) sclx scly angle)

 

 
  1. ([color=blue]vla-InsertBlock[/color] MSpace (vlax-3D-point '(0. 0. 0.)) (findfile numblc)  sclx scly sclz angle)

 
 
关键是如何创建块,而不是插入模式。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:05:09 | 显示全部楼层
呵呵!您的意思是要通过insert命令以外的其他命令进行块参照?那么你的第二行代码怎么了?还是需要使用entmake? 
如果您的意思是希望从Lisp中创建DB定义,那么如果不在BEdit环境中使用命令,这是不可能的。您首先需要创建一个普通的块定义,然后编辑它并使用命令调用放置参数和动作,然后BSave&BClose。
 
现在,如果您只想从另一个文件加载块定义,那么可以通过ObjectDBX。请参阅李的偷窃套路,以获取这方面的优秀示例。至于从外部文件更新现有定义而不使用insert。。。我还没有在lisp/activex中找到任何解决方案。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:08:16 | 显示全部楼层
 
从我所能收集到的信息,以及OP对我上述解释的回应(以下引用),我相信OP认为动态块源文件(即要插入的图形)应该包含动态块的引用,而不是动态块定义本身(打开图形文件时必须在块编辑器中打开)。
 
 
我很高兴你现在明白了
 
 
遗憾的是,据我所知,您目前无法在AutoCAD中创建三维动态块(使用可见性状态除外)-动态块参数仅适用于二维变换。只有可见性状态可用于三维对象,因为这些状态只是改变构成块定义的实体的可见性标志,而不是几何操作对象。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 08:11:09 | 显示全部楼层
至irneb:
 
 
 
仔细阅读最初的帖子,贴上#4,然后我们再聊。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:13:52 | 显示全部楼层
我仍然不明白“问题”是什么。好吧,所以你不想“爆炸”。数据库包含在另一个DWG中。然后执行Lee的Steal例程所做的操作-通过使用ObjectDBX将DB的设备复制到当前DWG-->然后您可以正常插入它,而无需随后分解它(但请注意,它仍然是DB的默认值)。 
如果您尝试DB的未命名块,我想这并不总是正确的。我看到很多DB变成了普通块,因为它们试图直接操作/插入未命名的块,就像你在文章#12的第2点中建议的那样。因此,我不建议这样做。
 
您希望插入DB并设置其值。我认为这已经被报道了很多次了。我甚至为您提供了一种先设置值的方法(post#6)-通过将DB“插入”到临时注释性块定义中(有效地动态创建嵌套想法,然后分解临时容器块)(通过entmake生成块的示例:http://forums.augi.com/showthread.php?5285-使用entmake使用attrib进行块)。我认为这两个想法中的任何一个都没有问题。两者都不是不可能的,也都不是绝对需要命令行。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 09:45 , Processed in 0.868083 second(s), 82 queries .

© 2020-2025 乐筑天下

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