使STEP文件所有实体的坐标系up-z

Make the coordination system of all entities of the STEP file up-z

继续STEP File's entities UpdateOrientedBoundingBox

在 solidworks 中,他们从许多零件构建装配体。 每个部分都有自己的协调系统。 当他们将所有零件组装成一个组件时,每个零件都可以旋转。 那么,并非所有实体都是 Up-z,也许有些实体是 Up-y,有些实体是 Up-x。 当我导出到一个步骤(AP214)时,这些属性被保留。 我将步骤加载到我的视口,我想让所有实体都是 Up-z。 然后,我称 translate(0,0,1000) 实体将向上移动,而不是在我看来向左移动。

Solidworks 中没有 UpZ 或 UpX 这样的东西。一切都很好。

当您制作装配体时,所有零件要么手动定位,要么使用配合定位(99% 的时间)。这个过程几乎总是会旋转和平移部分。

当您导出到 StepIges(Eyeshot 可以使用的 2 种主要导出格式)时,在这些文件中生成的所有几何图形都不包含原始矩阵。如果您查看零件的顶点,您会看到 Mesh 的顶点是相对于世界而不是内部矩阵定位的。

话虽这么说,如果您遍历视口中的所有实体并在 Z 中平移它们中的每一个,它们都将朝相同的方向移动。

为了保持最终矩阵,原理很简单,因为我已经做到了,但是你需要了解 Solidworks API 的方法。您需要创建一个 Solidworks Addin 并向 Solidworks 添加一个按钮或菜单。然后,一旦您编写了一些代码以将每个零件单独导出到步骤中,这将在修改到装配体之前保持它们的原始旋转。如果您有 10 个零件,您最终应该有 10 个 Step 文件,除非同一零件在装配中多次使用,否则您的文件会更少。

最后,您需要使用程序集来获取程序集中每个零件的矩阵,并制作某种具有 PartNameMatrix 关联的文件,因此您应该拥有每个零件.

当你到达 Eyeshot 时,你所要做的就是加载正确的步骤并应用你保存在文件中的矩阵。然后,如果你想相对于它们自己的 Z 轴移动所有东西,你只需创建一个具有所需位移的 Z 向量,即:(0, 0, 1000) 并通过部分矩阵之一转换该向量,然后通过转换后的向量。最后你对每个部分重复相同的过程。

添加这部分,让获取真实矩阵的过程更容易阅读:

  1. 打开Solidworks
  2. 打开您感兴趣的程序集(whatever.sldasm)
  3. 单击您使用 API
  4. 创建的按钮或菜单
  5. 取出组件的一部分并将其打开(即part1.sldprt)
  6. 作为 part1.step
  7. 导出到 Step
  8. 关闭零件文档并return到仍打开的装配体文档
  9. 获取 part1.sldprt 的矩阵并将其保存到文本文件中以便稍后阅读
  10. 重复步骤 4 到 7,直到完成所有部分
  11. 在视野中打开每个部分Step文件并通过文本文件中的矩阵转换块。
  12. 全部完成