Automatisches Umwandeln von vielen Alibre - in stp- Daten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Stefan B
User
Beiträge: 3
Registriert: Donnerstag 3. Oktober 2024, 13:48

Hallo liebe Gemeinde,

kurz zum Background> Ich bin Ingenieur und arbeite seit kurzem in einer neuen Firma, welche derzeit ein neues Konstruktionsprogramm etabliert.
Leider kann diese Software (Onshape) keine Alibre daten umsetzen, weshalb ich vor der großen Aufgabe stehe, mehrere Hundert alte Konstruktionsdaten umwandeln zu müssen.
Tatsächlich kann Alibre Python Script verarbeiten.
Ich kann aber leider nur seeehr begrenzt programmieren. Also eigentlich gar nicht.

Daher die Bitte an euch, ob mir BITTE BITTE jemand dabei helfen möchte, einen Code zu schreiben, der das Umsetzen automatisch macht.

Strukturell habe ich mir das ungefähr so gedacht:
Alle Alibre Daten befinden sich in einem Ordner und könnten nacheinander abgearbeitet werden.
Dazu müsste das Script also in den Ordner "1" schauen, die erste Datei in Alibre öffnen, diese dann als .step in Ordner "2" exportieren.
Dann die nächste, die nächste... etc...

Man könnte auch in den selben Ordner exportieren. Da sich das Format ändert, muss die Datei auch nicht umbenannt werden oder ähnliches. Im Anschluss zu sortieren, ist ja kein Problem..

Also kurzform: Alibre Datei öffnen, in selben Pfad als step exportieren > nächste> nächste..

Allerdings stelle ich mir die Frage, ob es möglich ist, das so zu scripten, dass das Script bei der letzten Datei auch aufhört :?:


Und das selbe bräuchte ich dann auch für das Alibre Zeichnungsformat. diese müssten dann als .dwg exportiert werden.


Ich würde mich riesig freuen, wenn da jemand Bock drauf hätte!!!!

Viele Grüße!!!
Benutzeravatar
Dennis89
User
Beiträge: 1551
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

gibt es denn ein API für das Alibre? Oder kann man nur in dem Programm Skripte bezogen auf ein Modell schreiben?
SolidWorks kann man zum Beispiel über eine Programmierschnittstelle ansprechen, dafür habe ich so etwas ähnliches schon mal gemacht.

Wenn du Hilfe benötigst, dann geht das am besten, wenn du konkrete Fragen hast. Bock zu helfen haben hier im Allgemeinen einige.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@Stefan B: Weil es so wirkt, als würde es hier ein Verständnisproblem geben. Python ist eine allgemeine Programmiersprache. Manche Programme verwenden binden sie auch als Scriptsprache ein. Das heißt aber noch nicht, dass jemand, der die Sprache kann, deine Frshe beantworten kann.
Nur ich deutsch kann, kann ich trotzdem keine Abhandlung über das Werk von Mozard schreiben, weil ich das nicht kenne.

Du musst also zuerst herausfinden, ob es eine Beschreibung von der Umgebung gibt.
Benutzeravatar
grubenfox
User
Beiträge: 612
Registriert: Freitag 2. Dezember 2022, 15:49

Offenbar kann Alibre Dateien in verschiedenen Formaten importieren. Was mir jetzt aber bei einer kurzen Suche nicht klar geworden ist: welches Format nutzt ihr oder Alibre denn beim Speichern? Ist das eines der Formate die Alibre laut Web importieren kann oder ein ganz anderes? https://en.wikipedia.org/wiki/Alibre_Design

Also von welchem Format aus soll es nach stp-Dateien gehen? Und das zweite Format welches nach .dwg konvertiert werden soll, ist welches?
nezzcarth
User
Beiträge: 1762
Registriert: Samstag 16. April 2011, 12:47

Soweit ich das auf die Schnelle sehe, verwendet dieses "Alibre" wohl IronPython. Das ist ein alternativer Python-Interpreter, der dafür gedacht ist, in Software, die für Microsofts .Net geschrieben wurde, eingebettet zu werden und der auf einer Version von Python (Python 2.7) basiert, die vom regulären Python-Interpreter (CPython) nicht mehr unterstützt wird. Damit kannst du dann innerhalb von "Alibre" dessen API ansteuern und Dinge automatisieren. Ob dazu auch das Exportieren etc. gehört, musst du in der API-Dokumentation, die ich nicht gefunden habe, nachsehen. Wenn du selbst Programmierversuche damit unternehmen möchtest, musst du berücksichtigen, dass die meisten Quellen heute wohl für Python 3 sind und du ggf. eine Transferleistung erbringen musst.

