使用C++解析STEP/IGES/DXF文件 无 1. 实现自定义的接收类 // 收集所有的Wire,Edgeclass AuLoadDxfModelContext : public TopoShapeReaderContext{public: AuLoadDxfModelContext() { } virtual ~AuLoadDxfModelContext() { } virtual bool OnBeiginComplexSh
1. 实现自定义的接收类 // 收集所有的Wire,Edge class AuLoadDxfModelContext : public TopoShapeReaderContext { public: AuLoadDxfModelContext() { } virtual ~AuLoadDxfModelContext() { } virtual bool OnBeiginComplexShape(const TopoShape& shape) override { return true; //接续解析。如果false,则不再进一步分解复杂对象,如body,shell等 } virtual void OnWire(const TopoShape& shape) { m_Shapes.Add(shape); } virtual void OnEdge(const TopoShape& shape) { m_Shapes.Add(shape); } public: TopoShapeGroup m_Shapes; }; 2. 查找DXF读取器并解析文件 TopoShapeReader reader = readerManager.FindReader("DXF"); AuLoadDxfModelContext readerContext; if (!reader.Read(filePath, readerContext)) return false; if (readerContext.m_Shapes.Size() < 1) return false; 3. 对结果进行处理,比如显示 readerContext.m_Shapes 保存了几何对象,可以进一步进行处理。