乐筑天下

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

[编程交流] 用pr替换所有旧块

[复制链接]

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 23:53:45 | 显示全部楼层
请不要错过,这不是一个按需开发的机构!
可能需要调整蓝色部件以适合您的情况;只要确保所有层都未锁定。
  1. ;;; Replace Blocks By List (20-III-2014)
  2. (defun c:RBBL( / blockOld blockNew ssetBlocks entBlock assocBlock )
  3. (foreach blockOld '("[color=blue]B1[/color]" "[color=blue]B2[/color]" "[color=blue]B3[/color]")   ;;;list of blocks to replace
  4. (if (and (tblsearch "BLOCK" blockOld)
  5.           (tblsearch "BLOCK" (setq blockNew (strcat "modified_" blockOld))))
  6.   (if (setq ssetBlocks (ssget "_X" (list '(0 . "INSERT") (cons 2 blockOld))))
  7.    (while (> (sslength ssetBlocks) 0)
  8.     (entmod (subst (cons 2 blockNew)
  9.                    (assoc 2 (setq assocBlock (entget (setq entBlock (ssname ssetBlocks 0)))))
  10.                    assocBlock))
  11.     (ssdel entBlock ssetBlocks)
  12.    )
  13.   )
  14. )
  15. )
  16. (princ)
  17. )

 
顺便说一句,这并不考虑嵌套块。
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-5 23:59:40 | 显示全部楼层
你好,MSasu
只是礼貌地寻求帮助,我知道像你这样的大多数人都愿意帮助。
 
我试过你的Lisp程序,效果很好。但是,这个嵌套块问题确实是罪魁祸首,这也是发布此线程的主要原因。这能解决吗?
 
下面是我如何测试它的。捕捉前后。
002210h96lgyk5ill2i6vl.jpg
002216jzfuugsugbflv3bl.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:01:14 | 显示全部楼层
你好
 
启动Vlisp之前的一些解释
 
是否要用具有相同块名但前缀为Modified\word的新块名列表替换块列表?
然后,在旧块(待替换)中嵌套块,以将其重新包含在新替换的块名称中,该名称已修改?
 
如果你能上传一个样品画一个例子之前和之后,这将是伟大的。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:06:06 | 显示全部楼层
请特别注意,如果列表中块名称的顺序不合适,则替换嵌套块可能会出错!应该从最低级别的块(即嵌套较深的块)开始,然后继续到主级别。
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:09:22 | 显示全部楼层
塔尔瓦特。
 
我附上了前后两个文件。举个例子。在下面的方块上寻找红色的项目(这是我的目标)。
之前图纸
之后图纸
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:11:12 | 显示全部楼层
 
我明白你指的是什么。。。我认为我不需要替换所有级别的块。它要么是顶层(覆盖所有内部构件),要么是底层(单独)。最糟糕的情况是,我必须更换最底层的,除非将其分解到平坦的水平面,否则很难接近。
 
编辑:目前我正在寻找一种从图形中提取(或手动复制pase)块名的方法。我看到杰弗里·桑德斯·布莱克特里。lsp,但它不允许我从对话框中复制任何文本。仍在探索。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:15:44 | 显示全部楼层
为什么你在上传之前和之后都进行了修改?
你说的修改是什么意思?
我们说的是一个嵌套块吗?
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:16:32 | 显示全部楼层
 
红色显示的modifid_u实际上是我的源块,我想将其中的一些块替换为我的目标较低的块。所以,我在单独的文件中显示了之前和之后的内容,以便您可以区分它们。我这样搞混了吗?是的,一个嵌套的大街区,里面有一棵大树。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:20:17 | 显示全部楼层
你有这么多块在彼此之间,这看起来很复杂,这不是我提到的用一个嵌套块替换一个块的问题。很抱歉
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:23:56 | 显示全部楼层
 
是的,有这么多街区,但这不是全部街区。我必须创建一个大区块的较小版本才能在这里共享。你可以想象我的主文件大约有90到100MB,上面有这么大的块和它们的不同版本。
 
没问题。谢谢你调查这件事。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:14 , Processed in 0.366701 second(s), 72 queries .

© 2020-2025 乐筑天下

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