乐筑天下

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

[编程交流] 将选定块移动到sp

[复制链接]

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:04:42 | 显示全部楼层 |阅读模式
嘿,好了,
我正试图找到一种方法来简化一个过程,这应该在每一张图纸中完成,我需要清理大量的图纸,这是真正的混乱。问题是,你可以在几个层中找到一个块,例如,当块“门”只能在其层“门”中找到时,你可以在几个不相关的层中找到它,墙上有墙、楼梯和儿子,并且需要太多的时间才能将所有这些都转移到适当的层。
是否有任何lisp或方法使其更容易?我的意思是一个lisp,你可以选择几个相关的块(不同的门块),并将它们全部转移到一个特定的层(门层)。
 
谢谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:14:27 | 显示全部楼层
这可以使用过滤器完成,只需选择一个块并删除属性,如图层和插入,然后它将找到所有具有此名称的块,然后只需打开属性并选择正确的图层。
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:19:02 | 显示全部楼层
 
谢谢你的回复,我已经使用了Filter,这是一个方便的命令。重点是通过使用Filter,你几乎可以选择你想要的所有块,但是当你在一个脏的绘图块上工作时,块可能会相互阻塞,你需要先分解它们,然后处理它们,有时由于意外的问题会导致另一个混乱。。。。我只是想知道是否有人有更好的方法来解决这个问题。。甚至还有另一种使用快速选择的过滤器。。。。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:19:55 | 显示全部楼层
将此作为一个示例。
 
笔记:
*用所需的层名称替换“我的层名称”字符串。
*您可以添加任意数量的代码来代替Block1、Block2。。。。等作为您的区块名称。
*块对象不能是动态的,否则它们将不会被选中,您需要另一个过滤器来处理此问题。
 
  1. (defun c:mtl  (/ ss e i)
  2. ;;; Tharwat 02.mar.2015 ;;;
  3. (if (and (tblsearch "LAYER" "[color=red]My-Layer-Name[/color]") [color=dimgray];;; Only one layer name here [/color]
  4.           (setq ss
  5.                  (ssget "_:L" '((0 . "INSERT") (2 . "[color=blue]Block1,Block2,Block3[/color]")))) [color=dimgray];;; A list of block names separated with a comma [/color]
  6.           )
  7.    (repeat (setq i (sslength ss))
  8.      (setq e (entget (ssname ss (setq i (1- i)))))
  9.      (entmod (subst '(8 . "Layer3") (assoc 8 e) e))
  10.      )
  11.    )
  12. (princ)
  13. )
回复

使用道具 举报

0

主题

4

帖子

4

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 20:26:20 | 显示全部楼层
如果您有一个嵌套块(“wall1”中的“door1”),只需重新定义原始块(“door1”),所有块(“door1”)都将更新,包括嵌套块
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:31:48 | 显示全部楼层
 
非常感谢。
 
 
 
谢谢,我尝试了你的代码,但在我编写命令-MTL时,它根本不起作用-什么都没有发生,命令行已经为新命令做好了准备。。。如果你能修改它,那就太好了。非常感谢。
 
顺便说一句,我不能感激你的好意。。。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:37:56 | 显示全部楼层
您是否更改了红色和蓝色的代码以匹配您的dwg?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:43:36 | 显示全部楼层
 
不客气
 
您只是更改了程序的命令名,没有更改我指示的突出显示的单词。
 
我怀疑你是否读过我早些时候在节目的同一帖子中写的笔记
回复

使用道具 举报

1

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:49:05 | 显示全部楼层
 
 
嘿。。。
 
我很抱歉你是对的,我的错。。。我完全按照你说的做了,它成功了,再次谢谢。。。但是,不是将我的块插入到给定的层名称(06门),而是将它们全部插入到一个名为“Layer3”的层中,这个名称以前不存在。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:51:07 | 显示全部楼层
尝试以下程序,更改突出显示的部分以适合:
 
  1. ([color=BLUE]defun[/color] c:blklaymap ( [color=BLUE]/[/color] enx idx lay map sel )
  2.    ([color=BLUE]setq[/color]
  3.        map
  4.       '([highlight]
  5.            ([color=MAROON]"Door"[/color] . [color=MAROON]"Door Layer"[/color])
  6.            ([color=MAROON]"Wall"[/color] . [color=MAROON]"Wall Layer"[/color])[/highlight]
  7.        )
  8.        map ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]cons[/color] ([color=BLUE]strcase[/color] ([color=BLUE]car[/color] x)) ([color=BLUE]cdr[/color] x))) map)
  9.    )
  10.    ([color=BLUE]if[/color]
  11.        ([color=BLUE]setq[/color] sel
  12.            ([color=BLUE]ssget[/color] [color=MAROON]"_X"[/color]
  13.                ([color=BLUE]append[/color]
  14.                   '(
  15.                        ( 0 . [color=MAROON]"INSERT"[/color])
  16.                        (-4 . [color=MAROON]"<OR"[/color])
  17.                        ( 2 . [color=MAROON]"`*U*"[/color])
  18.                    )
  19.                    ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]cons[/color] 2 ([color=BLUE]car[/color] x))) map)
  20.                   '(
  21.                        (-4 . [color=MAROON]"OR>"[/color])
  22.                    )
  23.                )
  24.            )
  25.        )
  26.        ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] idx ([color=BLUE]sslength[/color] sel))
  27.            ([color=BLUE]setq[/color] enx ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] idx ([color=BLUE]1-[/color] idx)))))
  28.            ([color=BLUE]if[/color] ([color=BLUE]setq[/color] lay ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] ([color=BLUE]strcase[/color] (LM:name->effectivename ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 2 enx)))) map)))
  29.                ([color=BLUE]entmod[/color] ([color=BLUE]subst[/color] ([color=BLUE]cons[/color] 8 lay) ([color=BLUE]assoc[/color] 8 enx) enx))
  30.            )
  31.        )
  32.    )
  33.    ([color=BLUE]princ[/color])
  34. )
  35. [color=GREEN];; Block Name -> Effective Block Name  -  Lee Mac[/color]
  36. [color=GREEN];; blk - [str] Block name[/color]
  37. ([color=BLUE]defun[/color] LM:name->effectivename ( blk [color=BLUE]/[/color] rep )
  38.    ([color=BLUE]if[/color]
  39.        ([color=BLUE]and[/color] ([color=BLUE]wcmatch[/color] blk [color=MAROON]"`**"[/color])
  40.            ([color=BLUE]setq[/color] rep
  41.                ([color=BLUE]cdadr[/color]
  42.                    ([color=BLUE]assoc[/color] -3
  43.                        ([color=BLUE]entget[/color]
  44.                            ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 330 ([color=BLUE]entget[/color] ([color=BLUE]tblobjname[/color] [color=MAROON]"block"[/color] blk))))
  45.                           '([color=MAROON]"AcDbBlockRepBTag"[/color])
  46.                        )
  47.                    )
  48.                )
  49.            )
  50.            ([color=BLUE]setq[/color] rep ([color=BLUE]handent[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 1005 rep))))
  51.        )
  52.        ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 2 ([color=BLUE]entget[/color] rep)))
  53.        blk
  54.    )
  55. )
  56. ([color=BLUE]princ[/color])
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 08:53 , Processed in 1.763874 second(s), 72 queries .

© 2020-2025 乐筑天下

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