明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3727|回复: 9

找到了,分解属性块的炸弹!能多选就好了!

[复制链接]
发表于 2005-6-4 00:34 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-6-4 13:07:13 编辑

炸开后能保持属性块的值!! 问题: 1.能多选就好了 2.如果没选到对象或选错对象不要直接退出 3.如果UCS不是WORLD(比如ucs>3>任意三点),文字的位置会变 程序在三楼
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2005-6-5 23:42 | 显示全部楼层
;支持多选,未选中不退出 ;炸开属性块,保留原有属性内文字
(defun c:xf(/)
(princ "Explode block-Retain attribute")
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(command "ucs" "w")
(setq attb nil)
(while (not (setq s(ssget '((0 . "INSERT"))))))
(setq i 0)
(while (< i (sslength s))
(setq s1 (ssname s i))
(setq attnam (entnext s1) da (entget attnam) k (cdr (assoc 1 da)))
(while (= "ATTRIB" (cdr (assoc 0 da)))
(setq p (cdr (assoc 10 da)))
(setq h (cdr (assoc 40 da)))
(setq attb (cons (list k h p) attb))
(if (/= "STAR" (cdr (assoc 2 da)))(command "text" p h 0 k))
(setq attnam (entnext attnam) da (entget attnam) k (cdr (assoc 1 da)))
);while-attrib
(command "explode" s1)
(setq ent (ssget "x" (list (cons 0 "ATTDEF"))))
(command "erase" ent "")
(setq i (+ i 1))
)
(princ (strcat "\nTotal " (rtos i 2 0) " exploded!"))
(command "undo" "e")
(setvar "osmode" os)
(princ)
)

点评

谢谢老师分享,看你的源码。收获很多也写出了自己工作用的  发表于 2020-8-27 15:32
回复 支持 1 反对 0

使用道具 举报

发表于 2005-6-4 08:38 | 显示全部楼层
Express Tools 里有一个命令能做到
 楼主| 发表于 2005-6-4 11:20 | 显示全部楼层
本帖最后由 作者 于 2005-6-4 12:54:34 编辑

(defun c:ef()
(setq attb nil)
(setq name (car(entsel)))
(setq da (entget name))
(setq k (cdr(assoc 1 da)))
(setq attnam (entnext name) da (entget attnam) k (cdr (assoc 1 da)))
(setq j 0)
(while (= "ATTRIB" (cdr (assoc 0 da)))
(setq p (cdr (assoc 10 da)));(print p)
(setq h (cdr (assoc 40 da)));(print h)
(setq attb (cons (list k h p) attb))
(if (/= "STAR" (cdr (assoc 2 da)))(command "text" p h 0 k))
(setq attnam (entnext attnam) da (entget attnam) k (cdr (assoc 1 da)))
(setq j (+ j 1))
);while-attrib
(command "explode" name)
(setq ent (ssget "x" (list (cons 0 "ATTDEF"))))
(command "erase" ent "")
)
发表于 2005-6-5 09:15 | 显示全部楼层
在我的网U中有一个
发表于 2005-6-5 10:02 | 显示全部楼层
为什么要“分解属性块”?再编辑就麻烦了!
 楼主| 发表于 2005-6-5 12:43 | 显示全部楼层
xyp1964发表于2005-6-5 10:02:00为什么要“分解属性块”?再编辑就麻烦了!

做图面清理时用的着啊,从别人哪里拿来的底图,往往颜色很乱,属性块的颜色改起来特别麻烦,所以要炸开 另外,麻烦斑竹,我不想加载(load "xyp_lib");,这程序功能太强大,我用不上
发表于 2005-6-5 23:48 | 显示全部楼层
贱人发表于2005-6-5 12:43:00做图面清理时用的着啊,从别人哪里拿来的底图,往往颜色很乱,属性块的颜色改起来特别麻烦,所以要炸开



另外,麻烦斑竹,我不想加载(load \"xyp_lib\");,这程序功能太强大,我用不上。


那也用不着炸开。块编辑可以个别的修改。

不想加载(load "xyp_lib"),那就别加载!
发表于 2005-6-13 10:11 | 显示全部楼层
支持楼上的说法,炸开块修改不好。上传一个修改图块颜色的工具,加载后命令名为:gbc

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-5-12 18:21 , Processed in 0.173769 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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