STEP-Datei in OpenCASCADE exportieren

English Deutsch

My OCCUtils library provides a super-easy way of exporting your TopoDS_Shape to a STEP AP203 file:

export_step_example.cpp
#include <occutils/STEPExport.hxx>

using namespace OCCUtils;

TopoDS_Shape myShape = /* ... */;
STEP::ExportSTEP(myShape, "myShape.step");

Falls du es manuell tun möchtest, ist es viel komplizierter, es richtig zu tun, aber hier sind die grundlegenden Schritte dazu:

export_manual.cpp
STEPControl_Writer writer;
writer.Transfer(shape, STEPControl_AsIs);
writer.Write(filename.c_str());

Der vollständige STEP::ExportSTEP-Code aus OCCUtils ist:

export_full.cpp
if (shape.IsNull () == true) {
    throw new invalid_argument("Kann null Shape nicht nach STEP exportieren");
}

STEPControl_Writer writer;
Interface_Static::SetCVal ("xstep.cascade.unit", unit.c_str());
Interface_Static::SetCVal ("write.step.unit", unit.c_str ());
Interface_Static::SetIVal ("write.step.nonmanifold", 1);
// "Transfer" = konvertieren
IFSelect_ReturnStatus transferStatus = writer.Transfer(shape, STEPControl_AsIs);

if (transferStatus != IFSelect_RetDone) {
    throw std::logic_error ("Fehler beim Übertragen des Shapes nach STEP");
}
// Übertragene Struktur in STEP-Datei schreiben
IFSelect_ReturnStatus writeStatus = writer.Write(filename.c_str());

// Vorherige Locale zurückgeben
if (writeStatus != IFSelect_RetDone)
{
    throw std::logic_error ("Fehler beim Schreiben des übertragenen Shapes in STEP-Datei");
}

Check out similar posts by category: C/C++, OpenCASCADE