解决多重插入块无法分解的问题.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解决多重插入块无法分解的问题 2012-10-22 10:27:53| 分类: HYPERLINK /blog/#m=0t=1c=fks_084064092083084066081086081095085095080069081084086070082cad相关 | 标签:HYPERLINK /blog/#m=0t=3c=cadcad HYPERLINK /blog/#m=0t=3c=多重插入块多重插入块 HYPERLINK /blog/#m=0t=3c=分解分解 |举报|字号 订阅 工作中遇到了无法分解的“多重插入块”的问题,正当准备纯手工绘制原图的时候,尝试百度,得到了以下的办法并解决了问题,幸哉。 将下面的代码复制在记事本内,将txt文件另存为unlk.lsp文件,打开这张不能修改的图纸,在命令行输入appload选择加载程序文件unlk.lsp,命令行键入unlk,再选择不能修改的图块。。。 ps,有的打散一次后,依然有些小图加密的,就可以小部分的打散,步骤同上 (defun c:unlk (/ en ent) (setq en (entsel n请选择被加密的图形:)) (if en (if (= (cdr (assoc 0 (setq ent (cdr (entget (setq en (car en))))))) INSERT ) (progn (setq ent (entmakex (list (0 . INSERT) (assoc 2 ent) (assoc 10 ent) ) ) ) (command _.explode (entlast)) (entdel en) ) ) ) (princ nOK,解密成功。) (princ) ) 什么是多重块? AUTOCAD为了省内存,省空间,提高效率,引进了块引用这一技术。你在当前图纸空间插入一个块,它并不是把这个块复制一遍,而是把这个块的一些属性描述引过来,跟C++里面的引用极像。我现在讨论的不是引用是怎么实现的,AUTOCAD最大的重头就是块,大家肯定是很了解的。 我想说的是今天我和老韩研究的一个东西,AcDbMInsertBlock -多重插入块。它其实就是对块引用派生过来的一个新的东西,比普通块引用多了几个属性。具体是多了列数,行数,列距,行距。它可以用在什么地方呢?比如你现在要插入四个一样的块,就是位置不一样,用普通的块引用的话,要引四次。这样还是很占资源的,效率不高。而如果用AcDbMInsertBlock ,你可以定义一个2列2行,多个插入点的AcDbMInsertBlock 。AUTOCAD内部并没有复制多份引用,我写程序进去把AcDbMInsertBlock 里面的每一个实体拷贝出来了,发现只有一份。当然你不能炸开AcDbMInsertBlock ,如果可以炸开你就可以发现我说的肯定是对的。 多重插入块还有一个很有趣的是,它可以用来做加密,当然很容易破解掉的。大家都知道,无名块是不能够编辑的,所以可以用下面的步骤就可以生成一个只能看不能改的图。 1)、把整个图作成一个块。 2)、把当前图纸空间的实体删除了,用Minsert把刚才那个块插入。 3)、把刚才那个块的块名改成*U。 到现在,这个图不能分解,也不能编辑了,呵呵。当然破解非常简单的,一个最直接的是把这个多重插入块转成单插入块,然后炸开。还有一个就是把块表名字改了,这样就可以编辑块了。当然,你可以作得复杂一点,进入块表记录,把里面每个实体克隆一遍。 “多重插入引用”的制作:用minsert命令,提示块名,在cad工作目录下找一张图,键入这个图名,然后到提示行数或列数时,输入2以上,但行距或列距输入0。这样一个多重插入引用制作完成,无法用explode炸开了。多重块不是重复定义块,而是在矩形阵列中插入一个块的多重引用。多重块是由命令minsert插入一个块而形成,其在正常情况下不能被分解。 但若是用普通的方法构建的多重块,可以删除掉,然后用insert再插入它原来引用的块即可。不过,若它原来引用的块是匿名块(即名称前带*的块,只能用程序构建),就不是那么简单的了。这是,你就需要程序(或者说插件)来还原。vlx程序就是一个插件。也就是我上面说的编程实现。若不会编程,也没有插件,下面的方法可以实现。

文档评论(0)

新起点 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档