Open Cascade Bibliothek um .step Dateien zu lesen



  • @pellaeon sagte in Open Cascade Bibliothek um .step Dateien zu lesen:

    Aber OpenCASCADE erst einmal zum Laufen zu bringen ist nicht unbedingt der einfachste Einstieg^^

    OpenCASCADE runterladen unter DOWNLOAD OPEN CASCADE TECHNOLOGY 7.3.0: opencascade-7.3.0-vc14-64.exe (237 061 168 bytes)

    Installieren mit Standardeinstellungen.

    In den Visual Studio 2017 Projekteinstellungen

    C:\OpenCASCADE-7.3.0-vc14-64\opencascade-7.3.0\inc zu den Include-Dirs hinzufügen,
    C:\OpenCASCADE-7.3.0-vc14-64\opencascade-7.3.0\win64\vc14\lib zu den Lib-Dirs,

    in Th69's Beispiel #include "STEPControl_Reader.hxx" gegen #include <STEPControl_Reader.hxx> tauschen,

    gegen TKernel.lib, TKXSBase.lib und TKSTEP.lib linken, kompilieren und sich freuen?



  • @Swordfish
    Danke habe ich so probiert. Wenn ich mit der x86-Voreinstellung debug, bekomme ich den Error LNK2019 und für die drei gelinkten libs jeweils die Warnung LNK4272 --> library machine type 'x64' conflicts with target machine type 'x86'

    mit x64 Debug findet er den STEPControl_Reader.hxx nicht. Zuvor mit x86 hingegen schon.

    Weißt du was da los ist? Vielen Dank



  • @simpie sagte in Open Cascade Bibliothek um .step Dateien zu lesen:

    Error LNK2019 und für die drei gelinkten libs jeweils die Warnung LNK4272 --> library machine type 'x64' conflicts with target machine type 'x86'

    x86 Binaries sind bei diesem Installer nicht dabei. Musst Du wohl selbst bauen, wenn Du sie wirklich brauchst.

    @simpie sagte in Open Cascade Bibliothek um .step Dateien zu lesen:

    mit x64 Debug findet er den STEPControl_Reader.hxx nicht. Zuvor mit x86 hingegen schon.

    Die Einstellungen für Include-Dirs und Lib-Dirs gelten pro Konfiguration. Du hast sie offenbar für x64 Release und Debug nicht eigetragen.



  • @Swordfish
    ich habe die Einstellungen für x64 durchgeführt, die Konsole öffnet und es scheint eigentlich zu funktiornieren, dann kommt aber direkt eine Windows-Fehlermeldung
    --> Das Programm kann nicht gestartet werden, da TKSTEP.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben.

    Ich habe OpenCascade neu runtergeladen --> gleiche Fehlermeldung
    Und aus der Google Suche werde ich auch nicht wirklich schlau 😞



  • 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