乐筑天下

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

[编程交流] 分解嵌套块,然后分解

[复制链接]

22

主题

78

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 16:05:14 | 显示全部楼层 |阅读模式
大家早上好!
 
我真的很熟悉这段代码(我最近学到了很多!!)。我在某个地方找到了这个,我相信李不久前在一个论坛上发布了它。我已经编辑了它,以获取我想要的,它工作!!
但是,我也希望它能做得更多。分解我在代码中指定的图层上的嵌套块效果很好,但如果我还可以将图层、颜色和线型更改为“0”、ByBlock、ByBlock,我会喜欢它。这仅仅是在分解下添加另一行以放置颜色和放置层等的问题吗。?
 
还需要此选项来选择块中除文本/多行文字之外的所有内容。
 
我看到的一些代码建议我可能必须列出一个列表并引用,但这仍然有点超出我的理解范围。非常感谢您的帮助!!!
 
  1. (defun c:TWRXP (/ s doc)
  2. (if (setq s (ssget "X" '((0 . "INSERT") (8 . "TOWER"))))
  3.    (progn
  4.      (vlax-for obj (vla-item (vla-get-blocks
  5.                                (setq doc (vla-get-activedocument
  6.                                            (vlax-get-acad-object)
  7.                                            )
  8.                                      )
  9.                                )
  10.                              (vla-get-effectivename
  11.                                (vlax-ename->vla-object (ssname s 0))
  12.                                )
  13.                              )
  14.        (if (and
  15.              (= "AcDbBlockReference" (vla-get-objectname obj))
  16.              (null (vl-catch-all-error-p
  17.                      (vl-catch-all-apply 'vla-explode (list obj))
  18.                      )
  19.                    )
  20.              )
  21.          (vl-catch-all-apply 'vla-delete (list obj))
  22.          )
  23.        )
  24.      )
  25.    )
  26. (command "_.-purge" "_B" "*" "_N")
  27. (vla-regen doc acallviewports)
  28. (princ)
  29. )(vl-load-com)
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

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

铜币
260
发表于 2022-7-5 17:07:17 | 显示全部楼层
从不建议分解任何方块,但请查看此处了解其余方块:http://www.cadtutor.net/forum/showthread.php?19161-lisp-for-changing-all-objects-in-a-block-to-layer-quot-0-quot
kbplc针对不同需求提供了多个版本。
 
还有一个版本:
  1. ; Written By: Tom Beauford
  2. ; Changes all block entities to layer "0" with color, linetype & lineweight ByBlock
  3. (defun C:FIXBLKS (/ *ERROR* SSET intCount ENAM ELST BNAM FLST FIX1)
  4. (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)))
  5. (vla-startundomark thisdrawing)
  6. (defun *ERROR* (err) ; define local handler
  7.   (vl-cmdf "undo" "Mark")
  8.   (princ "\n\n")
  9.   (princ)
  10. );  "" is the same message you get when exiting an AutoCAD command.
  11. (defun FIX1 (BNAM / BENAM BONAM)
  12.    (if (not (member BNAM FLST))
  13.         (progn
  14.           (setq FLST  (cons BNAM FLST)
  15.                  BENAM (tblobjname "block" BNAM)
  16.           )
  17.   (while (setq BENAM (entnext BENAM))
  18.             (if (= (cdr (assoc 0 (entget BENAM))) "INSERT")
  19.       (fix1 (cdr (assoc 2 (entget BENAM))))
  20.       (progn
  21.         (setq BONAM(vlax-ename->vla-object BENAM))
  22.                 (vl-catch-all-apply 'vla-put-layer (list BONAM "0"))
  23.                 (vl-catch-all-apply 'vla-put-color (list BONAM 0))
  24.                 (vl-catch-all-apply 'vla-put-linetype (list BONAM "Byblock"))
  25.                 (vl-catch-all-apply 'vla-put-Lineweight (list BONAM -2))
  26.                 (Eq,$(Getvar,PStyleMode),0),STB,CTB )
  27.                 (eq(getvar "PStyleMode")0)(vl-catch-all-apply 'vla-put-PlotStyleName (list BONAM "Byblock")))
  28. ;                        (vl-catch-all-apply 'vla-put-PlotStyleName (list BONAM "Byblock"))
  29.       )
  30.     )
  31.   )
  32.        )
  33.    )
  34. )
  35. (setq SSET (ssget (list (cons 0 "INSERT"))))
  36. (repeat (setq intCount (sslength SSET))
  37.    (setq intCount     (1- intCount)
  38.          ENAM (ssname SSET intCOunt)
  39.           ELST (entget ENAM)
  40.           BNAM (cdr (assoc 2 ELST))
  41.           FLST nil
  42.    )
  43.    (fix1 BNAM)
  44. )
  45. (vl-cmdf "regen")
  46. (vla-endundomark thisdrawing)
  47. (princ)
  48. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 21:16 , Processed in 0.414599 second(s), 67 queries .

© 2020-2025 乐筑天下

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