Autor
|
Thema: ParameterSets löschen, neu erstellen - für jedes Part in Produkt wiederholen (3202 mal gelesen)
|
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 26. Nov. 2012 13:57 <-- editieren / zitieren --> Unities abgeben:
Halo Forum! Ich habe einfache Aufgabe: bei solche Parameter Struktur: --Parameters ----ParameterSet1 -------ParameterSet1.1 -------ParameterSet1.2 -------ParameterSet1.3 ----ParameterSet2 ----ParameterSet3 muss ich alle Sets welche heißen ParameterSet1.* wo * ist ein Variabel, löschen, und dort (unter ParameterSet1) neues Set, welches heißt ParameterSet_x erstellen. Das problem ist, dass ich muss das machen für jedes Part im gantztes Baum-Struktur. Kann mir jemand yeigen wie kann ich das schaffen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Nov. 2012 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Sylas Entweder verwendest du ein rekursives Makro (siehe zB hier) zum Prüfen/Löschen/Anlegen der ParameterSets oder d arbeitest die Document-Colletion durch, dann darf nur deine Baugruppe (gff noch Einzelteile oder Unterbagruppen davon) geöffnet sein) zB: Code: for each oDocument in CATIA.Documents 'tu was next
Gruß Bernd PS: Hat dein anderes Makro (anderes Thema) nicht die gleiche Funktion? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 26. Nov. 2012 20:26 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus Sylas Entweder verwendest du ein rekursives Makro (siehe zB hier) zum Prüfen/Löschen/Anlegen der ParameterSets oder d arbeitest die Document-Colletion durch, dann darf nur deine Baugruppe (gff noch Einzelteile oder Unterbagruppen davon) geöffnet sein) zB:Code: for each oDocument in CATIA.Documents 'tu was next
Gruß Bernd PS: Hat dein anderes Makro (anderes Thema) nicht die gleiche Funktion?
Gruß Bernd Du bist der Mann ! Jaein (Ja und Nein). Ich versuche Etwas zu schaffen, aber leider habe ich nicht geschaft :( Bei ändere Thema haben wir was probiert - aber dort ist was anders ;) siehe meine Antwort dort. Grundsätzlich, ich habe Probleme mit richtige Definition von ParameterSets :) also, Code:
Dim sel as oDocument.selection 'hier ich suche mit Selection für alle ParameterSets im gantzt Baum welche heißen ParameterSet1.* sel.delete For each oDocument in CATIA.Documents Dim Target as ParameterSet If oDocument.parameters.ParameterSet.Parent.Name = "ParameterSet.1" then oDocument.parameters.ParameterSets.CreateSet "ParameterSet_x" Set Target = oDocument.GetItem("ParameterSet_x") Target.DirectParameters.CreateString("Parameter1","Wert1") Target.DirectParameters.CreateString("Parameter2","Wert2") Target.DirectParameters.CreateString("Parameter3","Wert3") end If
Ich möchte sowas haben. Ist das ok?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Nov. 2012 20:59 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Was läuft an deinem Code nicht? Was hat schon funktioniert? Wo liegt das Problem (bei den Docments, ...)? Ich hab mal dienen Code etwas überarbeitet (Zugriff auf das RootParameterSet, unter dem de ParameterSet wie im Baum angeordnet sind): Code: For each oDocument in CATIA.Documents Dim TargetSet as ParameterSet If oDocument.parameters.ParameterSet.Parent.Name = "ParameterSet.1" then Set TargetSet = oDocument.Parameters.RootParameterSet.ParameterSets.CreateSet "ParameterSet_x" TargetSet.DirectParameters.CreateString("Parameter1","Wert1") TargetSet.DirectParameters.CreateString("Parameter2","Wert2") TargetSet.DirectParameters.CreateString("Parameter3","Wert3") end If
Gruß Bernd PS: das Ganze in VBA zu erstellen (Watchfenster) wäre bestimmt einfacher. ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 26. Nov. 2012 21:26 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Nov. 2012 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Weiße mal den neuem Parameter einer Variable zu: Code: Dim StrParameter as Parameter Set StrParameter = TargetSet.DirectParameters.CreateString("Parameter1","Wert1")
Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 27. Nov. 2012 00:15 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus Weiße mal den neuem Parameter einer Variable zu: Code: Dim StrParameter as Parameter Set StrParameter = TargetSet.DirectParameters.CreateString("Parameter1","Wert1")
Gruß Bernd
Gruß Bernd Ich siehe dass ich muss mit dir mit geöffnete Karten spielen ;) Das ist meinen Baum:
und das ist meines aktuelles Makro:
Code:
Sub CATMain() For Each oDocument In CATIA.DocumentsDim TargetSet As ParameterSet Dim Sel1 As Selection Set Sel1 = oDocument.Selection Sel1.Search "(Name=*Aenderung_* & CATKnowledgeSearch.AdvisorParameterSet),all" Sel1.Delete '--------------------------------------------------- Projekt = InputBox("Podaj wartość parametru:", "Wartość parametru Projekt", "xxx") Operation = InputBox("Podaj wartość parametru:", "Wartość parametru Operation", "xxx") Entworfen = InputBox("Podaj wartość parametru:", "Wartość parametru Entworfen", "xx") Datum = InputBox("Podaj wartość parametru:", "Wartość parametru Datum", "xx.xx.xx") BG = InputBox("Podaj wartość parametru:", "Wartość parametru Beschriftung_der_Baugruppe", "xxxxxx") '----------------------------------- Sel1.Clear Sel1.Search "Name=Projekt,all" 'Set product1 = productDocument1.Product 'Set product1 = product1.ReferenceProduct Dim oParameter For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = Projekt Next '------------------------------------ Sel1.Clear Sel1.Search "Name=Operation,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = Operation Next '------------------------------------- Sel1.Clear Sel1.Search "Name=Entworfen,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = Entworfen Next '------------------------------------- Sel1.Clear Sel1.Search "(Name=Datum & CATKnowledgeSearch.InternalParameter),all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item2(i).Value If InStr(oParameter.name, "Konstruktionseigenschaften") <> 0 Then oParameter.Value = Datum End If Next '------------------------------------- Sel1.Clear Sel1.Search "Name=Beschriftung_der_Baugruppe,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value
oParameter.Value = BG Next '------------------------------------- Sel1.Clear Sel1.Search "Name=Beschriftung_des_Teils,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = BG Next '------------------------------------- If oDocument.Parameters.ParameterSet.Parent.DisplayName = "Aenderungen" Then Set TargetSet = oDocument.Parameters.RootParameterSet.ParameterSets.CreateSet("Aenderung_x") Dim StrParameter As Parameter Set StrParameter = TargetSet.DirectParameters.CreateString("Konstrukteur", "xxx") Dim StrParameter2 As Parameter Set StrParameter2 = TargetSet.DirectParameters.CreateString("Datum", "xx.xx.xx.") Dim StrParameter3 As Parameter Set StrParameter3 = TargetSet.DirectParameters.CreateString("Aenderungsgrund", "xxx") Else End If Next End Sub
nach welches alle Parameters aus ParameterSet Konstruktionseigenschaften sind perfekt umbenennt, und "Alte Aenderungen" Sets waren gelöscht mit Sel1.delete . Ich komme jetzt zum dieser Linie:
Code:
If oDocument.Parameters.ParameterSet.Parent.DisplayName = "Aenderungen" Then
und kriege ich dieser Meldung:
Beides .DisplayName und .Name funktioniert nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Nov. 2012 07:15 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus EDIT: ich hab wohl diene Frage nicht richtig durchgelesen. Über "Parent" kommst du von einem Parameter nicht auf dessen ParameterSet. Vergleiche die Lösung beim Datum. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 27. Nov. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 27. Nov. 2012 12:28 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus EDIT: ich hab wohl diene Frage nicht richtig durchgelesen. Über "Parent" kommst du von einem Parameter nicht auf dessen ParameterSet. Vergleiche die Lösung beim Datum.Gruß Bernd
Servus Sorry Mann, ich siehe keine Verbindung zwischen Datum und dieses Problem... Ich verstehe, dass ich soll prüfen, ob ParameterSet heißt Aenderungen und wenn ja, dann ParameterSet mit Parameters erstellen. Aber schieß mich Tot. Ich weiß nicht wie kann ich dass mit Kode schreiben Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Nov. 2012 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Welches ParameterSet? Wie willst du auf diese Zugreifen? (ggf über die Suche) Bei deinem Code ist "oDocument.Parameters.ParameterSet" das ParameterSet "Parameter" (direkt Unterhalb des Parts) im Baum. Gruß Bernd PS: Bitte deinen Admin dir VBA zu installieren (auf der CATIA-Installations CD) dann wird die Struktur dir klarer. ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 27. Nov. 2012 13:06 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus Welches ParameterSet? Wie willst du auf diese Zugreifen? (ggf über die Suche) Bei deinem Code ist "oDocument.Parameters.ParameterSet" das ParameterSet "Parameter" (direkt Unterhalb des Parts) im Baum.Gruß Bernd PS: Bitte deinen Admin dir VBA zu installieren (auf der CATIA-Installations CD) dann wird die Struktur dir klarer.
Aktuelles Situation ist, dass nach dem Makro alle Parameters und ParameterSets unter Aenderungen sind gelöscht, und alle Parameters unter Konstruktionseigenschaften sind geändert. Das letzte was Makro muss machen, ist neues ParameterSet Aenderung_x unter ParameterSet Aenderungen zu erstellen und dort drei neue Parameters mit default Wert yu erstellen. In Ergibnis: -Parameters --Aenderungen ---Aenderung_x ----Parameter1 mit Wert1 ----Parameter2 mit Wert2 ----Parameter3 mit Wert3 EDIT: Ganzes IT Dept. sitzt bei euch Habe ich schön gefragt - aber seit 3 Wochen keine Antwort. [Diese Nachricht wurde von Sylas am 27. Nov. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Nov. 2012 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus bei einem Part bekommst du zb so dein ParameterSet (vorsicht wenn es das ParameterSet nicht gibt): Code: Dim partDocument1 As PartDocument Set oDoc = CATIA.ActiveDocumentDim part1 As Part Set part1 = oDoc.Part Dim RootParameterSet As parameterSet Set RootParameterSet = part1.Parameters.RootParameterSet Dim parameterSet As parameterSet Set parameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")
Bei einem CATProduct entsprechend auf das Product los lassen. Oder du verwendest die Suche (Makrorekorder) dann ist dies unabhängiger vom Dokumententyp.Gruß Bernd PS: Im Makroeditor gibt es auch die Funktion "Objektauflösung. Diese hilft manchmal weiter die Struktur der Objekte besser zu verstehen. ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 28. Nov. 2012 08:40 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus bei einem Part bekommst du zb so dein ParameterSet (vorsicht wenn es das ParameterSet nicht gibt):Code: Dim partDocument1 As PartDocument Set oDoc = CATIA.ActiveDocumentDim part1 As Part Set part1 = oDoc.Part Dim RootParameterSet As parameterSet Set RootParameterSet = part1.Parameters.RootParameterSet Dim parameterSet As parameterSet Set parameterSet = RootParameterSet.ParameterSets.Item("Aenderungen")
Bei einem CATProduct entsprechend auf das Product los lassen. Oder du verwendest die Suche (Makrorekorder) dann ist dies unabhängiger vom Dokumententyp.Gruß Bernd PS: Im Makroeditor gibt es auch die Funktion "Objektauflösung. Diese hilft manchmal weiter die Struktur der Objekte besser zu verstehen.
Servus Ich habe das kopiert und drei neue Linien hinzugefügt:
Code:
Dim Zielset as parameterSet Set ZiehlSet = ParameterSet.DirectParameters.CreateSetofParameters("Aenderung_x") dDoc.update
aber das hilft nicht. Was soll ich genau schreiben? Ich will das endlich zur Ende bringen...Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Nov. 2012 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Und wie lautet die Fehlermeldung? Wie weit funktioniert dein Makro? Hast du dir mal in der Doku die Methode "CreateSetofParameters" angeschaut? Was willst du nun anlegen, ein Parameter oder ein ParameterSet? Anbei ein Beispiel: Code: Dim partDocument1 As PartDocument Set oDoc = CATIA.ActiveDocumentDim part1 As Part Set part1 = oDoc.Part 'Rootparameters aufrufen Dim RootParameterSet As parameterSet Set RootParameterSet = part1.Parameters.RootParameterSet 'Parameterset Aenderungen Dim oParameterSet As parameterSet Set oParameterSet = RootParameterSet.ParameterSets.Item("Aenderungen") 'ParameterSet anlegen Dim oTargetSet As parameterSet Set oTargetSet = oParameterSet.parameterSets.creatSet("Test") 'Parameter anlegen dim StrParameter as Parameter Set StrParameter = oTargetSet.DirectParameters.CreateString("Testparameter", "Testwert")
Gruß Bernd------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 28. Nov. 2012 23:21 <-- editieren / zitieren --> Unities abgeben:
Servus Bernd Zitat: Original erstellt von bgrittmann:
Set part1 = oDoc.Part
Object doesn't support this Property or Method. Makro lauft durch bis Entfernung die ParameterSets unter Aenderungen (also ParameterSet Aenderungen ist jetzt lehr). Unter Aenderungen will ich noch ein ParameterSet Aenderung_x einlegen und unter Aenderung_x noch 3 Parameters. Wir haben ganz am Anfang geschrieben:
Code:
For Each oDocument In CATIA.Documents
also wir wollen neues Set Aenderung_x mit 3 Parameters für jedes Part einlegen. Also, statt:
Code:
'Rootparameters aufrufen Dim RootParameterSet As parameterSet Set RootParameterSet = part1.Parameters.RootParameterSet
Ich glaube, dass wir mussen sowas schreiben:
Code:
'Rootparameters aufrufen Dim RootParameterSet As parameterSet Set RootParameterSet = oDocument.Parameters.RootParameterSet
oder
Code:
Set productDocument1 = CATIA.ActiveDocument Set sel1 = productDocument1.Selection sel1.Search "(Name=Aenderungen & CATKnowledgeSearch.AdvisorParameterSet),all" for i=1 to sel1.count Dim RootParameterSet As parameterSet Set RootParameterSet = sel1.item(i).Parameters.RootParameterSet 'und weiter zum der Set "Aenderungen" -->wie hast du letztes Mal geschrieben.
Ist das Wahr? Du kannst meinen Kode (siehe par Posten früher)->was sollen wir genau schreiben?Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Nov. 2012 00:18 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Hast du mal meinen Code in einem CATPart ausgeführt (in dem ein ParameterSet "Anderungen" enthalten ist? Schau mal in der Doku wo die Parameter in einem PartDocument und einem ProductDocument angeordnet sind, dann wir dir klarer, dass du noch eine Fallunterscheidung benötigst (siehe Forensuche) Gruß Bernd EDIT: Du solltest auch mal in der Doku schauen was dir RootParameterSet liefert. ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 29. Nov. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 29. Nov. 2012 09:48 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus Hast du mal meinen Code in einem CATPart ausgeführt (in dem ein ParameterSet "Anderungen" enthalten ist? Schau mal in der Doku wo die Parameter in einem PartDocument und einem ProductDocument angeordnet sind, dann wir dir klarer, dass du noch eine Fallunterscheidung benötigst (siehe Forensuche)Gruß Bernd EDIT: Du solltest auch mal in der Doku schauen was dir RootParameterSet liefert.
Servus Bernd Ich verstehe jetzt was du meinst wegen Fallunterscheidung. Ich glaube, dass ich kann das irgendwie bauen. Aber wofür soll ich das machen, wenn das Makro wird ausgeführt sein nur wenn das ActiveDocument wird ein Produkt sein? Oder, trotztdem muss ich das machen, wegen das, das ich habe ParameterSets unter Parts aber auch unter HaubtProduct? EDIT: Deinem Kode funktioniert für das Part selbst super. Ich habe Mal probiert Fallunterscheidung zu schreiben:
Code:
Sub CATMain() Set oDocument = Catia.ActiveDocument Projekt = InputBox("Podaj wartość parametru:", "Wartość parametru Projekt", "xxxx") Operation = InputBox("Podaj wartość parametru:", "Wartość parametru Operation", "xxxxxx") Entworfen = InputBox("Podaj wartość parametru:", "Wartość parametru Entworfen", "xx") Datum = InputBox("Podaj wartość parametru:", "Wartość parametru Datum", "xx.xx.xx") BG = InputBox("Podaj wartość parametru:", "Wartość parametru Beschriftung_der_Baugruppe", "xxxxxx")Dim TargetSet Dim Sel1 Set Sel1 = oDocument.Selection Sel1.Search "(Name=*Aenderung_* & CATKnowledgeSearch.AdvisorParameterSet),all" Sel1.Delete For Each oDocument In CATIA.Documents '--------------------------------------------------- '----------------------------------- Sel1.Clear Sel1.Search "Name=Projekt,all" 'Set product1 = productDocument1.Product 'Set product1 = product1.ReferenceProduct Dim oParameter For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = Projekt Next '------------------------------------ Sel1.Clear Sel1.Search "Name=Operation,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = Operation Next '------------------------------------- Sel1.Clear Sel1.Search "Name=Entworfen,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = Entworfen Next '------------------------------------- Sel1.Clear Sel1.Search "(Name=Datum & CATKnowledgeSearch.InternalParameter),all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item2(i).Value If InStr(oParameter.name, "Konstruktionseigenschaften") <> 0 Then oParameter.Value = Datum End If Next '------------------------------------- Sel1.Clear Sel1.Search "Name=Beschriftung_der_Baugruppe,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value
oParameter.Value = BG Next '------------------------------------- Sel1.Clear Sel1.Search "Name=Beschriftung_des_Teils,all" For i = 1 To Sel1.Count Set oParameter = Sel1.Item(i).Value oParameter.Value = BG Next '------------------------------------- 'Rootparameters aufrufen Dim RootParameterSet Dim oDoc Set oDoc = CATIA.ActiveDocument If (InStr(oDoc.Name,".CATProduct")) <> 0 Then Dim Product1 Set product1 = oDoc.Product Set RootParameterSet = product1.Parameters.RootParameterSet 'Parameterset Aenderungen Dim oParameterSet Set oParameterSet = RootParameterSet.ParameterSets.Item("Aenderungen") 'ParameterSet anlegen Dim oTargetSet Set oTargetSet = oParameterSet.ParameterSets.createSet("Aenderung_x") 'Parameter anlegen Dim StrParameter1 Set StrParameter1 = oTargetSet.DirectParameters.CreateString("Konstrukteur", "xxx") Dim StrParameter2 Set StrParameter2 = oTargetSet.DirectParameters.CreateString("Datum", "xx.xx.xx") Dim StrParameter3 Set StrParameter3 = oTargetSet.DirectParameters.CreateString("Aenderungsgrund", "xxx") else Dim Part1 Set part1 = oDoc.Part Set RootParameterSet = part1.Parameters.RootParameterSet 'Parameterset Aenderungen Dim oParameterSet Set oParameterSet = RootParameterSet.ParameterSets.Item("Aenderungen") 'ParameterSet anlegen Dim oTargetSet Set oTargetSet = oParameterSet.ParameterSets.createSet("Aenderung_x") 'Parameter anlegen Dim StrParameter1 Set StrParameter1 = oTargetSet.DirectParameters.CreateString("Konstrukteur", "xxx") Dim StrParameter2 Set StrParameter2 = oTargetSet.DirectParameters.CreateString("Datum", "xx.xx.xx") Dim StrParameter3 Set StrParameter3 = oTargetSet.DirectParameters.CreateString("Aenderungsgrund", "xxx") End If Next End Sub
Aber das gibt mir keine ParameterSet Aenderung_x beim Part und 3 ParameterSets Aenderung_x beim Product[Diese Nachricht wurde von Sylas am 29. Nov. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Nov. 2012 23:13 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Die Schleife "For Each oDocument In CATIA.Documents" war dazu gedacht alle geöffneten Dokumente abzuarbeiten und dort die ParameterSet zu löschen/anlegen/... Wenn du eine Baugruppe geöffnet hast, sind auch alle Einzelteile und Unterbaugruppen in der Document-Collection enthalten. (aber auch alle parallel dazu geöffneten Dokumente) Diese Schleife verwendest du nicht da du immer zB "oDocument = CATIA.ActiveDocument" setzt (und somit die Schleife aushebelst). Das aktive Dokument bliebt während der Laufzeit (bei diesem Code) das beim Start geöffnete Dokument. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |