Autor
|
Thema: Makro starten in Produktstruktur und separaten Fenster (3562 mal gelesen)
|
Hezarfen Mitglied Konstrukteur
Beiträge: 42 Registriert: 30.11.2005 Catia V5 R16 SP5
|
erstellt am: 26. Sep. 2007 11:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Frage, ich möchte gerne in einer Produktstruktur, in einem Part einen Parameter ändern. Die Änderung des Parameters startet ein Marko in diesem part. --Produkt >--Produkt >-Part Das Makro läßt sich jedoch nur starten, wenn ich den Part separat im Fenster geöffnet habe. Ich möchte jetzt auch, das dieses Makro auch startet, wenn ich in der geladenen Produktstruktur den Parameter ändere. Ist es möglich, dass in beiden Fällen das Makro startet. Das heisst, einmal in einem separaten Fenster und in der Produktstruktur? Makrocode (Anfang): Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.Item(DataName) Dim part1 As Part Set part1 = partDocument1.Part Set parameters1 = part1.Parameters Ich hoffe auf eure Hilfe! Gruß Hezarfen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 26. Sep. 2007 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für Hezarfen
Hallo, wo genau befindet sich denn der Parameter? Im Produkt selber oder im Part? Um einen Part-Parameter zu ändern muss das Part angesprochen werden - also so, wie es jetzt schon gemacht wird. befindet sich der Parameter im Produkt, muss logischer Weise dieses angesprochen werden. SG Jens Hansen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hezarfen Mitglied Konstrukteur
Beiträge: 42 Registriert: 30.11.2005 Catia V5 R16 SP5
|
erstellt am: 26. Sep. 2007 13:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Jens, es handelt sich hierbei um ein Part-Parameter. Falls ich das Part im separaten Fenster geladen habe funktioniert das Makro. Aber sobald ich in der Produktstruktur diesen Part-Parameter veränder, zeigt es mir eine Fehlermeldung bei der Zeile Set part1 = partDocument1.Part Ich denke in der Produktstruktur muss man noch das Produkt (in der das Part liegt) irgendwie deklarieren. Ich will allerdings auch noch, dass das Makro unabhängig von der Produktstruktur funktioniert. Ist das denn möglich? Nochmal die 2 Möglichkeiten: Version 1 (im separaten Fenster) Part1 >-Parameter Version 2 (in der Produktstruktur) Produkt1 >-Produkt2 >-Part1 >-Parameter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BigCheese Mitglied Dipl-Ing
Beiträge: 130 Registriert: 12.05.2004 CATIA V5R19 SP3
|
erstellt am: 01. Okt. 2007 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für Hezarfen
Hallo Herzafen, ich denke Dein Problem hängt mit Code: Set partDocument1 = documents1.Item(DataName)
zusammen. Was ist denn bei Dir "DataName"?. Hier sollte entweder der Index des Parts angegeben werden, was wahrscheinlich eher schwierig ist, oder der Dateiname des Parts. Damit das Makro sowohl in einer Produktstruktur als auch im Einzelteil läuft, könntest Du zu Beginn mit Code: sDocType = TypeName(CATIA.ActiveDocument)
den Dokumenttyp ermitteln und abhängig vom Ergebnis (PartDocument oder ProductDocument) die entsprechenden Deklarationen für Einzelteil oder Produkt vornehmen. Gruß, Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hezarfen Mitglied Konstrukteur
Beiträge: 42 Registriert: 30.11.2005 Catia V5 R16 SP5
|
erstellt am: 02. Okt. 2007 14:32 <-- editieren / zitieren --> Unities abgeben:
Hallo Alex, danke für deine Hilfe. DataName war bei mir eine Function, die mir den Datei/Part Namen herausliest. Ich habe nun mein Makro entsprechend verändert, jedoch verstehe ich das nicht ganz. Wie kann ich nun auf ein Part im Produkt zugreifen. Wenn ich in der Produktstruktur in ein part rein gehe und in ihm ein Parameter veränder, sollte das Makro (im part) starten. Unten steht der code, der funktioniert nur wenn ich das part separat offen habe. In der Produktstruktur muss ich irgendwie noch den Part anwählen, oder wird der nicht automatisch angewählt wenn ich in der Produktstruktur in den part reingehe und den makro starte? -Produkt >-Part >-Makro Sub Main sDocType = TypeName(CATIA.ActiveDocument) 'hier lese ich haraus um was für ein Dokumenttyp mein ActiveDokument ist Dim MyDocument As Document Set MyDocument = CATIA.ActiveDocument Dim PP As sDocType Set PP = MyDocument.Part 'part?! Set parameters1 = PP.Parameters Set ParameterXY1 = parameters1.Item("Parameter name 1") Set ParameterXY2 = parameters1.Item("Parameter name 2") ParameterXY1_Status=ParameterXY1.Value ParameterXY2_Status=ParameterXY2.Value Dim hybridBodies1 As HybridBodies Set hybridBodies1 = PP.HybridBodies .... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BigCheese Mitglied Dipl-Ing
Beiträge: 130 Registriert: 12.05.2004 CATIA V5R19 SP3
|
erstellt am: 02. Okt. 2007 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für Hezarfen
Hallo nochmals, das Problem ist, dass Dein aktives Dokument das Produkt ist, egal ob Du Dich nun in dem CATPart befindest oder nicht. Dein aktives Dokument ist der oberste Knoten des Baumes... Zur Unterscheidung könnte ich mir das in etwa wie folgt vostellen: Code: Select Case sDocType Case "PartDocument" Set oPart = CATIA.ActiveDocument.Part Case "ProductDocument" Set oPartDocument = CATIA.Documents.Item(DataName) Set oPart = oPartDocument.Part Case Else i = MsgBox("Der Dokumenttyp konnte nicht ermittelt werden oder ist nicht geeignet!", vbCritical, "Fehler") Exit Sub End Select
Ich hoffe, das hilft Dir weiter. Grüße, Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hezarfen Mitglied Konstrukteur
Beiträge: 42 Registriert: 30.11.2005 Catia V5 R16 SP5
|
erstellt am: 04. Okt. 2007 11:36 <-- editieren / zitieren --> Unities abgeben:
|
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 23. Jan. 2009 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für Hezarfen
|
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 23. Jan. 2009 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Hezarfen
Hallo Andi, den Namen des aktiven Parts in einer Produktstruktur bekommt man nur über eine Selektion raus. Hier wird halt der Variable DataName der Dateiname des Parts zugewiesen das angesprochen werden soll. Dieses wird den in den Documents.Items direkt angesprochen ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 23. Jan. 2009 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für Hezarfen
|