| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
| UNITEC wird offizieller Systemintegrator von AVEVA, eine Pressemitteilung
|
Autor
|
Thema: Solid edge ST8 Alternative Baugruppen mit Excel steuern (2640 / mal gelesen)
|
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 28. Jun. 2016 17:42 <-- editieren / zitieren --> Unities abgeben:
Guten Tag zusammen, ich beschäfte mich zurzeit mit der Variantenbildung verschiedener Baugruppen. Ich möchte verschiedene Baugruppenvarianten mit einer in Excel erstellten Maske steuern. Meine Frage ist, ob es möglich ist die Auswahl Alternativer Baugruppen über Excel zu steuern. Oder auch über Excel zu steuern, welche Teile ersetzt werden sollen. Über eine Antwort würde ich mich freuen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 28. Jun. 2016 20:44 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Ich denke, dass wenn du ein Excel-Makro hast welches Teile (und auch Sub-ASM`s) in einer Baugruppe ersetzen kann, du nicht mehr unbedingt mit Alternativen Baugruppen im SE arbeiten musst. Die Teile könnten in Excel per Pfad gewählt und dann durch die API in der Baugruppe ersetzt werden, würdest du in SE zuerst die Alternative Baugruppe erstellen und dann erst wieder Teile über dein Programm austauschen wäre das ja doppelt gemoppelt. Um deine Frage zu beantworten, ja das lässt sich mit entsprechendem Programmieraufwand und einer entsprechenden Vorbereitung der Baugruppe(n) und der zu ersetzenden Teile schon realisieren! Es gibt da auch sicher verschiedene Ansätze das zu realisieren... ------------------
Nichts ist mächtiger als eine Idee, deren Zeit gekommen ist. Victor Hugo ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kmw Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4399 Registriert: 26.02.2002 Wer lesen kann, versteht was er liest, und danach handelt ist anderen gegenüber klar im Vorteil. Intel® Core i9-14900k, 64GB DDR5-RAM, nVidia GeForce RTX 4080, MS Windows 11, Solid Edge 2024 SP5, German. ECTR als PLM. M$ Surface Book, i7-6600@2.81 Ghz, 16Gb, 512 SSD, Win10 creators upd. Fairphone 4 5G mit Android 11 mit SE-Mobile Viewer ;)
|
erstellt am: 29. Jun. 2016 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Ich hab für Küchenplanung da schon diverse Lösungen gesehen, die sehr Branchenspezifisch gearbeitet haben, mit coolen Ergebnissen, eine Küchenzeile konnte damit von Quasi-Laien im CAD mehr oder weniger automatisch erzeugt werden. Leider war Solid Edge bei den aufgezählten CAD-System, die unterstützt wurden nie dabei. Ich denke das das prinzipiell aber genauso gehen könnte. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 29. Jun. 2016 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Naja, die alternative Baugruppe hat neben dem Ersetzen von Vorkommnissen ja auch noch die BG-Beziehungen drin. Einfach auswählen über VB sollte gehen. Ansonsten würde ich wohl eher darauf verzichten und die Varianten durch Ersetzen von Teilen realisisren. Dann müssten, damit die Beziehungen keine Probleme machen die Teile.. entweder aus dem selben Master erstellt sein oder über die Referenzebenen platziert sein oder mit absoluten Werten fixiert platziert werden. ------------------ Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 18. Jul. 2016 13:10 <-- editieren / zitieren --> Unities abgeben:
Das Problem ist, dass es sich um sehr viele Teile handelt, in der erstellten Baugruppe die Teile zu ersetzten ist etwas unübersichtlich und auch nicht von der Funktion gewünscht. Wie kann ich denn mit einem Excel Makro Baugruppen austauschen? Bzw wie greife ich damit dann auch auf die Variablen zu? Bis jetzt habe ich es so gelöst, dass ich über Excel Verknüpfungen Parameter ändere und dann falls sich Bauteile innerhalb der Baugruppen ändern habe ich für jede Variante eine neue Baugruppe erstellt. Dies ist am Anfang zwar relativ einfach, aber wird bei 300+ Baugruppen sehr unschön und Speicherineffizient. Ich habe folgendes Variantenmakro gefunden, weiß aber nicht ob damit auch möglich ist Teile zu ersetzten (leider ist das Dokument geschützt, kein Quell Code ersichtlich) http://www.cad-helpdesk.de/solid-edge/se-admin/kann-man-werte-aus-excel-verknuepfungsfrei-in-solid-edge-verwenden.html Über eine Antwort würde ich mich freuen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kmw Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4399 Registriert: 26.02.2002 Wer lesen kann, versteht was er liest, und danach handelt ist anderen gegenüber klar im Vorteil. Intel® Core i9-14900k, 64GB DDR5-RAM, nVidia GeForce RTX 4080, MS Windows 11, Solid Edge 2024 SP5, German. ECTR als PLM. M$ Surface Book, i7-6600@2.81 Ghz, 16Gb, 512 SSD, Win10 creators upd. Fairphone 4 5G mit Android 11 mit SE-Mobile Viewer ;)
|
erstellt am: 18. Jul. 2016 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Dieses Makro hab ich bei mir im Einsatz. Es kann sehr schön Variablen steuern in einer Baugruppe, und das ganz ohne links oder Verknüpfungen. Es funktioniert so: Du hast in einer Excel Zelle einen Wert, und diese Excelzelle hat einen Namen beziehungsweise mit Rechtsklick auf die Excelzelle kannst du einen Namen definieren. Hast du nun eine Variable in deiner Baugruppe, also egal wo, ob in einem Part als Größe oder in einer Baugruppe als Abstandswert, dann wird dieser Wert aus der Excelzelle in die Variable übernommen. Und das Makro wandert rekursiv durch deinen kompletten Baugruppenstrukturbaum durch (und das auch relativ schnell und effizient, zumindest in der Variante, die mir vorliegt). Damit kannst du nun sehr schnell und elegant einen ganzen Variablensatz auf deine komplette Baugruppe anwenden. Das Makro ersetzt dabei keine Parts oder Baugruppen, es ändert nur die Werte der Variablen, die natürlich auch vorhanden sein müssen, mit genau dem Namen, die die Excelzellen haben. Ich hatte zuerst dieses Makro, welches geschützt ist und nur eine begrenzte Anzahl von Variablen ändert. Das hat in dieser Form nur sehr eingeschränkt und langsam funktioniert. Dann hab ich mit SST gesprochen und hab dort eine dll bekommen, die anstandslos und sehr schnell funktioniert, und das auch bei großen Baugruppen mit sehr vielen Variablen. Falls du also daran Interesse hast, meld dich dort und frag das Programm an.
[Diese Nachricht wurde von kmw am 18. Jul. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 18. Jul. 2016 13:57 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Das ist in dem Umfang sicher ein größeres Projekt. Wie man Variablen aus Excel heraus ohne Verknüpfung ändert, zeigt das Bearing-Makro Custom Verzeichnis von SE. Für Teile oder Unterbaugrupen müsste man eine Liste haben, welches Vorkommniss durch welches andere ersetzt werden muss. Dabei tauchen noch eine Reihe von Fragen auf: 1. Soll, wenn eine Komponente mehrfach verbaut ist, evtl. nur eine bestimmte ersetzt werden? 2. Wird auch in der Tiefe der Baugruppenstruktur ersetzt, müssen die Varianten der Unterbaugruppen gespeichert werden? 3. Das ganze Thema Positionierung bzw. Baugruppenbeziehungen ist dann auch noch nicht geklärt. Gibt es übernehmbare BG-Beziehungen, kann man die Positon aus dem alten Vorkommnis auslesen und nutzen oder muss man die Positionierung ebenfalls komplett in der Excel-Tabelle haben und programmieren und wie geht das? Ich würde dringend davon abraten, große Mengen von Varianten in einer BG-Famile zu definieren. Will man jedoch diese Funktion nutzen, würde ich versuchen eine Variante per Programm zu ändern. Ob das mit erträglichem Aufwand geht, kann ich so aber nicht sagen. ------------------ Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kmw Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 4399 Registriert: 26.02.2002 Wer lesen kann, versteht was er liest, und danach handelt ist anderen gegenüber klar im Vorteil. Intel® Core i9-14900k, 64GB DDR5-RAM, nVidia GeForce RTX 4080, MS Windows 11, Solid Edge 2024 SP5, German. ECTR als PLM. M$ Surface Book, i7-6600@2.81 Ghz, 16Gb, 512 SSD, Win10 creators upd. Fairphone 4 5G mit Android 11 mit SE-Mobile Viewer ;)
|
erstellt am: 18. Jul. 2016 14:23 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Wir haben Vorlagen-Baugruppen, wo in jedem Part und Baugruppe alle Variablen definiert sind, und das nach festen Regeln in der Benennung der Variablen. Jetzt werden die Variablenwerte in der ganzen Baugruppe geändert, alle Baugruppenbeziehungen bleiben erhalten. Natürlich ändern sich die Baugruppen und dort enthaltenen Parts, die dann mit neuem Namen gespeichert werden müssen, und das rekursiv nach oben. Da wir das über eine PDM/PLM System machen, ist die Verwaltung dieser neuen Daten sehr viel einfach, als wenn man das manuell machen würde. Auch ist sichergestellt, durch Status und Statusübergänge und damit verbundenen Rechten, das versehentlich Dateien überschrieben werden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 18. Jul. 2016 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
So kann man das machen. Wenn die Variablennamen eindeutig definiert sind, kann man einfach über alle Komponenten drüberlaufen und die Werte der Varibalen überschreiben. Falls eine Variable in einem Dokument nicht da ist, passiert nichts. Geänderte Dokumente müssen dann ggf. neu gespeichert und in der BG ersetzt werden. Das geht schnell und zuverlässig. ------------------ Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 19. Jul. 2016 14:24 <-- editieren / zitieren --> Unities abgeben:
|
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 19. Jul. 2016 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Zitat: Original erstellt von zelade: Also habe ich nun als einzige Möglichkeit entweder per Baugruppenfamilie die Teile zu ersetzen oder dies mit VBA zu tun? [...][/URL]
Oder auch manuell in der offenen Baugruppe oder auch mit dem Revisionmanager! -> Der Revisionmanager lässt sich auch per vba ansprechen, mit dem Vorteil, dass SE nicht unbedingt offen sein muss... Ein Produktkonfigurator kann zugekauft oder auch selbst programmiert werden, mit einer Anbindung an die eigene Firmenhomepage... -> Aber auch mit einer selbstprogrammierten Lösung müssen die so zu behandelnden Baugruppen speziell dafür aufgebaut sein, wurde zwar schon erwähnt aber die Teile sollten dann bestenfalls statisch auf Koordinatensysteme verbaut sein (wegen den Baugruppenbeziehungen)... An deiner Stelle würde ich mir mal genau aufschreiben was der Produktkonfigurator alles können soll... -> Wenn dieser keine eierlegende Wollmilchsau sein muss reduziert sich dadurch der Aufwand bei der Programmierung erheblich! Zitat: Original erstellt von zelade: Und wenn ja wie erfolgt hier der Austausch von einzelnen Teilen oder wird jede Baugruppenvariante erstellt und anschließend auf Basis der Auswahl bereitgestellt?
Ja ich denke schon, dass jede Baugruppenvariante als eigene Baugruppe existiert und an dieser dann Teile ausgetauscht- bzw. Variablen verändert werden... ------------------
Nichts ist mächtiger als eine Idee, deren Zeit gekommen ist. Victor Hugo ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 19. Jul. 2016 15:20 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
|
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 19. Jul. 2016 18:44 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Falls es um die Bereitstellung von Daten geht und die automatische Generierung sehr vieler Varianten, ist das ein interessantes Thema. Aber für Nebenbei geht das nicht. Aber sehr interessant. Sowas macht Spaß. ------------------ Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zeitbeißer Moderator CAD-Koryphäe
Beiträge: 2646 Registriert: 25.06.2014 Die Computerrevolution ist vorbei - sie haben gewonnen.
|
erstellt am: 20. Jul. 2016 10:14 <-- editieren / zitieren --> Unities abgeben: Nur für zelade
Zitat: Original erstellt von Arne Peters: [...] Aber für Nebenbei geht das nicht. [...]
Der Meinung bin ich auch, da gibt es schon einiges zu beachten! -> Aber wie schon erwähnt würde ich mal gestlegen was wirklich alles gehen sollte um den Umfang des vorhabens einschätzen zu können...
------------------
Nichts ist mächtiger als eine Idee, deren Zeit gekommen ist. Victor Hugo ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 08. Aug. 2016 09:52 <-- editieren / zitieren --> Unities abgeben:
Zunächst erst einmal danke für eure Anregungen Ich werde versuchen über die Solid Edge API und "ersetzen" bzw. "delete" Funktionen mein Problem umzusetzen. In meinem Projekt habe ich mehrere Variablen welche ebenfalls angepasst werden sollen. Da diese in unterschiedlichen Bauteilen, welche zum Teil auch ersetzt und eingefügt werden definiert sind, würde es sich anbieten Verknüpfungsfrei zu arbeiten. Ich habe mich an dem Bearing-Makro Custom Verzeichnis orientiert. Folgender Beispielcode ergibt sich daraus: Code:
Sub Update_click() Dim IApp As Object Dim Variables As Object Dim Feature As Object Dim Traegerbreite As Double Dim UseLinks As Boolean Traegerbreite = Sheets("Update").Cells(2, 2).Value On Error Resume Next Set IApp = GetObject(, "SolidEdge.Application") If Err Then MsgBox "Solid Edge must be running" Else ' Get variables collection Set Vars = IApp.ActiveDocument.Variables ' Turn on delay update IApp.delaycompute = True ' Set values of variables Call Vars.Edit("Traegerbreite", Str(Traegerbreite)) ' Turn off delay update IApp.delaycompute = False Set Vars = Nothing Set IApp = Nothing End If End Sub
Mein Problem ist, dass ich damit nur auf die obersten Variablen zugreifen kann, also nicht die Variablen in Unterbaugruppen. Gerne würde ich mit dem Makro sämtliche Variablen,einschließlich der Peer-Variablen, durchsuchen und diese falls sich eine Übereinstimmung findet ändern. Mit dem Variantenmakro aus vorherigen Antworten soll dies ja angeblich möglich sein, leider antwortet mir keiner bei SST. Wobei mir am meisten helfen würde meinen Code zu erweitern um die Funktion zu ergänzen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zelade Mitglied
Beiträge: 21 Registriert: 28.06.2016
|
erstellt am: 08. Aug. 2016 11:57 <-- editieren / zitieren --> Unities abgeben:
|