乐筑天下

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

[编程交流] 合并块

[复制链接]

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 14:20:31 | 显示全部楼层 |阅读模式
我知道有一个MergeLayer命令,我想知道是否有人知道MergeBlock命令?我经常将图形从Microstations转换为ACAD,当我转换时,它们会用Microstations技术放置在图形中的“单元格”进行转换。然而,在转换过程中,ACAD会重命名转换后的ACAD图形中的一些“单元格”。例如,我基本上得到了10个完全相同的“正方形”块,标记为:正方形,正方形01,正方形02,正方形03。。。我现在使用Express工具中的块替换,它工作正常,但我想知道是否有更简单的方法,因为我通常在每个图形中有20多个这样的块,据我所知,块替换一次只能替换一个。
谢谢你的帮助。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 14:40:19 | 显示全部楼层
这很奇怪,我从来没有遇到过这样的问题,有时我会从microstation导出。但无论如何,你有一个例子吗?
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 14:56:58 | 显示全部楼层
这里有一个例子。
测验拉链
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:10:47 | 显示全部楼层
虽然不太好看,但确实有效。。至少对我来说
  1. ;|************************************************************************
  2. **************************************************************************
  3. *********************A Simple Block Replace Function**********************
  4. ******************************By: ZRABOIN*********************************
  5. **************************************************************************
  6. ************************************************************************|;
  7. (defun c:bsw ( / rblk nblk)
  8. (if (and (setq rblk (car (entsel "\nSelect a block with the block name you want to replace: ")))
  9.       (setq nblk (car (entsel "\nSelect the block you would like to replace it with: ")))
  10.       (= (cdr (assoc 0 (setq rblk (entget rblk)))) "INSERT")
  11.       (= (cdr (assoc 0 (setq nblk (entget nblk)))) "INSERT"))
  12.    (progn
  13.      (setq rblk (reverse (vl-string->list (cdr (assoc 2 rblk)))))
  14.      (while (and (> (car rblk) 48)
  15.          (< (car rblk) 57))
  16.    (setq rblk (cdr rblk)))
  17.      (mapcar '(lambda (z) (vla-put-name (vlax-ename->vla-object (cadr z)) (cdr (assoc 2 nblk))))
  18.          (ssnamex (ssget "X" (list (cons 2 (strcat (vl-list->string (reverse rblk)) "*")))))))
  19.    (princ "\nBlock not selected! Exiting program."))
  20. (princ)
  21. )
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 15:31:39 | 显示全部楼层
这是可行的,但我正在寻找更像“合并层”命令的东西,在那里我可以选择可用块的列表来替换为一个块。我更喜欢一个列表,因为正如您在提供的图纸中所看到的,有许多块都需要用一个块来替换。这是我有40张同样问题的图纸之一。我希望能够找到一个LISP,可以使这比打开每个图形,并在每个块上使用块替换快速工具更容易。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 02:53 , Processed in 0.998704 second(s), 62 queries .

© 2020-2025 乐筑天下

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