您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 多重插入块的制作-分解。
:)制作·加密·解密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打开修改特性,在修改特性窗口可以修改行列的叠加成数及行列间距等。也就是它的数据列表,原形毕露了尾巴露出来了,对付的办法也就有了。编个小程序,对付它不费吹灰之力。查看对象的特性,普通图块与多重插入块差别在哪不是一目了然了吗(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()(setvarcmdecho0)(SETQSTM(car(ENTSEL\n点取多重块)))(whilestm(setqe(entgetstm))(setqstlx(cdr(assoc0e)))(if(=stlxINSERT)(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(list100AcDbBlockReference)(list100AcDbMInsertBlock)e))(entmakee)(entdelstm)))(SETQSTM(car(ENTSEL\n点取下一多重块))))(setvarcmdecho1))方法八:有两个好工具,可以轻松炸开。一个是AutoCAD快速加载AutoLISP文件:wjjm;另一个cad加密插件,请大家使用。具体方法:AutoCAD快速加载AutoLISP文件wjjm的使用:用cad打开需要炸开的文件,将wjjm直接拖入cad窗口,命令行输入wjmm,回车后按提示操作即可。操作步骤:①于CAD中,选择:“工具”菜单→“加载应用程序”选项。②于对话框中选择文件“wjjm”,进行应用程序加载。③于CAD命令行中,输入“wjjm”命令,然后选择需要保护的图块,随便点击即可取消保护。方法四:(1)、先在图层管理器里将锁定图层打开;(2)、选中该“多重插入块”,在其属性里将行、列均改为“1;(3)、将下段保存为exm.lsp转换“多重插入块”为“普通块”。(DEFUNC:exm()(setvarcmdecho0)(SETQSTM(car(ENTSEL\n点取多重块)))(whilestm(setqe(entgetstm))(setqstlx(cdr(assoc0e)))(if(=stlxINSERT)(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(list100AcDbBlockReference)(list100AcDbMInsertBlock)e))(entmakee)(entdelstm)))(SETQSTM(car(ENTSEL\n点取下一多重块))))(setvarcmdecho1));;--------------------------------------------------------------------(4)、在打开了含有多重插入块的图形文件里加载“exm.lsp”,运行“exm”根据提示选中多重插入块;(5)、运行“explode”就可以将多重插入块分解,修改了。(6)、你试试用(audit)这个指令先用“audit”回车Command:audit之后“Y”回车Fixanyerrorsdetected?[Yes/No]N:Y无名块便会自动改名Invalidblocknamefound.ChangedtoAUDIT_I_041229091205-1.之后便可以分解有的CAD图形由于加了密,整张图纸无法分解,这时候我们就不能对里面的构件进行转化,如果你用分解命令命令行会提示找到1个,1个是多重插入引用,此时是无法分解的。这时候可能是由于CAD加密造成的,我们可以用CAD的UNLOCKDWG命令对图纸进行解密,解密后的图纸就能用分解等相关命令进行操作了。注:该命令需要加载插件lockdwg.VLX支持,如有需要本人可以在百度知道中简答或传邮件。
本文标题:多重插入块的制作-分解。
链接地址:https://www.777doc.com/doc-7978212 .html