多重插入块的制作分解.docx
- 文档编号:11317002
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:8
- 大小:19.17KB
多重插入块的制作分解.docx
《多重插入块的制作分解.docx》由会员分享,可在线阅读,更多相关《多重插入块的制作分解.docx(8页珍藏版)》请在冰豆网上搜索。
多重插入块的制作分解
:
)制作·加密·解密cad文件·炸开多重插入块:
)
所有人:
刘世华
❀❀❀怎么制作多重引用块❀❀❀
AUTOCAD为了省内存,省空间,提高效率,引进了块引用这一技术。
你在当前图纸空间插入一个块,它并不是把这个块复制一遍,而是把这个块的一些属性描述引过来,跟C++里面的引用极像。
我现在讨论的不是引用是怎么实现的,AUTOCAD最大的重头就是块,大家肯定是很了解的。
我想说的是今天我和老韩研究的一个东西,AcDbMInsertBlock-多重插入块。
它其实就是对块引用派生过来的一个新的东西,比普通块引用多了几个属性。
具体是多了列数,行数,列距,行距。
它可以用在什么地方呢?
比如你现在要插入四个一样的块,就是位置不一样,用普通的块引用的话,要引四次。
这样还是很占资源的,效率不高。
而如果用AcDbMInsertBlock,你可以定义一个2列2行,多个插入点的AcDbMInsertBlock。
AUTOCAD内部并没有复制多份引用,我写程序进去把AcDbMInsertBlock里面的每一个实体拷贝出来了,发现只有一份。
当然你不能炸开AcDbMInsertBlock,如果可以炸开你就可以发现我说的肯定是对的。
多重插入块还有一个很有趣的是,它可以用来做加密,当然很容易破解掉的。
大家都知道,无名块是不能够编辑的,所以可以用下面的步骤就可以生成一个只能看不能改的图。
1)、把整个图作成一个块。
2)、把当前图纸空间的实体删除了,用Minsert把刚才那个块插入。
3)、把刚才那个块的块名改成*U。
到现在,这个图不能分解,也不能编辑了,呵呵。
当然破解非常简单的,一个最直接的是把这个多重插入块转成单插入块,然后炸开。
还有一个就是把块表名字改了,这样就可以编辑块了。
当然,你可以作得复杂一点,进入块表记录,把里面每个实体克隆一遍。
“多重插入引用”的制作:
用minsert命令,提示块名,在cad工作目录下找一张图,键入这个图名,然后到提示行数或列数时,输入2以上,但行距或列距输入0。
这样一个多重插入引用制作完成,无法用explode炸开了。
多重块不是重复定义块,而是在矩形阵列中插入一个块的多重引用。
多重块是由命令minsert插入一个块而形成,其在正常情况下不能被分解。
但若是用普通的方法构建的多重块,可以删除掉,然后用insert再插入它原来引用的块即可。
不过,若它原来引用的块是匿名块(即名称前带*的块,只能用程序构建),就不是那么简单的了。
这是,你就需要程序(或者说插件)来还原。
vlx程序就是一个插件。
也就是我上面说的编程实现。
若不会编程,也没有插件,下面的方法可以实现。
❀❀❀怎么加密为多重块❀❀❀
1、多重块不是重复定义块,而是在矩形阵列中插入一个块的多个引用,多重块是由命令minsert插入一个块而形成,MINSERT插入的图块叫“多重插入块”,有点象阵列一样,把图形一成成叠加在一起,叠加的间距可用0或1的间距,用0的话就是以0的间距叠加在一起。
这种“多种插入块”其在正常情况下不能被分解。
但若是用普通的方法构建的多重块,你可以删除掉,然后用insert再插入它原来引用的块即可。
不过,若它原来引用的块是匿名块(即名称前带*的块,只能用程序构建),就不是那么简单分解了(这是,你就需要程序(或者说插件)来还原。
你的vlx程序就是一个插件。
也就是我上面说的编程实现。
若不会编程,也没有插件,就可以用我说的第一种办法解决。
至于为什么能这样,你分别翻翻cad14和cad2002以上版本的帮助文件就知道了)。
对稍有编程常识的用户来说,ACAD命令不能解决,很自然就会去查这个对象的修改特性,可用命令MO或用ctrl+1打开修改特性,在修改特性窗口可以修改行列的叠加成数及行列间距等。
也就是它的数据列表,原形毕露了尾巴露出来了,对付的办法也就有了。
编个小程序,对付它不费吹灰之力。
查看对象的特性,普通图块与多重插入块差别在哪不是一目了然了吗
2、
(1)命令行:
minsert输入块名或[?
]:
输入名称(输入你要插入的多重块名称,就是图纸的名称,输完回车,系统会自动根据你输入的图纸名称找到这张相同名称的图纸),
(2)这时在桌面指定一个基点后。
(3)命令行要求输入XY轴的比例因子,在这直接以默认的比例因子回车。
(4)这时要求你输入旋转角度,在桌面用光标指定好后单击鼠标,或者输入角度。
(5)回车后命令行要求输入阵列叠加行数与列数,在这里输入的叠加成数越多,以后分解的时候分解的次数就越多次。
(6)回车后命令行要求输入行间距和列间距在这里输入0数,行间距与列间距数字可以为0或1,如果输入2的话就以间距2排列。
(7)输入?
表示列出图形中当前定义的块,或输入~表示显示“选择图形文件”对话框。
注意在插入过程中,不能象使用INSERT命令那样在块名前面使用星号来分解块对象。
指定插入点或[比例(S)/X/Y/Z/旋转(R)/预览比例(PS)/PX/PY/PZ/预览旋转(PR)]:
指定点或输入选项,在指定插入点位置之前,插入点处的选项将预置块的比例和旋转角。
当使用1和0之外的比例因子和旋转角来拖动块时,预置非常有用。
如果输入下列选项之一,通过为比例选项指定距离或为旋转角指定角度以响应提示。
不能分解使用MINSERT命令插入的块。
❀❀❀多重块的分解,多个方法❀❀❀
方法一:
点击这个多重引用,看它的名字,然后再用minsert命令,插入这个名字,只不过都按默认的行数(1行)列数一直回车。
这样插入的这个块就可以炸开了。
方法二:
双击这个块,出现参照编辑对话框,点确定,出现参照编辑工具条;用explode炸开;然后点击参照编辑工具条从工作集删除对象,选中所有图形,回车;再点击参照编辑工具条上的放弃对参照的修改。
此时再用explode就可以炸开了。
方法三:
用天正软件打开多重插入块图纸,用天正下的“图纸保护”菜单,把多重块再加密下(在加密中不要设密码,直接回车确定),在使用天正图纸保护命令功能,把不能编辑的多重插图做一次保护,加密好后(不用加密码),可以使用天正分解对象功能+cad分解功能一步步的对图形进行了,直到把图纸分解好后。
具体介绍下步骤:
(1)用天正打开加密的多重块图纸,选择图纸进行分解,显示为一个多重块不能分解:
(2)用天正只带的功能“图纸保护”命令,把多重块图纸加密下,(记住不要设密码,直接确定就好)
方法四:
1、在任何版本中打开图件(只要能打的开就行)2、选中图,打开属性对话框,将行和列均改为1。
3、另存为R14以下(包括R14)版本格式。
4、打开R14,打开刚才另存的图,保存。
(记住,这步尤其重要,必须是R14不能是cad2002及以上版本)好了,你再用任何版本的cad打开看看。
另外一种方法就是编程,直接炸开即可。
方法五:
1、打开原文件后,输出为*.wmf文件,2、新建空*.DWG文件,插入*.wmf文件,3、输入另外一个炸开命令:
xplode回车4、选图层(TA),大功告成。
可惜的是文字都炸开了,填充也炸了,图层只有一个,而且文件比较大。
附件为wmf文件
方法六:
输入“CYN-”,将多重插入块转换为普通快,然后可以一步一步的炸开编辑!
方法七:
把以下内容保存为lsp文件(如exm.lsp),加载后运行exm既可把“多重插入块”转换为“普通块”,然后既可用“explode”分解。
加载后运行lockb可把“普通块”转换为“多重插入块”
;;-------------------------------------------------------------
;;转换“多重插入块”为“普通块”。
(DEFUNC:
exm()
(setvar"cmdecho"0)
(SETQSTM(car(ENTSEL"\n点取多重块")))
(whilestm
(setqe(entgetstm))
(setqstlx(cdr(assoc0e)))
(if(=stlx"INSERT")
(PROGN
(setqr_zm70(assoc70e))
(setqc_zm71(assoc71e))
(setqr_dist_zm44(assoc44e))
(setqc_dist_zm45(assoc45e))
(setqe(subst(cons440)r_dist_zm44e))
(setqe(subst(cons450)c_dist_zm45e))
(setqe(subst(cons700)r_zm70e))
(setqe(subst(cons710)c_zm71e))
(setqe(subst(list100"AcDbBlockReference")(list100"AcDbMInsertBlock")e))
(entmakee)
(entdelstm)
))
(SETQSTM(car(ENTSEL"\n点取下一多重块")))
)
(setvar"cmdecho"1)
)
方法八:
有两个好工具,可以轻松炸开。
一个是AutoCAD快速加载AutoLISP文件:
wjjm;另一个cad加密插件,请大家使用。
具体方法:
AutoCAD快速加载AutoLISP文件wjjm的使用:
用cad打开需要炸开的文件,将wjjm直接拖入cad窗口,命令行输入wjmm,回车后按提示操作即可。
操作步骤:
①于CAD中,选择:
“工具”菜单→“加载应用程序”选项。
②于对话框中选择文件“wjjm”,进行应用程序加载。
③于CAD命令行中,输入“wjjm”命令,然后选择需要保护的图块,随便点击即可取消保护。
方法四:
(1)、先在图层管理器里将锁定图层打开;
(2)、选中该“多重插入块”,在其属性里将行、列均改为“1";
(3)、将下段保存为"exm.lsp"
转换“多重插入块”为“普通块”。
(DEFUNC:
exm()
(setvar"cmdecho"0)
(SETQSTM(car(ENTSEL"\n点取多重块")))
(whilestm
(setqe(entgetstm))
(setqstlx(cdr(assoc0e)))
(if(=stlx"INSERT")
(PROGN
(setqr_zm70(assoc70e))
(setqc_zm71(assoc71e))
(setqr_dist_zm44(assoc44e))
(setqc_dist_zm45(assoc45e))
(setqe(subst(cons440)r_dist_zm44e))
(setqe(subst(cons450)c_dist_zm45e))
(setqe(subst(cons700)r_zm70e))
(setqe(subst(cons710)c_zm71e))
(setqe(subst(list100"AcDbBlockReference")(list100"AcDbMInsertBlock")e))
(entmakee)
(entdelstm)
))
(SETQSTM(car(ENTSEL"\n点取下一多重块")))
)
(setvar"cmdecho"1)
)
;;--------------------------------------------------------------------
(4)、在打开了含有多重插入块的图形文件里加载“exm.lsp”,运行“exm”根据提示选中多重插入块;
(5)、运行“explode”就可以将多重插入块分解,修改了。
(6)、你试试用(audit)这个指令
先用“audit”回车
Command:
audit
之后“Y”回车
Fixanyerrorsdetected?
[Yes/No]
Y无名块便会自动改名
Invalidblockname""found.
之后便可以分解
有的CAD图形由于加了密,整张图纸无法分解,这时候我们就不能对里面的构件进行转化,如果你用分解命令命令行会提示找到1个,1个是多重插入引用,此时是无法分解的。
这时候可能是由于CAD加密造成的,我们可以用CAD的UNLOCKDWG命令对图纸进行解密,解密后的图纸就能用分解等相关命令进行操作了。
注:
该命令需要加载插件lockdwg.VLX支持,如有需要本人可以在XX知道中简答或传邮件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多重 插入 制作 分解