使用Open Cascade读取步骤文件

时间:2018-07-04 07:43:21

标签: c++ readfile cad step opencascade

我需要使用C ++阅读简单的步骤文件(车削零件)。因此,我尝试使用Open Cascade。我已经可以打开步骤文件并读取文件中的形状数量。现在,我需要获取几何数据(长度,宽度,直径..),但是尽管阅读了所有文档,但我不知道它是如何工作的。 有没有已经使用Open Cascade并可以帮助我解决问题的人?我会很高兴的,谢谢!!

那是我的代码

<script>
  fbq('trackCustom', 'Passenger', {
    value:{{DataLayer Price}},
    currency: 'USD'
      });
</script>

This is our DataLayer code:

'[
  {
    "gtm.start": XXXXXXXXXXX,
    "event": "gtm.js",
    "gtm.uniqueEventId": 0
  },
  {
    "gtm.start": XXXXXXXXXXX,
    "event": "gtm.js",
    "gtm.uniqueEventId": 6
  },
  {
    "event": "checkout",
    "ecommerce":     {
      "currencyCode": "USD",
      "checkout":       {
        "products":         [
          {
            "name": "XXXXXX",
            "id": "84",
            "price": "55",
            "category": "XXXXXXX",
            "quantity": "X"
          }
        ]
      }
    },
    "gtm.uniqueEventId": 7
  },
  {
    "event": "gtm.dom",
    "gtm.uniqueEventId": 11
  },
  {
    "event": "gtm.load",
    "gtm.uniqueEventId": 14
  }
]'

2 个答案:

答案 0 :(得分:2)

检查FreeCad源代码。他们使用OpenCascade,并且可以导入step和iges。它应该让您开始。 https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Part/App/ImportStep.cpp中的功能ImportStepParts(...)是您要搜索的内容。

答案 1 :(得分:0)

使用TopExpExplorer类遍历形状的对象(顶点,边缘,面..)。您可以在此tutorial中找到一个迭代示例。

使用GProp_GProps class获取形状的属性。示例:

GProp_GProps propertiesSystemFace;
BRepGProp::VolumeProperties(shape, propertiesSystemFace);
double shapeVolume = propertiesSystemFace.Mass();
gp_Pnt centerOfMass = propertiesSystemFace.CentreOfMass();

还可以根据边缘类型将TopoDS_Edge转换为curve对象以获取其他一些参数:

BRepAdaptor_Curve adaptCrv = BRepAdaptor_Curve(edge);