明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3299|回复: 19

[求助]炸开块中块,到块

  [复制链接]
发表于 2007-10-4 09:42:00 | 显示全部楼层 |阅读模式

炸开块中块,到块

块中块,就是A块再被定义成B块,甚至B块再被定义成C块,有没有一个程序,可以把文件内所有块中块(B,C),炸开成A块

发表于 2020-9-9 23:17:52 | 显示全部楼层
还是不能用吗?求帮助
发表于 2024-8-3 20:50:36 来自手机 | 显示全部楼层
现在解决了吗
发表于 2007-10-5 01:14:00 | 显示全部楼层
本帖最后由 作者 于 2007-10-5 10:36:22 编辑

;; 这是炸开块选集的代码,给你参考一下。自己完善
  1. (DEFUN c:xx (/ fil ss)
  2. (setq fil '((0 . "INSERT")))
  3. (setvar "qaflags" 1);;参数如要恢复,自己加代码
  4. (command ".explode" (ssget fil) "")
  5. (while (setq ss (ssget "p" fil))
  6. (command ".explode" SS "")
  7. )(PRINC)
  8. )
发表于 2007-10-5 06:55:00 | 显示全部楼层
最后再将炸开的做成 块 替换初始块
发表于 2007-10-6 18:20:00 | 显示全部楼层

试验一下

感谢

 楼主| 发表于 2007-10-8 09:13:00 | 显示全部楼层
无痕的程序试用了,程序是炸开块中块到图元,不是炸开块中块到块,可不可以把文件内所有块中块(B,C),炸开成A块啊?
发表于 2007-10-8 13:31:00 | 显示全部楼层
;;编程可以实现,要多几行代码,偷懒了,sorry。
;;也可在原来基础上加(command ".u").只是效率没有那么高就是了:)
  1. (DEFUN c:xx (/ fil ss)
  2. (setq fil '((0 . "INSERT")))
  3. (setvar "qaflags" 1);;参数如要恢复,自己加代码
  4. (command ".explode" (ssget fil) "")
  5. (while (setq ss (ssget "p" fil))
  6. (command ".explode" SS "")
  7. )
  8. (command ".u");; 这里,倒回去一步
  9. (PRINC)
  10. )

 楼主| 发表于 2007-10-8 13:52:00 | 显示全部楼层

程序试用了,呵呵,(command ".u");; 是个好办法

但是新的问题又出现了,如果一个块,和一个块中块,一起选中使用命令的话,块就要被炸开!老大,解决一下

发表于 2007-10-8 15:06:00 | 显示全部楼层

要避免炸开A块可以这样改

;;; (xx "A")

(DEFUN xx (blkname / fil ss)
  (setq fil (list (cons 0 "INSERT") (cons -4 "<NOT") (cons 2 blkname)(cons -4 "NOT>")))
  (setvar "qaflags" 1)
  (command ".explode" (ssget fil) "")
  (while (setq ss (ssget "p" fil))
    (command ".explode" SS "")
  )
  (setvar "qaflags" 0)
  (PRINC)
)

 楼主| 发表于 2007-10-8 16:24:00 | 显示全部楼层

程序试用了,仍然不能避免炸开A,我的CAD是2002

发表于 2007-10-8 20:05:00 | 显示全部楼层

可以把图传上来吗?

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

本版积分规则

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

GMT+8, 2024-11-25 12:25 , Processed in 0.197132 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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