乐筑天下

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

[编程交流] 将组件与

[复制链接]

4

主题

33

帖子

29

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 15:32:36 | 显示全部楼层 |阅读模式
嗨,朋友们,
 
我正在寻找一种解决方案,从现有块(作为普通cad对象)分割特定零件,因为我在图形中使用了100多次相同的块。
 
我知道该组件如何在块内进行编辑,如果这是一个动态块。
 
但现在我需要将该组件作为普通cad实体与块本身分离,并将剩余部分作为与之前相同的块(没有分离的实体)。
 
如果有人有办法做到这一点,请让我知道。。。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:41:30 | 显示全部楼层
像这样http://www.lee-mac.com/addobjectstoblock.html
回复

使用道具 举报

4

主题

33

帖子

29

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 15:46:19 | 显示全部楼层
 
你好,rlx,
 
谢谢你的及时回复。
你提供的lisp是Lee Mac提供的一个很好的lisp。
不幸的是,对于我的调查来说,它不起作用。
我不需要从图纸上删除任何部分。
我需要将块中的一个部分替换到图纸中。
从提供的lisp中,remove命令将永久删除组件。
我需要将组件保留在图纸上,不需要存在于块本身上。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:54:45 | 显示全部楼层
 
 
李有很多节目,还有这个:http://www.lee-mac.com/upgradedburst.html
 
 
这可能更接近你想要的。我想他的程序可以这样修改,它完全可以做你想要的,但我宁愿让李这样做,因为他是作者(更聪明)
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 16:01:17 | 显示全部楼层
请提供相关区块的副本作为参考。dwg文件。指出必须删除的内容以及必须保留的内容。如适用,还应指定块名。图像文件没有用处。它一定是一个。dwg文件。
回复

使用道具 举报

4

主题

33

帖子

29

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:08:23 | 显示全部楼层
 
对你是对的
由于李是作者,他可以在上面写点什么。
回复

使用道具 举报

4

主题

33

帖子

29

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:11:06 | 显示全部楼层
 
你好,马克。。
 
目前我离开了办公室。
一旦我明天到达办公室,我当然会把画贴出来。
 
谢谢你,马克。。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:16:21 | 显示全部楼层
否则,只需创建新块、重命名旧块、插入新块和文本,然后传输数据。
回复

使用道具 举报

4

主题

33

帖子

29

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:26:15 | 显示全部楼层
 
你好,马克,
 
我从我的图纸上附加了一部分,因为文件的大小非常大。
在我的绘图中,有1000多次将这些块命名为“EM”和“WM”。
 
我的要求如下。
 
我需要处理块“WM”,这是一个蓝色属性块。
 
我必须从蓝色框中分割颜色为“绿色”、“黄色”和“青色”的行,块只保留蓝色框和WM文本。
 
这意味着我不需要从块中删除该行。我需要吐出的线,其中“绿色,黄色和青色”仍然在图纸上作为一个普林线单一的对象。
 
如果这样做了,我可以根据我的要求从图形中单独编辑这些线。
 
我希望你明白我的观点。
 
致以诚挚的问候……)
试块。图纸
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:27:16 | 显示全部楼层
这里有一个简单的例子:
  1. (defun c:foo (/ o s)
  2. (if (tblobjname "block" "wm")
  3.    (progn
  4.      (if (setq s (ssget "_x" '((0 . "insert") (2 . "wm,`*U*"))))
  5. (foreach b (mapcar 'cadr (ssnamex s))
  6.   (cond        ((= "WM" (vla-get-effectivename (setq o (vlax-ename->vla-object b))))
  7.          (foreach e (vlax-invoke o 'explode) (and (= 256 (vla-get-color e)) (vla-delete e)))
  8.         )
  9.   )
  10. )
  11.      )
  12.      (vlax-for        b (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) "WM")
  13. (if (/= 256 (vla-get-color b))
  14.   (vla-delete b)
  15. )
  16.      )
  17.      (command "_.attsync" "name" "wm")
  18.    )
  19. )
  20. (princ)
  21. )
  22. (vl-load-com)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:05 , Processed in 0.434973 second(s), 72 queries .

© 2020-2025 乐筑天下

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