开源Python几何约束求解器GeoSolver

GeoSolver 是一个用于几何约束求解的 Python 包。

几何约束问题(GCP)是几何变量上/之间的一组几何约束。问题是找到几何变量的配置以满足所有约束。几何变量是位置、方向、形状、大小等未知的对象。GCP 中的变量可以是点、线、平面、球体、圆柱体和更复杂的形状。几何约束是诸如对象之间的距离(例如一对点之间或点与平面之间)、对象之间的角度(例如两个平面之间的角度)、曲线和曲面的相切、正交性和平行性等关系。。 

几何约束问题存在于 CAD 应用、机器人、模拟和许多其他科学领域中。通用约束求解/满足方法通常不适用于几何约束问题,因此需要专门的几何约束求解(GCS)算法。 

图片

求解算法

GeoSolver Python 包提供了用于指定、分析和解决几何约束问题的类和函数。它可以用在需要解决几何约束问题的Python应用程序中。

特征:

  • 3D 几何约束问题,包括:

    • 点变量

    • 两点距离约束

    • 三点角度约束

  • 其他几何变量(直线、平面、球体等)和约束的问题可以映射到点变量的这些基本约束

  • 解决方案选择:

    • 手性约束(时钟和旋手性约束)

    • 基于原型(基于草图)的选择

  • 找到一个通用解决方案,从中可以轻松导出不同参数值(例如距离和角度)的所有特定解决方案

  • 增量算法,它可以有效地处理GCP的变化(即添加和删除约束和变量以及更改参数值)

  • 可扩展的求解框架,允许新类型的几何变量和约束

GCS工作台

几何约束求解工作台提供了一个漂亮的 GUI,用于交互式编辑、分析和求解几何约束问题。它使用 GeoSolver 包进行分析和求解,使用 pyQt 和 pyOpenGL 进行交互式 3D 图形。

该工作台当前用于调试/测试 GeoSolver 包。它也可以用作教学工具,也许有一天可能会演变成一个完整的几何设计工具包。

特征:

  • 轻松交互式编辑约束问题

  • 问题和解决方案的 3D 视图

  • 分解视图:显示问题如何分解为刚性簇树

关于 GeoSolver 中使用的几何约束求解算法的研究论文:Hilderick A. van der Meiden 和 Willem F. Bronsvoort,2009,  一种解决 3D 几何约束系统的非刚性簇重写方法,计算机辅助设计 42(1) ,第 36-49 页[doi:10.1016/j.cad.2009.03.003] 

GCS 工作台在本文中介绍:Rogier de Regt、Hilderick A. van der Meiden 和 Willem F. Bronsvoort,2008,几何约束求解工作台,计算机辅助设计和应用,第 5 卷,第 1-4 期(CAD'08 会议论文集,2008 年 6 月 23-27 日,佛罗里达州奥兰多)[ doi: 10.3722/cadaps.2008.471-482] 

卡核-致力于提供工业软件卡脖子内核的综合解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值