FreeCAD新增visualize函数

我们对FreeCAD代码进行的修改,为TopoShape对象新添加了一个函数: visualize.此函数能够直接对TopoShape对象进行可视化解析,它会返回面,边数据。FreeCAD中任何TopoShape对象都可以调用此函数。

函数原型:

TopoShape.visualize(tolerance)

此函数返回一个向量:

(vets, nors, indices, vetsGroup, indicesGroup, edgeVets, edgeGroup)

队列中元素说明如下:

  • vets: 此TopoShape对象中面的顶点队列
  • nors: 此TopoShape对象中面的法线队列
  • indices: 此TopoShape对象中面顶点的指引队列
  • vetsGroup: 此TopoShape对象中顶点的分组情况
  • indicesGroup: 此TopoShape对象中顶点指引的分组情况队列
  • edgeVets: 此TopoShape对象中边的顶点队列
  • edgeGroup: 此TopoShape对象中边的顶点分组情况队列

返回值示例:

  • vets: [Vector (0.0, 0.0, 0.0), Vector (0.0, 0.0, 10.0), Vector (0.0, 10.0, 0.0), Vector (0.0, 10.0, 10.0), Vector (10.0, 0.0, 0.0), Vector (10.0, 0.0, 10.0), Vector (10.0, 10.0, 0.0), Vector (10.0, 10.0, 10.0), Vector (0.0, 0.0, 0.0), Vector (10.0, 0.0, 0.0), Vector (0.0, 0.0, 10.0), Vector (10.0, 0.0, 10.0), Vector (0.0, 10.0, 0.0), Vector (10.0, 10.0, 0.0), Vector (0.0, 10.0, 10.0), Vector (10.0, 10.0, 10.0), Vector (0.0, 0.0, 0.0), Vector (0.0, 10.0, 0.0), Vector (10.0, 0.0, 0.0), Vector (10.0, 10.0, 0.0), Vector (0.0, 0.0, 10.0), Vector (0.0, 10.0, 10.0), Vector (10.0, 0.0, 10.0), Vector (10.0, 10.0, 10.0)]
  • nors: [Vector (-1.0, -0.0, 0.0), Vector (-1.0, -0.0, 0.0), Vector (-1.0, -0.0, 0.0), Vector (-1.0, -0.0, 0.0), Vector (1.0, 0.0, -0.0), Vector (1.0, 0.0, -0.0), Vector (1.0, 0.0, -0.0), Vector (1.0, 0.0, -0.0), Vector (-0.0, -1.0, -0.0), Vector (-0.0, -1.0, -0.0), Vector (-0.0, -1.0, -0.0), Vector (-0.0, -1.0, -0.0), Vector (0.0, 1.0, 0.0), Vector (0.0, 1.0, 0.0), Vector (0.0, 1.0, 0.0), Vector (0.0, 1.0, 0.0), Vector (-0.0, -0.0, -1.0), Vector (-0.0, -0.0, -1.0), Vector (-0.0, -0.0, -1.0), Vector (-0.0, -0.0, -1.0), Vector (0.0, 0.0, 1.0), Vector (0.0, 0.0, 1.0), Vector (0.0, 0.0, 1.0), Vector (0.0, 0.0, 1.0)]
  • indices: [(0, 1, 2), (2, 1, 3), (5, 4, 6), (5, 6, 7), (9, 11, 8), (8, 11, 10), (15, 13, 12), (15, 12, 14), (17, 19, 16), (16, 19, 18), (23, 21, 20), (23, 20, 22)]
  • vetsGroup: (4, 4, 4, 4, 4, 4) //这里数据说明此对象的顶点队列中第1个面是最开始的4个顶点,第2个面是接下来的4个顶点,依次类推
  • indicesGroup: (6, 6, 6, 6, 6, 6) //这里同vetsGroup,只不过它指的是indices队列
  • edgeVets: [Vector (0.0, 0.0, 0.0), Vector (0.0, 0.0, 10.0), Vector (0.0, 0.0, 0.0), Vector (0.0, 10.0, 0.0), Vector (0.0, 10.0, 0.0), Vector (0.0, 10.0, 10.0), Vector (0.0, 0.0, 10.0), Vector (0.0, 10.0, 10.0), Vector (10.0, 0.0, 0.0), Vector (10.0, 0.0, 10.0), Vector (10.0, 0.0, 0.0), Vector (10.0, 10.0, 0.0), Vector (10.0, 10.0, 0.0), Vector (10.0, 10.0, 10.0), Vector (10.0, 0.0, 10.0), Vector (10.0, 10.0, 10.0), Vector (0.0, 0.0, 0.0), Vector (10.0, 0.0, 0.0), Vector (0.0, 0.0, 10.0), Vector (10.0, 0.0, 10.0), Vector (0.0, 10.0, 0.0), Vector (10.0, 10.0, 0.0), Vector (0.0, 10.0, 10.0), Vector (10.0, 10.0, 10.0)]
  • edgeGroup: (2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) //这里同vetsGroup,只不过它指的是edgeVets队列

发表评论

邮箱地址不会被公开。 必填项已用*标注