Persönlich wäre mein Ansatz aber eher zu gucken, ob unter den vielen Import- und Exportformaten, die das wohl kennt, nicht irgendwas dabei ist, für das es schon Konverter gibt. Oder alternativ, ob darunter irgendwelche XML-basierten Formate sind, für die man relativ leicht (bzw. zumindest mit standardisierten Werkzeugen) selbst einen Konverter schreiben könnte (innerhalb der CAD-Welt scheinen allerdings nach meinem oberflächlichen Eindruck Binär- und ASCII-Formate zu dominieren, weshalb ich da wenig optimistisch bin). Mit einem vernünftigen Konverter, der extern läuft, ist es dann im besten Fall eine Frage von einem kurzen Shell/Batch-Skript, damit größere Dateimengen umzuwandeln.
Benutzeravatar
Dennis89
User
Beiträge: 1551
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

@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")
https://www.alibre.com/de/alibre-design-api/

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.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Stefan B
User
Beiträge: 3
Registriert: Donnerstag 3. Oktober 2024, 13:48

HI! WOW erstmal Danke für euer Engagement.
Dennis hat es eigentlich schon recht gut erklärt, was es mit dem Step Format auf sich hat.

Nochmal zum Background: Ich habe die letzten 15 Jahre mit Catia gearbeitet und kenne Alibre nicht. Seit 1/2 Jahr arbeite ich mich in Onshape ein und bin jetzt an dem Punkt, dass ich eben die alten Alibre Dateien für Onshape bereitstellen muss.
Leider ist mein Kollege nicht sehr affin mit solchen Dingen. Eher so der Anwender Typ.
Ich kann zwar auch nicht coden, beschäftige mich aber wenigstens mit potentiellen Lösungen... (sorry für´s kurze Geläster)
Deshalb gibt es weder API noch sonst irgendwelche Script basierten Abläufe.

Ich kann zu der Frage, welches Phyton in dem Softwarestand vom Alibre läuft, erst am Montag genauere Angaben machen.

Das Alibre hat als Dateiformat *.ad_prt...

@nezzcarth: Programmierversuche ja und nein. Ich bin wegen der dringlichkeit, Onshape für die Produktion go life zu schalten seit 4 Monaten eigentlich 7 Tage die Woche damit beschäftigt, die Internen Abläufe so zu gestalten, dass Onshape überhaupt zum Laufen kommen kann... andere Baustelle...( Digitalisierung ist im Unternehmen noch sehr Rückständig. So nach dem Motto, man druckt ein Bild aus um was drauf u schreiben und scannt es dann wieder ein) (Mist schon wieder gelästert)
Das Thema IronPhyton habe ich auch gesehen. Ich habe aber zu wenig Erfahrung, als das ich etwas mit diese Information hätte Anfangen können. Danke für die Info.
Somit stirbt meine Hoffnung gerade...

CAD Konverter gibt es, ja. Aber wir habe keinen. Und soweit ich weis sind diese immer Kostenpflichtig. Aber ich habe auch daran schon gedacht. Nur habe ich seit Mittwoch noch keine Zeit gefunden, dem nachzugehen.

Ja schade! Aber trotzdem VIELEN DANK!!!
Ich wünsche allen ein schönes Wochenende!

#Music IS Emotion!
Stefan B
User
Beiträge: 3
Registriert: Donnerstag 3. Oktober 2024, 13:48

@Grubenfox: Danke für die Links. Da werde ich sicher rein schauen...!!
Benutzeravatar
grubenfox
User
Beiträge: 612
Registriert: Freitag 2. Dezember 2022, 15:49

