【问题标题】:How to know if a point intersects a 3D object in a SolidWorks generated CAD file?如何知道一个点是否与 SolidWorks 生成的 CAD 文件中的 3D 对象相交?
【发布时间】:2016-03-11 01:07:15
【问题描述】:

对于任何 SolidWorks 生成的 CAD 文件,例如 Part、IGES、STEP、ACIS 等,是否有一种相对简单的方法可以知道 3D 点是否与复杂的 3D 形状相交?我不需要在我的应用程序中显示该对象。

任何建议都将不胜感激。

附: 我的问题与this one 非常相似,但我没有使用Java 或PLY 文件。

【问题讨论】:

  • 在 stl 文件中(例如),您可以遍历所有面并进行一些三角剖分。 tutorial.math.lamar.edu/Classes/CalcII/EqnsOfPlanes.aspx 。希望对您有所帮助。
  • 非常感谢您的有用评论。你说“例如”,那么我可以使用其他格式吗?您认为 STL 是最简单的格式吗?
  • 我不知道其他格式,但是 .stl 可以是明文文件:en.wikipedia.org/wiki/STL_%28file_format%29。处理时间将花费大量时间
  • 哦,我明白了。我编写了一个加载 STL 文件的简单代码。正如您所说,格式非常清晰,但是确定一个点是否在形状内可能会非常耗时,尤其是应该对大量点重复该过程。
  • 您检查过 SolidWorks API 吗?相交是指该点位于边、曲面、顶点或 3D 点上还是在 3D 形状内?

标签: c# c++ vb.net cad solidworks


【解决方案1】:

最简单的方法是使用connect to solidworks 实例并从他们的API 中使用RayIntersections method。如果交叉点的数量是奇数,则向任何方向发射光线 - 您的点位于身体内。

【讨论】:

  • 我累了用它,那个 api 正在崩溃,你能不能给出示例代码,比如如何使用它
  • 这将花费比我愿意承诺更多的时间。但是,如果您分享您的代码并告诉我它在哪里以及如何崩溃,我可能会提供帮助。
  • 由您决定。创建一个新的 SO 问题并在此处粘贴链接。或者将代码添加到 pastebin/github 并在此处粘贴链接。不要忘记提及您遇到了什么异常以及发生在哪一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 2010-09-07
  • 2018-09-03
  • 1970-01-01
相关资源
最近更新 更多