kozmosovia 发表于 2024-7-21 11:48:26

是时候更新一下分解多重插入图块的技术了

以前,解决多重插入图块无法分解的方法就是一句entmake。多重插入图块有块名,但不能分解,可以直接删除原来的多重插入图块,然后原地重新entmake一个普通块,直接就轻松秒杀了。在此基础上也有一些简单的程序命令如BBXX,UNLOCKDWG等。网上能搜到的相关信息都大多是利用这些程序来将多重插入图块转为可分解的图块。这个技术的门槛低得可怜,所以从来就没有特别关注过。

最近偶然看到帖子“http://bbs.mjtd.com/thread-190507-1-1.html”里面提到用网上搜了一圈的信息都无法分解,就好奇下载下来抽空研究了一下,果然,这个多重插入图块的加锁技术升级了,其加锁技术主要体现在四个方面:
1)这个块是被锁定的,无法进行操作
2)这个块的图层被清理了,没有图层
3)这个块的名字“没有”了,是真的没有了。而不是以往可以稍微唬外行和小白的“匿名”(匿名块虽然在插入图块的界面上找不到,但是在块表数据中还是可以找到)这个完全没有名字的块,是无法从块表检索其内部数据的。
4)嵌套了非常多层次:以往的加锁,往往就是做一层多重插入,加锁图里只有一个多重插入图块;新的加锁方式,是多重插入图块嵌套多重插入图块,而且嵌套多达十几层甚至几十层(帖子的案例嵌套了12层),最底层的多重插入图块,也还是再由若干多重插入图块组合而成。这样处理的结果是,图里可能会有上百个多重插入图块(帖子的案例635个),分解时完全不知道什么时候是个头。

用老黄历的经验,肯定是没法解锁新的多重插入图块的。

经过研究,这种多重插入图块的解决方案是人工+程序批量处理:
1)首先需要WBLOCK整个图形,这个过程中可以清除冗余数据和完全无用信息,瘦身DWG
2)因为WBLOCK出来的这个DWG中,图层名字和块名依然是没有的,所以需要使用REVOCER命令打开,过程中,AutoCAD会自动修复这些完全“没有名称”的错误,给他们临时指定AUDIT开头的名字,这样,这些数据就可以被访问了。
3)这时候可以尝试使用先前网上推荐的VLX,不过这些命令一次只能分解手动点取的图块的一个层次,对于深层嵌套的上百个多重插入图块,完全分解有可能需要半天甚至更久的时间来操作,估计手指都要僵硬。

基于VLDCL,我制作了针对这种新型多重插入图块的转换工具,这个工具提供两个命令:
1)CMBLK可以全自动一次性将全图的所有多重插入图块转换为普通图块,而无论这个多重插入图块被嵌套有多少层级,转换后,图内将不再有任何多重插入图块。
2)EABLK可以一次性将多级嵌套的多重插入图块(需要是修复重命名的,也就是AUDIT开头的图块)分解到最底层,不再有任何嵌套层级

解锁帖子里面案例的操作视频可以在B站观看:https://www.bilibili.com/video/BV1fw4m1r7Aw/

对于传统的只有一层嵌套的多重插入图块,CMBLK更加可以直接转换成可分解的普通图块。完全替代原来的那些VLX。

kozmosovia 发表于 2024-8-3 19:54:56

ketxu 发表于 2024-8-3 19:01
Thanks for sharing
因为大多数用户都会为连续的对象绘制Pline,所以我认为可以开发这种锁定方法,对于Pl ...

传不传你自己定。本身这个所谓的“技术”就是一张纸,20多年前的话,还算有一些门槛,现在,知道了原理和解法,有基础的人无需太久就能自己做出来。

自贡黄明儒 发表于 2024-7-21 20:19:07

e2002 发表于 2024-7-21 17:22
之前还有一个帖子也是类似的这种,基本上大多数对象都是叠加了几十层的MINSERT,实际处理中,写了一小段代 ...

加密是有好处的,能阻挡98% 的人,甚至更多。有同事用我的图,改一下发出去,结果出错了,名字还是我的,冤不冤?

自贡黄明儒 发表于 2024-7-21 20:20:56

kozmosovia 发表于 2024-7-21 19:01
毕竟有不少人卖的画图而不是设计,所以肯定不希望自己的画图成果被轻易白嫖使用,那岂不是为他人做嫁衣裳抢 ...

希望看到你的加密,让我抄一下。

kozmosovia 发表于 2024-7-22 21:30:19

用Text加密直线的图,大家可以尝试体验一下

你有种再说一遍 发表于 2024-7-21 12:07:36

本帖最后由 你有种再说一遍 于 2024-7-21 13:06 编辑

感觉可以通过遍历句柄的方式去修复,在c#里面,遍历句柄是无视嵌套的,并且可以并行访问每个id,然后通过包围盒等等相同信息,把底层图元克隆出来...删掉表面这个

迷失1786 发表于 2024-7-21 12:41:04

一个加密图没解开要那么麻烦吗?

kozmosovia 发表于 2024-7-21 13:01:21

本帖最后由 kozmosovia 于 2024-7-21 13:03 编辑

如果别人发给你的是加密图,你要改或者需要从中复制一些图形出来,就了解了。即使不改,嵌套那么多层的图,估计卡顿也会让你崩溃,捕捉一个点半分钟出不来。

e2002 发表于 2024-7-21 17:22:56

本帖最后由 e2002 于 2024-7-21 17:25 编辑

之前还有一个帖子也是类似的这种,基本上大多数对象都是叠加了几十层的MINSERT,实际处理中,写了一小段代码,也就是麻烦了一点,最后也搞定了。

只是这种所谓加密的方式,实在是没什么意思,就图上的设计内容来说,完全没有任何“技术”可言,有啥好保密的呢?不加密我都不会去用这玩意。

kozmosovia 发表于 2024-7-21 19:01:04

毕竟有不少人卖的画图而不是设计,所以肯定不希望自己的画图成果被轻易白嫖使用,那岂不是为他人做嫁衣裳抢自己饭碗?

qazxswk 发表于 2024-7-21 20:27:04

e2002 发表于 2024-7-21 17:22
之前还有一个帖子也是类似的这种,基本上大多数对象都是叠加了几十层的MINSERT,实际处理中,写了一小段代 ...

图纸加密没有意义?那你把你的图纸免费分享给大家看看嘛。

e2002 发表于 2024-7-21 21:14:36

本帖最后由 e2002 于 2024-7-22 12:29 编辑

qazxswk 发表于 2024-7-21 20:27
图纸加密没有意义?那你把你的图纸免费分享给大家看看嘛。
这么说吧,就建筑设计行业,甲方、工务署、审图单位等,问你设计单位要dwg,你能不能不给?能不能给这种“加密”的dwg?你还想不想要设计费?你还想不想有业务了?

后续施工,监理,幕墙、钢结构、机电、净化、等各家深化设计单位问你要图纸,你能不能不给?你能不能给这种“加密”的dwg?参建各方还要不要干活了?

至于图纸,只能免费给到相关单位,版权还是设计单位的。你就是拿到dwg又有什么意义呢?就是给你copy,你也没有完全一样的工程可以套用啊。给你抄,你要是有点学习能力还是能学到点东西,问题是很多人你就是白给他抄,他也没有能力变成自己的啊。
页: [1] 2 3 4
查看完整版本: 是时候更新一下分解多重插入图块的技术了