| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Cloud-basierte Elektrokonstruktion |
Autor
|
Thema: 3D zu DXF Blechabwicklung API (2006 mal gelesen)
|
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 08:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich benötige dringend Hilfe. Habe nun Tagelang die API durchforscht und durchsucht und ausprobiert und komme zu keinem Ergebnis. Ich möchte einen automatisierten Prozess / Programm das mir 3D Dateien (Step) abwickelt (mit Biegungen) und in 2D DXF speichert. Über die Solidworks GUI bekomme ich das wunderbar hin. Das Aufzeichnen von Makros hat mir nicht geholfen. Ich benutze C# um die Makros zu schreiben. Ich benutze die Funktionen ExportFlatPattern() und/oder ExportToDWG2(). Bin ich hier auf dem falschen Weg? Was muss ich machen um den Prozess korrekt ablaufen zu lassen? Die Funktionen liefern entweder eine nicht abgewickelte Sicht von der Seite oder "false". Ich bitte um Hilfe oder Makro Beispiele Vielen Dank! SldWorks swApp = new SldWorks(); swApp.Visible = true;
//string filePathSource = @"C:\Users\XXXX\Desktop\SolidWorks\Test.SLDPRT"; //string filePathTarget = @"C:\Users\XXXX\Desktop\SolidWorks\Test.DXF"; // int err = 0; //int warn = 0; //ModelDoc2 swDoc = swApp.OpenDoc6(filePathSource, (int)swDocumentTypes_e.swDocPART, // (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref err, ref warn); //PartDoc swPart = (PartDoc)swDoc; //ModelView myModelView = null; //myModelView = ((ModelView)(swDoc.ActiveView)); //bool boolstatus = swDoc.Extension.SelectByID2("Importiert1", "BODYFEATURE", 0, 0, 0, false, 0, null, 0); //System.Console.WriteLine(boolstatus); //bool ret = swPart.ExportFlatPatternView(filePathTarget, (int)swExportFlatPatternViewOptions_e.swExportFlatPatternOption_RemoveBends); //System.Console.WriteLine(ret);
//System.Console.WriteLine("End-Applikation!"); //Console.ReadLine(); Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 26. Jan. 2017 10:16 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
Hallo, ExportFlatPattern() ist nur für Blechteile, in denen eine Abwicklung hinterlegt ist. Mit ExportToDWG2() bist du auf dem richtigen Weg, musst aber auf die Ausrichtung achten. Das könnte dein Knackpunkt sein. Von C# hab ich keinen Schimmer, unser Makro in VB funktioniert mit dem ExportFlatPattern-Befehl... ------------------ Viele Grüße, THSEFA "Nichts ist so hart wie das Leben! Wenn man sagt, was man denkt, muss man mehr als alles geben!..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 26. Jan. 2017 10:19 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
|
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 10:20 <-- editieren / zitieren --> Unities abgeben:
Ok danke schonmal. Kannst du mir einen einfachen Beispielcode zukommen lassen. Kann auch gerne VB sein. Ich sollte Hilfe beim allg. Ablauf haben 1. openDoc6() SLDPRT. 2. Umwandlung in Blech? wie geht das? 3. Abwicklung erzeugen? FeatureWorks Blechfeature? 4. Export to DXF? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 10:24 <-- editieren / zitieren --> Unities abgeben:
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 26. Jan. 2017 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
Zitat:
Auf dem Bild ist zu sehen was ich habe und was ich möchte... Warum bekomme ich das mit der GUI hin aber mit der API nicht...
Hallo, wenn jetzt noch zu sehen wäre, was du per GUI tust, in welcher Version du unterwegs bist ... könnte dir eher geholfen werden. Die Aussagen "bekomme ich prima hin" und "Blech - wie geht das?" bekomme ich nicht gut zusammen ... Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 10:39 <-- editieren / zitieren --> Unities abgeben:
|
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 10:57 <-- editieren / zitieren --> Unities abgeben:
In der API gefunden bei der ExportToDwg2() "You must select multi-body sheet-metal features (i.e., multiple flat-pattern features) before calling this method." Was bedeutet dies? Was muss ich hier machen? Ich bekomme immer false von der Funktion zurück
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 26. Jan. 2017 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
Wenn du es eh umwandelst in Blech (API-Funktion ist mir nicht bekannt), kannst du doch die ExportFlatPattern-Methode benutzen. Da brauchst du auch nicht extra eine Fläche selektieren. ------------------ Viele Grüße, THSEFA "Nichts ist so hart wie das Leben! Wenn man sagt, was man denkt, muss man mehr als alles geben!..." [Diese Nachricht wurde von THSEFA am 26. Jan. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 11:07 <-- editieren / zitieren --> Unities abgeben:
Ok das würde also folgenden Ablauf bedeuten: 1. opendoc6 2. creaetSheetfromsurface 3. exportflatpatter Wäre das so korrekt? Sorry ich habe nicht so richtig Ahnung was ich programatisch machen muss. Bräuchte hier wirklich detailierte Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 11:13 <-- editieren / zitieren --> Unities abgeben:
|
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 11:16 <-- editieren / zitieren --> Unities abgeben:
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 26. Jan. 2017 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
So, hab das jetzt mal nachgestellt: Um eine STP-Datei in eine DXF zu bekommen, musst du diese zuerst mal in eine Blechdatei konvertieren. Das geht schon mal nicht automatisch, weil da ua. abgefragt wird, welche Fläche die Grundfläche sein soll. Die entstandene Blechdatei kannst du dann automatisiert in eine DXF umwandeln, das ist ken Problem. Ein Makro dazu findest du ganz sicher auch hier im Forum. Also mein Vorschlag: Wandele dir deine STP-Dateien händisch in Blech um und lege sie in einem Ordner ab. Danach fährst du mit einem Makro über den Ordner und machst dir damit die DXF-Dateien. Wenn du jetzt mehrere tausend STP-Dateien hast, dann koch dir schon mal ne große Kanne Kaffee!!! ------------------ Viele Grüße, THSEFA "Nichts ist so hart wie das Leben! Wenn man sagt, was man denkt, muss man mehr als alles geben!..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 11:27 <-- editieren / zitieren --> Unities abgeben:
|
THSEFA Mitglied Konstrukteur/CAD-Admin
Beiträge: 1141 Registriert: 27.11.2002 SWX 2020 SP5.0 Premium Windows 10 Pro 64Bit Citrix VM Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz 24 GB Ram<P>Windows 10 Pro 64Bit
|
erstellt am: 26. Jan. 2017 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
|
chritte Mitglied
Beiträge: 27 Registriert: 26.01.2017
|
erstellt am: 26. Jan. 2017 11:43 <-- editieren / zitieren --> Unities abgeben:
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 26. Jan. 2017 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
Glaube ich nicht, dass es "genau so" werden soll. immerhin sieht es so aus, als wären die Teile dort schon Bleche, deshalb kann die Abwicklung auch gespeichert werden. du musst erstmal die Geometrie analysieren, welche der Flächen z.B. nicht Stirnseiten sind. dann mit einer der Flächen - oder geeigneten Kanten den Körper in Blech umwandeln, auf evtl Fehler prüfen, und dann könnte der Export klappen ... viel Spaß dabei
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 26. Jan. 2017 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für chritte
Hallo, ich denke in so einem Programm steckt sehr viel Hirnschmalz und wenn es schon an den Parametern der Funktionen scheitert wird es gleich noch schwieriger. Hast du wenigstens eine SWX API Schulung als Grundlage? In deinem Fall wird wahrscheinlich auch nicht die CreateSheetFromSurface(IModeler) die richtige Methode sein sondern eher die InsertConvertToSheetMetal2 Method (IFeatureManager). Erstere klingt für micht nämlich eher nach konvertieren einer Oberfläche und nicht nach konvertieren eines Körpers. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 26. Jan. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |