| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
| Model Based Definition mit Solid Edge 2023, ein Webinar am 22.10.2024
|
Autor
|
Thema: Teile in Baugruppen (1351 mal gelesen)
|
Mrole Mitglied
Beiträge: 118 Registriert: 02.04.2003
|
erstellt am: 16. Nov. 2007 13:15 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, nochmal zum Thema Teile in Baugruppen identifizieren über API: Wenn ich das gleiche Teil mehrmals in der Baugruppe verbaue, wird in der EdgeBar der Name mehrmals gleich benannt mit dem Zusatz Dateiname.par:1, Dateiname:2, Dateiname:3 usw.. Wird also ein Teil im Partbereich editiert, wie kann man feststellen, welches dieser Teile im Moment aktiv ist, bzw. in der Baugruppe ausgewählt wurde zum Editieren? Mein Stand: im PartDocument kann ich mit ActiveDocument.InPlaceActivated erkennen, dass dieses aktiv ist, aber nicht, welchem Occurrence aus dem Assembly diesem entspricht, da die Property InPlaceActivated nicht für Occurrence gültig ist wie es aussieht... Geht das irgendwie? Viele Grüße Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 16. Nov. 2007 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Moin, irgendwie wird sich da schon etwas machen lassen nur wohin soll die Reise gehen? Willst Du das aus einem Addin machen, oder aus einem normalen programm heraus. Egal wie oft und wo das Teil verbaut wurde -- es ist nur einmal vorhanden und sobald es im Kontext editiert wird werden alle Instanzen dieses Teils aktiviert (V19/v20) modeng ------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn) [Diese Nachricht wurde von modeng am 16. Nov. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mrole Mitglied
Beiträge: 118 Registriert: 02.04.2003
|
erstellt am: 16. Nov. 2007 15:11 <-- editieren / zitieren --> Unities abgeben:
Hi, ich hab ein Addin, in dem mein Programm als Exe ausgeführt wird. Das addin ist in der Part Umgebung aktiv und erscheint, wenn ein Part mit Edit geöffnet wird. Jetzt würde ich gerne identifizieren, um welches Teil genau es sich hierbei handelt (welches Occurrence). Ich bräuchte nämlich später, zurück in der Baugruppe, den Namen des Teils, das editiert wurde, um es hier zu selektieren. Wäre es also möglich, in der Part-Umgebung herauszufinden, welches Occurrence aus dem Assembly gerade editiert wird? Hoffe, das bringt dich weiter! Viele Grüße und Schönes WE Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 16. Nov. 2007 15:47 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Moin, so kommst Du schon mal and die Subasm in der das Teil verbaut wurde: Dim oMat() As Double Dim oObj As Object Set mApp = GetObject(, "SolidEdge.Application") Call mApp.ActiveDocument.GetContainerDocumentAndMatrixOfIPADoc(oObj, oMat) If oObj Is Nothing Then ' ' Teil ist top level asm oder nicht InPlaceActivated ' Else ' Teil ist in der sub asm MsgBox oObj.Name ' asm name ' jetzt ueber die Occurrences laufen und mit ' <...>.occurrence.occurrencedocument.InPlaceActivated ' abfragen ' ' End modeng
------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn)
[Diese Nachricht wurde von modeng am 16. Nov. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mrole Mitglied
Beiträge: 118 Registriert: 02.04.2003
|
erstellt am: 19. Nov. 2007 13:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, mit der Matrix ist ne gute Idee, aber ich glaub die bekomm ich nur im Assembly von einem Occurrence? Ich möchte nur ein Identifikationsmerkmal eines Teils (durch seinen Namen oder die Matrix, oder etwas anderes), das mir beim in der Baugruppe geöffneten Teil sagt, welches Occurrence vorher ausgewählt wurde, damit eben dieses Teil zum Bearbeiten geöffnet wird. Kann ich so eine Identifikation also auch vom Part in der Part-Umgebung bekommen, oder geht das nur beim Occurrence in der Baugruppe? Viele Grüße Roland 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: 7467 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 19. Nov. 2007 13:26 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
Du willst es erst aus dem ASM öffnen und dann rausbekommen, wo Du her gekommen bist? Ich verstehe das Anliegen eigentlich nicht. Wenn Du schon programmierst, merk Dir doch vorher in Deinem Programm, wo Du hergekommen bist. ------------------ APeters@BSS-Online.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 19. Nov. 2007 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
[...] ich hab ein Addin, in dem mein Programm als Exe ausgeführt wird. Das addin ist in der Part Umgebung aktiv und erscheint, wenn ein Part mit Edit geöffnet wird. [...] Damit wird es ueber das Event: AfterDocumentOpen angesprochen. Eine direkte Unterscheidung ob nun Edit oder Open ist nicht moeglich. Das obige Coding liefert - Nothing wenn es per Open geoeffnet oder als einzelnes Part geoeffnet wurde - die Container ASM wenn es aus einer ASM heraus mit Edit bearbeitet wurde. Im ersten Fall liefert <objApp>.Documents.Item(1) entweder eine ASM (Top ASM) oder das Part selbst zurueck. Im zweiten Fall musst Du halt in der ASM das Teil mit einer Schleife uber die Occurrences suchen und Dir merken. Etwas anders faellt mir momentan dazu nicht ein modeng ------------------ Lieber Fehler riskieren als Initiative verhindern (R. Mohn) 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: 7467 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 19. Nov. 2007 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für Mrole
|