各种高性能CAD/EDA 算法

时间:2022-09-04 00:10:53

各种高性能EDA/CAD相关算法

1. EDA lrc/drc 各种相关算法,如LRC的几何极速验证算法, 等高线算法(Marching squares),  Hierarchy优化...  

2. No-fit Polygon 算法。算法稳定,目前测试例子中未发现求解失败的情形。  20+20的多边形顶点数的nfp, 每秒不低于 5000个。

3. 样条分段拟合算法(三次Bezier)。 1000万顶点数耗时在 5~10s

4.  offset算法,内外offset, 去自交。  1000万顶点数 耗时在 3~8s ,比boost至少快一个数量级。

5. 各种曲线bezier/b-splines等求交/插值/拟合。多边形距离,巨量多边形重叠/碰撞快速检测,......

6. 为特殊应用定制算法;

7. 根据参考资料文献,实现高性能算法(几何/图形/数值计算等算法).

8. 实现语言主要是c++/c. 

9. 其它概述. 使用过或者正在使用的语言/工具: python3; QT,vs6~2015, c++11; 各种cad文件格式比如dxf解析;绘图仪输入文件解析;......

 


以下测试包括Offset/fitting/NFP/排料


Offset

顶点数 8099个,耗时 4.5ms

各种高性能CAD/EDA 算法

接力offset

各种高性能CAD/EDA 算法


fitting

顶点数8099个,耗时19.61ms, 分成112段bezier曲线

各种高性能CAD/EDA 算法


NFP测试数据


以下是来自  ESICUP (http://paginas.fe.up.pt/~esicup)的样本数据测试结果比较。 本人测试平台:  CPU G1840  2.8G ,windows7x64

运行时间单位:  ms

实例 多边形个数 NFP总数 Burke算法 改进移动碰撞法 本人算法
Shapes0 4 16 102 94   2
Shirts 8 64 107 93  4
Swim 10  100 1573 1328  10
trousers 17 289 / / 10
钣金测例1

52   ( 顶点总数10808个

平均顶点数207.846个)

2704 / / 3000
钣金测例2

52  (顶点总数2452

平均顶点数47.15)

2704 / / 600
           
           
           

改进移动碰撞法,出自《 改进临界多边形生成算法》 ,杨卫波,王万良.  计算机工程与应用, 2013,49(1),中图分类号:TP301.6 doi:10.3778/j.issn.1002-8331.1206-0291.   文中称测试用CPU为Pentium4 1.6G. 内存1G

shapes的nfp多边形

各种高性能CAD/EDA 算法

shirts的nfp多边形:

各种高性能CAD/EDA 算法

Swims的nfp多边形:

各种高性能CAD/EDA 算法



运用Nfp加速排料

以下排样均为固定高度与排样数量,目标是排出最小长度。


来自Padsystem安装光盘的实例,  7200 Shirt with a Yoke Pi.sty  无镜像,无旋转  86.6%

各种高性能CAD/EDA 算法

来自Padsystem安装光盘的实例,  7100 Classic Vest Lined Pi.sty  无镜像,无旋转     79.4%




各种高性能CAD/EDA 算法


对比papdsystem4 自带引擎   


各种高性能CAD/EDA 算法


    本人算法结果 85.49%

各种高性能CAD/EDA 算法


padsystem自带引擎的 78.165%.   本人算法结果  84%各种高性能CAD/EDA 算法

各种高性能CAD/EDA 算法






ESICUP的测试样本  Shirts 85.6% 无镜像,无旋转  逼近世界最好记录

各种高性能CAD/EDA 算法


      85.6%

各种高性能CAD/EDA 算法