问题标签 [csg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
42 浏览

python - 如何从 STEP 几何到 CSG

我正在尝试将在 CAD 程序中创建的实体(保存在 STEP 文件中)转换为使用简单基元构造的CSG对象。

我对不同的几何文件格式不是很熟悉,但据我所知,至少对于一些简单的实体来说应该是可以做到的,因为有关面部形状等的信息存储在 STEP 文件中。我发现了这个问题https://github.com/tpaviot/pythonocc-core/issues/470这证明您可以提取其中的一些信息。但是我不确定这是否足以实现我的目标。

例如,我想从以下 CAD 设计/STEP 文件开始: 示例输入几何

到一个 CSG 描述,它应该将几何描述为一个大圆柱体,三个较小的圆柱体作为减法。

理想情况下,我会为此目的使用 python 库,也许这个库是一个不错的选择。

但是,我担心这在理论上是不可能的,因为我在网上找不到太多信息。

作为最后的手段,我可​​以只对实体进行网格划分并使用镶嵌实体生成 CSG 描述,但我想尽可能使用简单的基元,例如盒子或圆柱体。

我很想知道这是否可行,如果可以,我很想阅读一些资源来了解这一点。谢谢!

0 投票
1 回答
8 浏览

openscad - OpenSCAD:如何避免 CSG 树中的额外分组

我想编写一个模块,可以选择将其子项组合为联合或差异。

我很惊讶这不起作用。事物的两个实例似乎都创建了立方体和圆柱体的联合。

CSG 树转储显示了问题。以下是相关摘录:

孩子们被包裹在一个组中,所以difference()实际上只有一个孩子,这恰好是被包裹孩子的隐式联合。

有没有一种方法children()可以避免这种不需​​要的分组?如果没有,模块是否有另一种方法允许调用者选择模块如何组合其子模块?