炸开“多重插入引用”的方法以及制作
1.“多重插入引用”的制作:用minsert命令,提示块名,在cad工作目录下找一张图,键入这个图名,然后到提示行数或列数时,输入2以上,但行距或列距输入0。这样一个多重插入引用制作完成,无法用explode炸开了。
2.炸开方法如下:
方法一:点击这个多重引用,看它的名字,然后再用minsert命令,插入这个名字,只不过都按默认的行数(1行)列数一直回车。这样插入的这个块就可以炸开了。
方法二:双击这个块,出现参照编辑对话框,点确定,出现参照编辑工具条;用explode炸开;然后点击参照编辑工具条从工作集删除对象,选中所有图形,回车;再点击参照编辑工具条上的放弃对参照的修改。此时再用explode就可以炸开了。
方法三:1、打开原文件后,输出为*.wmf文件,
2、新建空*.DWG文件,插入*.wmf文件,
3、输入另外一个炸开命令:xplode回车
4、选图层(TA),大功告成。可惜的是文字都炸开了,填充也炸了,图层只有一个,而且文件比较大。附件为wmf文件
1 问:请教一下,怎么插入*.wmf文件啊 2 答:输入wmfin插入 3 多重插入引用为一个无名块,你的第一个方法好像不管用啦!由于是无名块,你双击块时,不会出现参照编辑对话框,也就不会出现你后面说的情况;你的第三个方法文件较大,转换时间较长,我想也不是很好的方法;好的方法是建议你下载一个AutoCAD 快速加载 AutoLISP 文件,可以很轻松解决。http://www.51city.cn/blog/UploadFiles/2007-4/414905294.rar
0
· 本文介绍CAD多重插入引用 炸开方法
多重插入引用就是 经常会使用的图纸加密技术,永远无法解开的死锁。
方法一:
有两个好工具,可以轻松炸开。一个是AutoCAD 快速加载 AutoLISP 文件:wjjm;另一个cad加密插件,请大家使用。
具体方法:
AutoCAD 快速加载 AutoLISP 文件wjjm的使用:用cad打开需要炸开的文件,将wjjm直接拖入cad窗口,命令行输入wjmm,回车后按提示操作即可。
操作步骤:① 于CAD中,选择:“工具”菜单→“加载应用程序”选项。
② 于对话框中选择文件“wjjm”,进行应用程序加载。
③ 于CAD命令行中,输入“wjjm”命令,然后选择需要保护的图块,随便点击即可取消保护。
方法二:
输入“CYN-”,将多重插入块转换为普通快,然后可以炸开编辑
方法三:
把以下内容保存为lsp文件(如exm.lsp),加载后运行exm既可把“多重插入块”转换为“普通块”,然后既可用“explode”分解。加载后运行lockb可把“普通块”转换为“多重插入块”
;;-------------------------------------------------------------
;;转换“多重插入块”为“普通块”。
(DEFUN C:exm ()
(setvar "cmdecho" 0)
(SETQ STM (car (ENTSEL " 点取多重块")))
(while stm
(setq e (entget stm))
(setq stlx (cdr (assoc 0 e)))
(if (= stlx "INSERT")
(PROGN
(setq r_zm70 (assoc 70 e))
(setq c_zm71 (assoc 71 e))
(setq r_dist_zm44 (assoc 44 e))
(setq c_dist_zm45 (assoc 45 e))
(setq e (subst (cons 44 0) r_dist_zm44 e))
(setq e (subst (cons 45 0) c_dist_zm45 e))
(setq e (subst (cons 70 0) r_zm70 e))
(setq e (subst (cons 71 0) c_zm71 e))
(setq e (subst (list 100"AcDbBlockReference") (list 100"AcDbMInsertBlock") e))
(entmake e)
(entdel stm)
))
(SETQ STM (car (ENTSEL " 点取下一多重块")))
)
(setvar "cmdecho" 1)
)
;;--------------------------------------------------------------------
;;转换“普通块”为“多重插入块”
(DEFUN C:lockb ()
(setvar "cmdecho" 0)
(SETQ STM (car (ENTSEL " 点取块")))
(while stm
(setq e (entget stm))
(setq stlx (cdr (assoc 0 e)))
(if (= stlx "INSERT")
(PROGN
(setq r_zm70 (assoc 70 e))
(setq c_zm71 (assoc 71 e))
(setq e (subst (cons 70 1) r_zm70 e))
(setq e (subst (cons 71 1) c_zm71 e))
(setq e (subst (list 100"AcDbMInsertBlock") (list 100"AcDbBlockReference") e))
(entmake e)
(entdel stm)
))
(SETQ STM (car (ENTSEL " 点取下一块")))
)
(setvar "cmdecho" 1)
)
文章评论(0条评论)
登录后参与讨论