0

继续STEP 文件的实体 UpdateOrientedBoundingBox

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

4

1 回答 1

0

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

当您进行装配时,所有零件要么手动定位,要么使用配合定位(99% 的时间)。这个过程几乎会一直旋转和平移零件。

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

话虽如此,如果您遍历视口中的所有实体并将它们中的每一个平移到 Z 中,它们将全部朝同一个方向移动。

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

最后,您需要使用组件来获取组件中每个零件的矩阵,并制作某种与PartNameto关联的文件,Matrix因此您应该拥有每个零件。

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

在获取真实矩阵的过程中,逐步添加此部分,使其更易于阅读:

  1. 打开Solidworks
  2. 打开您感兴趣的程序集(whatever.sldasm)
  3. 单击您使用 API 创建的按钮或菜单
  4. 取出组件的一部分并打开它(即part1.sldprt)
  5. 导出Step为 part1.step
  6. 关闭零件文件并返回仍然打开的装配文件
  7. 获取 part1.sldprt 的矩阵并将其保存到文本文件中,以便以后阅读
  8. 重复步骤 4 到 7,直到完成所有部分
  9. 在 eyeshot 中打开每个部分Step文件并通过文本文件中的矩阵转换块。
  10. 全部完成
于 2018-07-03T11:53:55.283 回答