乐筑天下

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

[编程交流] 分解除一个以外的所有块

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:39:31 | 显示全部楼层 |阅读模式
我叫尼尔,是autolisp的新手。我正在尝试编写一个lisp文件,该文件将分解除用户选择的块之外的所有块。这样做的目的是,当我从架构师那里收到一个文件,我将使用它作为我工作的基础文件,我希望能够分解所有块。有时,建筑师使用具有属性的块作为房间标记。我不想爆炸。下面是我到目前为止编写的代码。我可能做错了,如果有更好的方法,请告诉我。另外,如果你能解释一下你发布的任何代码,这样我就可以学习了。以下是我的代码:
 
(defun C:重新选择()
(提示“选择所有不希望分解的块。”)
(setq a(ssget“_X”'((0。“插入”)))
(setq b(ssget()))
(setq c(?)
(命令“_.explode”c”)
(普林斯)
)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:02:18 | 显示全部楼层
欢迎来到CADTutor Neil
 
请尝试以下代码:
  1. (defun c:myexplode ( / all ent inc qaf sel )
  2.    (if
  3.        (and
  4.            (setq sel (ssget      '((0 . "INSERT"))))
  5.            (setq all (ssget "_X" '((0 . "INSERT"))))
  6.        )
  7.        (progn
  8.            (repeat (setq inc (sslength all))
  9.                (if (ssmemb (setq ent (ssname all (setq inc (1- inc)))) sel)
  10.                    (ssdel ent all)
  11.                )
  12.            )
  13.            (setq qaf (getvar 'qaflags))
  14.            (setvar 'qaflags 1)
  15.            (command "_.explode" all "")
  16.            (setvar 'qaflags qaf)
  17.        )
  18.    )
  19.    (princ)
  20. )

只要问问你是否对代码有什么不理解的地方。
回复

使用道具 举报

9

主题

71

帖子

62

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 07:15:19 | 显示全部楼层
  1. (defun c:dontexplode(/ contss contssall ss ssall)
  2. (setq contss 0)
  3. (setq contssall 0)
  4. (princ "Select the blocks you don't want to explode.")
  5. (setq ss (ssget '((0 . "INSERT"))))
  6. (setq ssall (ssget "_X" '((0 . "INSERT"))))
  7. (repeat (sslength ss)
  8. (repeat (sslength ssall)
  9.         (if (not(eq (ssname ss contss) (ssname ssall contssall)))
  10.         (command "explode" (ssname ssall contssall))
  11.         )
  12. (setq contssall( + 1 contssall))
  13. )
  14. (setq contss(+ 1 contss))
  15. (setq contssall 0)
  16. )
  17. )

 
我得到了这个,但李更快,我相信他的代码是更好的哈哈
回复

使用道具 举报

9

主题

71

帖子

62

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 07:19:23 | 显示全部楼层
哇,我不知道qaflags和ssmemb,很高兴知道(:
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:37:57 | 显示全部楼层
李,这很有效。谢谢你的帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:44:10 | 显示全部楼层
 
非常欢迎你,尼尔,很乐意帮忙。
 
 
QAFLAGS系统变量是一个奇怪的变量;它没有文档记录,并且对不同值的命令有一些模糊的影响-我只在需要向分解命令传递选择集而不是单个实体名称时才真正倾向于使用它。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:15 , Processed in 0.501762 second(s), 64 queries .

© 2020-2025 乐筑天下

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