Open Cascade Bibliothek um .step Dateien zu lesen



  • TKernel.dll, TKXSBase.dll und TKSTEP.dll kopierst Du aus C:\OpenCASCADE-7.3.0-vc14-64\opencascade-7.3.0\win64\vc14\bin in das Verzeichnis, in dem Deine .exe liegt.



  • Oder die Windows Path-Variable um dieses Verzeichnis erweitern.



  • Vielen Dank. Es scheint fürs erste zu funktionieren



  • Der Vollständigkeit halber: Dynamic-Link Library Search Order
    .



  • Hallo nochmal zusammen,

    laut der Doku kann ein step Datei sehr einfach geladen werden:

    2.3 Description of the process
    2.3.1 Loading the STEP file

    Before performing any other operation you have to load the file with:

    STEPControl_Reader reader;
    IFSelect_ReturnStatus stat = reader.ReadFile(;filename.stp;);
    

    Loading the file only memorizes the data, it does not translate it.
    .....
    --> https://www.opencascade.com/doc/occt-7.3.0/overview/html/occt_user_guides__step.html

    Ich weiß leider nicht wo ich den Pfad zu meiner step-Datei angebe.
    Kann mir eventuell jemand weiterhelfen, vielen Dank!



  • Statt nur den Dateinamen anzugeben, kannst du natürlich dort auch den gesamten Pfad eintragen:

    reader.ReadFile("path\\filename.stp");
    


  • ich komme leider immer noch nur schleppend vorwärts, obwohl ich nur eine einfache step Datei lesen möchte.
    Meine Step Datei besteht aus einem Bemassten Rechteck. Für NbRoots bekomme ich den Wert 1. Sobald ich eine weitere Extrusion im CAD Programm hinzufüge, bekomme ich den Wert 2. Soweit so gut. Ich verstehe leider noch überaupt nicht wie ich bspw. gezielt auf die Bemaßungen zugreifen kann und wie ich mir die Ergebnisse im TopoDS_Shape result anzeigen lassen kann. Ich wäre sehr dankbar wenn mir jemand weiterhelfen könnte!

    #include <iostream>
    #include <STEPControl_Reader.hxx>
    #include <string>
    
    using namespace std;
    
    
    int main() {
    
    	STEPControl_Reader reader;
    	IFSelect_ReturnStatus stat = reader.ReadFile("C:\\Users\\Kelevradesktop.Kelevra-desktop\\Desktop\\Studienarbeit\\steptest.step");
    	IFSelect_PrintCount mode = IFSelect_ListByItem;
    	reader.PrintCheckLoad(false, mode);
    
    	Standard_Integer NbRoots = reader.NbRootsForTransfer();                      //Transfer whole file
    	Standard_Integer num = reader.TransferRoots();
    
    	Standard_Integer NbTrans = reader.TransferRoots();
    	TopoDS_Shape result = reader.OneShape();
    	TopoDS_Shape shape = reader.Shape();
    
    
    	cout << NbRoots << endl;
    	cout << NbTrans << endl;
    	cout << num << endl;
    
    	system("pause");
    
    	return 0;
    }
    


  • @Th69 kannst du mir vielleicht ein bisschen weiterhelfen? Die Zeit schreitet voran und ich komme einfach nicht weiter mit OpenCascade und wie ich es anwenden muss um meine Geometriedaten aus der step Datei auslesen zu können 😞
    Vielen Dank schonmal !
    Beste Grüße simpie



  • Sorry, aber mit Open Cascade kenne ich mich nicht aus - ich habe dir nur geholfen, um diese Bibliothek bei dir in deinem Projekt zu integrieren und zum Laufen zu kriegen.

    Kommst du denn mit der Doku nicht weiter, z.B. TopoDS_Shape Class Reference?

    Ansonsten frag doch in den Open Cascade Forums nach.



  • Danke für deine Antwort. Im OpenCascade Forum bin ich auch unterwegs, dieses wird allerdings kaum genutzt.
    Mit der Doku komme ich leider nur bedingt zurecht.


Anmelden zum Antworten