gaics 发表于 2020-4-17 10:28:43

批量生成面域并按包含关系分别求差集

本帖最后由 gaics 于 2020-4-17 11:47 编辑

目标:将若干图元(包括面域、直线、多段线、弧线等,只要能够生成面域)批量生成面域,并按照各个对象的包含关系分别求差集。

开始没有好的思路,前后写了4版代码。经对100组对象测试,四版代码的运行时间分别约为55秒、45秒、40秒和“1秒”,最后一版的效率简直是天差地别!












xujinhua 发表于 2021-4-2 21:06:48

厉害了,谢谢你!

gaics 发表于 2021-4-5 10:55:57

呼呼se 发表于 2021-4-3 11:37
你好   我用生成面积并差集为什么其他图形会消失   能处理吗???

利用的最小包围框,框内图形会被差集。特殊形状的图形可能会存在这个问题。建议把不相干的图形挪开。

zwwen 发表于 2020-5-9 12:59:23

有的时候会出错,例如:百分号%,如果圆圈在包围斜线的框里,圆圈就会被删除。
(if (setq ssb (ssget "_w" (car pta) (cadr pta)))
(command "subtract" a "" ssb "")
有没有办法优化?

bai2000 发表于 2020-4-17 11:32:35

加吧油,能把差集的截面特征提出了更好

gaics 发表于 2020-4-17 11:45:30

bai2000 发表于 2020-4-17 11:32
加吧油,能把差集的截面特征提出了更好

可以的,已经实现了。只是还没有跟速度最快这版整合

bai2000 发表于 2020-4-17 11:55:29

本帖最后由 bai2000 于 2020-4-17 11:57 编辑

列个表更好

gaics 发表于 2020-4-17 13:13:16

bai2000 发表于 2020-4-17 11:55
列个表更好

没弄那么复杂,只列出几个主要的参数

LIULISHENG 发表于 2020-4-18 15:36:08

路过支持一下

413248189 发表于 2020-5-8 10:16:53

有难度,新手来学习了

413248189 发表于 2020-5-8 19:52:11

新手来学习咯

gaics 发表于 2020-5-22 09:02:52

zwwen 发表于 2020-5-9 12:59
有的时候会出错,例如:百分号%,如果圆圈在包围斜线的框里,圆圈就会被删除。
(if (setq ssb (ssget "_w" ...

确实有这个问题,暂时没想到好办法解决
页: [1] 2 3 4
查看完整版本: 批量生成面域并按包含关系分别求差集