明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 372|回复: 4

[讨论] 请教高手,此块为何无法炸碎?谢谢

[复制链接]
发表于 2019-6-18 14:25 | 显示全部楼层 |阅读模式
请教高手,此块为何无法炸碎?见附件。谢谢!!!

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-6-20 10:55 | 显示全部楼层

帮你炸开了

本帖最后由 1291500406 于 2019-6-20 11:19 编辑

cad2007运行这个,等两分钟就炸开了,

(defun c:bb()
(command "_audit" "y" )
(setq en(car (entsel)))
(command "_bedit"  (cdr (assoc 2 (entget en))))
(command "EXPLODE"(ssget "x" ) "")
(command "_BCLOSE" "")
(command "EXPLODE"  en "")(princ))


cad2017运行无效,这个是无名块,2017无法获取块名,你要先改块名

(defun C:blk~U (/ ss2 ss1  *APP *DOC A AA apple_sel apple_nnblk i bbb)
(setq ss2 (uINT 1 "" "1.改成无名块,2.匿名块恢复为时间块名" 1))(if (= 1 ss2)
(prompt "\n选要改动无名块的图元:")(prompt "\n选要改动时间块名的图元:"))
(if (= 1 ss2)(setq A "*U")(setq A (rtos (* (getvar "CDATE") 1E8))))(setq AA 1  bbb nil)
(if (setq ss1 (ssget (list (cons 0 "INSERT"))))(progn(setq osmode (getvar "osmode") i 0)
(setvar "osmode" 0)(vl-load-com)(setq *APP (vlax-get-acad-object) *DOC (vla-get-activeDocument *APP))
(while(setq apple_sel (ssname ss1 i))(if (= 1 ss2)(setq A "*U")(setq A (rtos (1+ (atof A)))))
(setq AA 0)(if (member (cdr (assoc 2 (entget apple_sel))) bbb)(setq AA 1)
(setq bbb (append bbb (list A))))(setq apple_nnblk (vlax-ename->vla-object apple_sel))
(if(and  (= (vla-get-objectname apple_nnblk) "AcDbBlockReference")(= AA 0))
(vla-put-name(vla-item(vla-get-blocks(vla-get-activedocument (vlax-get-acad-object)))
(vla-get-name apple_nnblk)) A))(setq i (1+ i)))(if (= ss2 2)(progn(vla-auditinfo *Doc :vlax-true)
(setq A (rtos (* (getvar "CDATE") 1E8))i 0)(while(setq apple_sel (ssname ss1 i))
(if (= 1 ss2)(setq A "*U")(setq A (rtos (1+ (atof A)))))(setq apple_nnblk (vlax-ename->vla-object apple_sel))
(if (= (vla-get-objectname apple_nnblk) "AcDbBlockReference")
(vla-put-name(vla-item(vla-get-blocks(vla-get-activedocument (vlax-get-acad-object)))
(vla-get-name apple_nnblk))A)(princ "\n选择物体非块"))(setq i (1+ i)))))
(setvar "osmode" osmode)))(princ))(defun uint (bit kwd msg def / inp)
(if def (setq msg (strcat "\n" msg "<" (itoa def) ">:")  bit (- bit (boole 1 bit 1))  )         
(if  (= "" (substr msg (strlen msg) 1))(setq msg (strcat "\n" (substr msg 1 (1- (strlen msg))) ":"))
(setq msg (strcat "\n" msg ":"))))(initget bit kwd)(setq inp (getint msg))(if inp inp def))        



本帖子中包含更多资源

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

x
 楼主| 发表于 2019-6-20 16:22 | 显示全部楼层

谢谢 1291500406
发表于 2019-6-20 17:04 | 显示全部楼层
AutoCAD2020表示轻松炸开。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 22:58 , Processed in 0.515935 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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