曰微言薄论 发表于 2016-7-9 17:38:39

kozmosovia 发表于 2016-7-9 11:19 static/image/common/back.gif
那就别怕效率低,遍历块内可见图元或者炸开图块遍历

你是不知道效率有多底,历遍或炸开块,处理一个就要20多秒,要是来个几十个块,这速度连手动都赶不上。

小菜123 发表于 2016-7-9 20:18:24

对动态块没有研究,动态属性就那么几个,如果用bondingbox很难,何不读取属性得到图纸尺寸,相当于得到了bondingbox

曰微言薄论 发表于 2016-7-9 23:59:34

小菜123 发表于 2016-7-9 20:18 static/image/common/back.gif
对动态块没有研究,动态属性就那么几个,如果用bondingbox很难,何不读取属性得到图纸尺寸,相当于得到了bo ...

关键要程序具有通用性,要是读取属性值,一旦遇到不同属性名的动态块就不行了。

小菜123 发表于 2016-7-10 10:57:38

块中的Mtext不好求包围盒,其它的可以打碎后得到包围盒

自贡黄明儒 发表于 2016-7-10 14:43:36

小菜123 发表于 2016-7-10 10:57
块中的Mtext不好求包围盒,其它的可以打碎后得到包围盒

缩放_下,mtext自动变为text了。

kozmosovia 发表于 2016-7-10 16:50:01

本帖最后由 kozmosovia 于 2016-7-10 17:11 编辑

“处理一个就要20多秒,要是来个几十个块,这速度连手动都赶不上。”
---没过脑子的谬论,你有这种手速,还要程序干啥?

同时,遍历也没必要遍历全部实体,在做块时将最外围做成矩形,插入点一般选择最下角点,炸开图块后只需要选择插入点附近的矩形抽取其包围框即可。

小菜123 发表于 2016-7-10 21:20:57

初步写个框架,剩余的自行添加



曰微言薄论 发表于 2016-7-12 14:16:26

小菜123 发表于 2016-7-10 21:20 static/image/common/back.gif
初步写个框架,剩余的自行添加

根据测试,你提供的函数只能炸开我的动态块,得不到包围盒。

我想了很久,其实炸开不炸开不是根源,根源在于动态块有几个可见性布局,当选择其中一个可见性布局时,其它可见性布局虽然看不见,但是实际存在,所以我觉得唯一的方法是历遍块,并过滤掉不可见对象,最后计算可见对象的包围盒。

陨落 发表于 2016-7-12 14:36:58

炸开图块遍历非文字对象,应该不慢

曰微言薄论 发表于 2016-7-12 15:10:17

陨落 发表于 2016-7-12 14:36 static/image/common/back.gif
炸开图块遍历非文字对象,应该不慢

炸开不慢,历遍也不慢,但是慢在处理么多对象的包围盒
页: 1 [2] 3 4
查看完整版本: 怎么得到动态块的最小包围盒,谁能解决谁就是大师!!