@grubenfox Alibre kann Dateienformate anderer CAD-Programme, wie zum Beispiel SolidWorks, Inventor, Siemens NX,... importieren. Jedes dieser CAD-Programme hat für Bauteile, Baugruppen und Zeichnungen ihr "eigenes" Format. In welchem Detail die sich unterscheiden, kann ich nicht sagen, es ist aber nicht üblich, das ein CAD-Programm Dateienformate von anderen CAD-Programmen öffnen kann. Um dennoch Informationen über verschiedene Programme zu teilen, gibt es das STEP (Standard for the exchange of product model data) Format. Bei der Umwandlung gehen zwar einige Informationen verloren, aber die Koordinaten des Models bleiben erhalten. Das funktioniert für Modelle und Baugruppen. Man kann STEP-Dateien auch mit einem normalen Editor öffnen, Ausschnitt:
Code: Alles auswählen
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP214' ),
'1' );
FILE_NAME ('Dateiname.STEP',
'2024-09-20T18:53:57',
( '' ),
( '' ),
'SwSTEP 2.0',
'Erzeuger-Programmname',
'' );
FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' ));
ENDSEC;
DATA;
#1 = EDGE_CURVE ( 'NONE', #4386, #4006, #1730, .T. ) ;
#2 = CARTESIAN_POINT ( 'NONE', ( -41.33333303087209032, -0.005000000000000000104, -37.33333333321522929 ) ) ;
#3 = ORIENTED_EDGE ( 'NONE', *, *, #4365, .F. ) ;
#4 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#5 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -6.000000000000000000 ) ) ;
#6 = CARTESIAN_POINT ( 'NONE', ( 29.62216824911841329, 29.06568730914850462, 2.980546225038733787 ) ) ;
#7 = ORIENTED_EDGE ( 'NONE', *, *, #5338, .T. ) ;
#8 = CARTESIAN_POINT ( 'NONE', ( 29.48323615185453406, -29.20664286628743866, -3.000158263707780382 ) ) ;
#9 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#10 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #1865, #4183, #5806, #3029, #4147, #795, #1289, #6348, #1438, #3067, #4072, #6273, #1975, #4649, #1905, #4111, #5264, #5736, #316, #1942, #3491, #6383, #6921, #2995, #240, #2458, #831, #6852, #6313, #5697, #3643, #758 ),
.UNSPECIFIED., .F., .F.,
( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ),
( 0.009381701911828512971, 0.009967923874788035474, 0.01055414583774755798, 0.01114036780070708048, 0.01172658976366660298, 0.01231281172662612548, 0.01289903368958564799, 0.01348525565254517049, 0.01407147761550469472, 0.01465769957846421723, 0.01524392154142373973, 0.01583014350438326223, 0.01641636546734278473, 0.01700258743030230724, 0.01758880939326182974, 0.01876125331918087821 ),
.UNSPECIFIED. ) ;
#11 = VERTEX_POINT ( 'NONE', #3934 ) ;
#12 = CARTESIAN_POINT ( 'NONE', ( -42.00000000000001421, 0.000000000000000000, -37.99999999999999289 ) ) ;
#13 = ORIENTED_EDGE ( 'NONE', *, *, #5042, .T. ) ;
#14 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.8164965809277247022, 0.5773502691896278405 ) ) ;
#15 = VECTOR ( 'NONE', #4613, 1000.000000000000114 ) ;
#16 = CARTESIAN_POINT ( 'NONE', ( 31.99790105327159040, 39.06896886513696643, -0.3264247407348973007 ) ) ;
#17 = LINE ( 'NONE', #6088, #3506 ) ;
#18 = VERTEX_POINT ( 'NONE', #3387 ) ;
#19 = CARTESIAN_POINT ( 'NONE', ( 35.62895361509068692, -31.41383649451540094, -0.3932166624584982340 ) ) ;
#20 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#21 = CARTESIAN_POINT ( 'NONE', ( -13.25825214724765999, 64.16994039267922290, 0.000000000000000000 ) ) ;
#22 = CARTESIAN_POINT ( 'NONE', ( -29.88781716806018451, -28.79244954348681063, 2.904872658392881668 ) ) ;
#23 = ORIENTED_EDGE ( 'NONE', *, *, #4685, .F. ) ;
#24 = LINE ( 'NONE', #6643, #1604 ) ;
#25 = VERTEX_POINT ( 'NONE', #650 ) ;
#26 = VECTOR ( 'NONE', #2559, 1000.000000000000000 ) ;
#27 = CARTESIAN_POINT ( 'NONE', ( 33.58757210636095891, -33.58757210636107260, -31.94000000000000483 ) ) ;
#28 = CARTESIAN_POINT ( 'NONE', ( 46.56854249492343456, 56.56854249492378983, -12.00000000000000355 ) ) ;
#29 = CARTESIAN_POINT ( 'NONE', ( 34.63225442211808769, -32.50974553746911511, 2.604966328456165492 ) ) ;
#30 = CARTESIAN_POINT ( 'NONE', ( 52.49999999999999289, 0.000000000000000000, 0.000000000000000000 ) ) ;
#31 = AXIS2_PLACEMENT_3D ( 'NONE', #1555, #3141, #4234 ) ;
#32 = ORIENTED_EDGE ( 'NONE', *, *, #2631, .T. ) ;
#33 = DIRECTION ( 'NONE', ( -0.7071067811865495711, -0.7071067811865454633, -0.000000000000000000 ) ) ;
#34 = VECTOR ( 'NONE', #1168, 1000.000000000000000 ) ;
#35 = CARTESIAN_POINT ( 'NONE', ( -53.03300858899099524, 53.03300858899116577, -19.99999999999997868 ) ) ;
#36 = VERTEX_POINT ( 'NONE', #2926 ) ;
#37 = VECTOR ( 'NONE', #4126, 1000.000000000000000 ) ;
#38 = CARTESIAN_POINT ( 'NONE', ( -35.57837706128426447, 31.47110680742576960, -0.7772038714839912821 ) ) ;
Die Chance dass die Alibre-Ausgabe-Dateien von einem anderen Programm gelesen werden können um sie in STEP/DWG zu wandeln sehe ich daher relativ gering.
@nezzcarth ich habe ein API Doku gefunden (ganz unten "API-Hilfe herunterladen")
Die "API-Hilfe" ist eine *.chm - Datei, ich habe hier keine passende Anwendung um mal reinzuschauen. Allerdings steht hier auch was von C++ oder .NET. Das würde meiner Meinung nach auch Sinn machen, wenn man eine externe Anwendung für Alibre unter Windows schreiben will.
Offiziell bietet SolidWorks auch kein Python-API an, ich hatte das Glück, das jemand einen Wrapper geschrieben hatte, den ich für meine Anwendung nur leicht modifizieren musste.