明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3310|回复: 26

[源码] 嵌套块清理(odcl)

[复制链接]
发表于 2016-7-23 12:24:10 | 显示全部楼层 |阅读模式
本帖最后由 masterlong 于 2016-7-28 22:01 编辑

本来应该发在odcl板块的
但那里人比较少
还是发这里吧

命令:B0
程序功能:嵌套块清理
函数支持:opendcl

程序思路简要说明
将嵌套图块分为两类:顶层和非顶层
分两个列表显示
顶层类是可以直接删、炸开并清理的
非顶层不能直接删、炸、清理
对不需要清理的嵌套块加入忽略块名列表
顶层列表清空后自动刷新重置两列表
直到嵌套块全部清理完成


因为是从我的一个主程序中剥离出来的
程序中部分次要功能屏蔽
帮助界面的文字没改









opendcl运行支持库下载
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=173225&pid=778131&page=1&extra=#pid778131

10楼补了一个漏掉的函数

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2023-8-23 19:19:48 | 显示全部楼层
这个程序后来做了些改进
加了【内部炸开】和【转换图层】两个功能
有空时整理下发上来
发表于 2023-9-2 21:01:06 | 显示全部楼层
可以发个支持CAD2020版本的么,感觉这个挺好用的
发表于 2023-8-23 17:36:21 | 显示全部楼层
漏掉的函数  加在哪里没有说明清楚

点评

看到了“补”这字,却看不到补在哪里?  发表于 2023-8-23 19:12
发表于 2016-7-23 16:37:32 | 显示全部楼层
感谢分享。。。。。。。
发表于 2016-7-26 07:23:26 | 显示全部楼层
感谢分享。。。。。。。masterlong你好為什麼不能用
 楼主| 发表于 2016-7-26 13:07:39 来自手机 | 显示全部楼层
出错提示是啥?
发表于 2016-7-26 15:29:09 | 显示全部楼层
遇到嵌套块是很烦的。好多人定义块时,对象没有在0层(习惯非常不好)。这样最后出图图纸上图层特别多,清理不掉。下面的程序:;---------- 将块内所有对象更改到0图层,颜色随层。
但遗憾的是不能处理嵌套块。

  1. (defun c:0t1 ( / e i l n ss x )
  2. ;---------- 将块内所有对象更改到0图层,颜色随层。
  3.    (setvar "clayer" "0")
  4.     (if (setq ss (ssget "X" '((0 . "INSERT"))))
  5.         (repeat (setq i (sslength ss))
  6.             (if (not (member (setq n (cdr (assoc 2 (entget (ssname ss (setq i (1- i))))))) l))
  7.                 (progn
  8.                     (setq e (tblobjname "block" n)
  9.                           l (cons n l)
  10.                     )
  11.                     (while (setq e (entnext e))
  12.                         (setq x (entget e))
  13.                         (entmod (subst '(8 . "0") (assoc 8 x) x))
  14.                     )
  15.                 )
  16.             )
  17.         )
  18.     )
  19.     (command "_.regen")
  20.     (princ)
  21. )
发表于 2016-7-26 19:19:37 | 显示全部楼层
fl202 发表于 2016-7-26 15:29
遇到嵌套块是很烦的。好多人定义块时,对象没有在0层(习惯非常不好)。这样最后出图图纸上图层特别多,清理 ...

挺好用.收藏.11
 楼主| 发表于 2016-7-26 20:20:36 来自手机 | 显示全部楼层
嵌套块很多是ctrl+shift+v产生的
层层嵌套非常讨厌
发表于 2016-7-27 07:27:24 | 显示全部楼层
感谢分享。。。。。。。masterlong你好為什麼不能用
error: no function definition: DCL-FORM-SHOW
 楼主| 发表于 2016-7-27 08:38:23 来自手机 | 显示全部楼层
标题和程序简介都说了
这是基于opendcl开发的
下个运行支持函数库
 楼主| 发表于 2016-7-28 21:37:34 | 显示全部楼层
貌似掉了个函数

;;检查块名,含wcmatch函数约定的特殊字符,在前加“`”以跳过特殊字符,保证块名过滤选择时图块能被选中
(defun checkblknm( nm / nmlist newlist )
        (if (wcmatch nm "*[`@`#`.`~]*,*`[*,*`]*")
                (progn
                        (setq nmlist (vl-string->list nm))
                        (setq newlist '())
                        (foreach x nmlist
                                (if (member x '(35 64 46 126 91 93))
                                        (setq newlist (cons x (cons 96 newlist)))
                                        (setq newlist (cons x newlist))
                                )
                        )
                        (vl-list->string (reverse newlist))
                )
                nm
        )
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 05:29 , Processed in 0.185058 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表