使STEP文件的所有实体的协调系统up-z

时间:2018-06-29 00:44:50

标签: solidworks eyeshot

继续STEP File's entities UpdateOrientedBoundingBox

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

1 个答案:

答案 0 :(得分:0)

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

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

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

这就是说,如果您遍历视口中的所有实体并将它们平移为Z,则它们都将沿相同方向移动。

为了保留最终矩阵,该原理非常简单,就像我已经做过的一样,但是您需要了解绕Solidworks API的方式。您需要创建一个Solidworks Addin并向Solidworks添加一个按钮或菜单。然后,一旦编写了代码,就可以将每个零件分别导出到步骤中,这将保持它们原来的旋转,然后再修改为装配体。如果您有10个零件,除非装配中多次使用相同的零件,否则最终应有10个Step文件,那么您的零件将更少。

最后,您需要使用装配体来获取装配体中每个零件的矩阵,并创建一个PartNameMatrix关联的某种文件,因此您应该拥有每个零件。 / p>

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

为获得真实矩阵的过程而逐步添加易于理解的部分:

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