Aha, mit "ad_prt convert step" kann man ja gleich will schöner suchen.... nur leider offenbar relativ erfolglos. :( Mir wurden zwar Listen mit Konvertern, die ad_prt nach step konvertieren können, angeboten. Aber die Listen enthielten hier immer nur diesen einen Eintrag: Alibre Design Professional :roll:
In wie weit sich nun die Oberfläche von Alibre irgendwie automatisieren lässt (sei es Iron Python oder C# oder VB oder was sonst noch in der API-Doku erwähnt wird)... da bin ich raus.

Wenn es nicht innerhalb von Alibre geht, vielleicht kann man was von außen machen: https://productivityschool.io/apps/macr ... rs/windows
Aber hier kann ich auch nur spekulieren...
mechanicalStore
User
Beiträge: 177
Registriert: Dienstag 29. Dezember 2009, 00:09

Hallo Stefan B,
Stefan B hat geschrieben: Freitag 4. Oktober 2024, 12:42 Leider ist mein Kollege nicht sehr affin mit solchen Dingen. Eher so der Anwender Typ.
Ich kann zwar auch nicht coden, beschäftige mich aber wenigstens mit potentiellen Lösungen... (sorry für´s kurze Geläster)
Dir ist hoffentlich klar, dass der hier mitlesen koennte. :D
Stefan B hat geschrieben: Freitag 4. Oktober 2024, 12:42 ...Ich bin wegen der dringlichkeit, Onshape für die Produktion go life zu schalten seit 4 Monaten eigentlich 7 Tage die Woche damit beschäftigt, die Internen Abläufe so zu gestalten, dass Onshape überhaupt zum Laufen kommen kann...
Dein Vorgesetzter weiss hoffentlich, dass solche Dinge Zeit brauchen und sich ein go life oft verschieben kann...
Stefan B hat geschrieben: Freitag 4. Oktober 2024, 12:42 CAD Konverter gibt es, ja. Aber wir habe keinen.
Und soweit ich weis sind diese immer Kostenpflichtig.
Wie so oft, gibt es Leute, die fuer Ihre Leistung bezahlt werden wollen ...

Grundsaetzlich ist Deinen(m) Vorgesetzten hoffentlich klar, dass ein Konverter nicht 1:1 konvertiert?! D.h. egal was Du konvertierst, dabei kommt nicht mehr heraus, als beim Transfer ueber Step/DXF (ggf. leidet die Genauigkeit nicht ganz so stark, da die Nachkommastellen nicht - wie bei Step - textuell abgeschnitten werden, wir hatten da tatsaechlich Unterschiede feststellen koennen).

D.h. dass die komplette History verloren geht, Du hast spaeter ein plumpes 3D-Modell (ist Dir sicherlich in 15 Jahren Catia oft ueber den Weg gelaufen). Ebenso eine plumpe Zeichnung in DXF/DWG, wo - je nach propritaerem System - ggf. sogar die Dimensions nur noch aus Linien bestehen... Ebenso geht natuerlich die Verlinkung 3D/2D komplett verloren.

Solange das nur der Archivierung dient, bzw. solange nichts geaendert werden muss, ist das noch ok (unter der Voraussetzung, dass die Konvertierung einwandfrei geklappt hat und durch unterschiedliche Genauigkeitsbetrachtungen der Systeme keine "Loecher" entstehen). Sobald es aber um Aenderungen/Datenpflege geht, muss gebastelt werden. Gegenueber der weiteren Pflege im alten System, braucht es hier ggf. einen beachtlich hoeheren Zeitaufwand. Zum Aufwand im 3D kommt hinzu, dass die Zeichnungen komplett neu erstellt werden muessen. Dein Vorgesetzter wird sich dessen hoffentlich bewusst sein.

Zur automatischen Konvertierung:

Wenn Du wirklich so wenig Zeit hast und Dich erst langwierig einarbeiten musst, waere das Einfachste, einem Azubi kurz die export/import Schritte zu zeigen und diesen dann die Konvertierungen durchfuehren zu lassen (das ist ernst gemeint, und in aehnlichen Faellen haben wir das schon so gemacht, weil es eben die guenstigste Loesung war - wobei es da nicht um Konvertierung ging). Alternativ koennte man einen cut machen, das Alte in dem alten System (mit ggf. nur noch einer Lizenz) belassen und alles Neue im neuen System).

Ansonsten, wie im Link von @nezzcarth aufgezeigt, gibt es Alibreseitig doch schonmal einen Interpreter, der Pythonartiges Scripting erlaubt (oder der ggf. einen extern installierten Interpreter via DCOM verwendet). Zwei wesentliche Zeilen darin (aus Seite 12), sind folgende:

Code: Alles auswählen

...
MyPart.Save("C:\Users\Andy\Desktop")
MyPart.ExportSTL("C:\Users\Andy\Desktop\My Part.stl")
...
Das zeigt, dass eine automatisierte Konvertierung doch sehr einfach ist. Du grepst durch das Verzeichnis (pathlib) und iterierst ueber die Dateien. Analog zu den beiden Codezeilen gibt es sicherlich auch eine .Load Option, sowie eine .ExportStep (oder .ExportSTP) Option, sowie auch die DXF-Dinge.

Ob es das fuer OnShape in aehnlicher Form gibt, weiss ich nicht, aber die meisten CAD-Programme haben ja irgendeine Scripting Moeglichkeit. Wenn nicht, hast Du auf jeden Fall schon mal den Export auf der einen Seite damit erschlagen.
Antworten