Document number【980KGB-6898YT-769T8CB-246UT-18GG08】
怎么制作空间多重插入块的制作分解
:)制作·加密·解密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排列。
发布评论