| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| | |
 | Qualität sichtbar gemacht, dank leistungsfähiger 3DViewStation Grafik, eine Pressemitteilung
|
|
Autor
|
Thema: Boolean Parameter ändern (2355 mal gelesen)
|
Mario21 Mitglied
 Beiträge: 4 Registriert: 30.07.2014 Catia V5 R19 Windows 7 Professional
|
erstellt am: 06. Aug. 2014 21:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, seit ein paar Wochen versuche ich ein Makro zu realisieren, aber ich komme einfach keinen Schritt mehr weiter. Hier mein Code
Code:
Sub CATMain()Dim product As Document Set product = CATIA.ActiveDocument Dim product2 As Product Set product2 = product.Product Dim Params As Parameter Set Params = Parameters.Item("02_Parameter") If Params.ReadOnly = True Then MsgBox("Parameter kann nicht verändert werden!") 'Es wird keine Nachricht ausgegeben somit müsste man den Parameter ändern können. End If MsgBox product2.UserAccessMode ' Es wird der Wert 2 ausgegeben für vollen Zugriff. MsgBox product2.name product2.value = true 'Hier tritt der Fehler dann auf. End Sub
Folgender Fehler:
Zitat: Source: CATIABoolParam Description: The method Value failed
Ich möchte gerne den Parameter von false auf true setzen. Könnt ihr mir da evtl. weiterhelfen? Vielen Dank im Voraus! Gruß Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12117 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Aug. 2014 22:13 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario21
Servus Willkommen im Forum. Du hattest vergessen die Paramater-Collection richtig zuzuweisen, und manche Variablennamen vertauscht: Code: Sub CATMain()Dim oDocument As Document Set oDocument = CATIA.ActiveDocument Dim oProduct As product Set oProduct = oDocument.product Dim Params As Parameter Set Params = oProduct.Parameters.Item("02_Parameter") If Params.ReadOnly = True Then MsgBox ("Parameter kann nicht verändert werden!") 'Es wird keine Nachricht ausgegeben somit müsste man den Parameter ändern können. End If If Params.UserAccessMode = 0 Then MsgBox ("Parameter kann nicht verändert werden!") End If Params.Value = True End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario21 Mitglied
 Beiträge: 4 Registriert: 30.07.2014 Catia V5 R19 Windows 7 Professional
|
erstellt am: 07. Aug. 2014 10:19 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen, vielen Dank bgrittmann für die schnelle Antwort . War wohl doch etwas spät gestern. Leider lässt sich der Parameter immer noch nicht ändern und es erscheint die gleiche Fehlermeldung. Hier der Code:
Code: Sub CATMain()Dim oDocument As Document Set oDocument = CATIA.ActiveDocument Dim oProduct As product Set oProduct = oDocument.product Dim Params As Parameter Set Params = oProduct.Parameters.Item("02_...") 'Mit folgender Zeile erscheint keine Fehlermeldung: Set Params = oProduct.Parameters.Item("11_...") If Params.ReadOnly = True Then MsgBox ("Parameter kann nicht verändert werden!") 'Es wird keine Nachricht ausgegeben somit müsste man den Parameter ändern können. End If If Params.UserAccessMode = 0 Then MsgBox ("Parameter kann nicht verändert werden!") End If MsgBox Params.name 'Name wird richtig angezeigt. Params.Value = False 'Fehlermeldung End Sub
Im Anhang ein Ausschnitt von meinem Strukturbaum. Was ich nicht verstehe ist: 1. Wenn ich den gleichen Code mit dem Paramter "11_..." starte kein Fehler erscheint? 2. Wenn ich das ändern des Parameters "02..." mit MakroRecording aufzeichne kommt ebenfalls ein Fehler. (Edit) Vielen Dank im Voraus! Viele Grüße
[Diese Nachricht wurde von Mario21 am 07. Aug. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12117 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Aug. 2014 10:36 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario21
Servus Du musst auch das richtige Product und das richtige ParameterSet ansprechen (Watchfenster). Das "ActiveDocument" ist wahrscheinlich dein RootProduct. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario21 Mitglied
 Beiträge: 4 Registriert: 30.07.2014 Catia V5 R19 Windows 7 Professional
|
erstellt am: 07. Aug. 2014 11:12 <-- editieren / zitieren --> Unities abgeben:         
Auch das habe ich schon versucht. Code: Sub CATMain()Dim oDocument As Document Set oDocument = CATIA.Documents Dim oProduct As product Set oProduct = oDocument.Item("....CATProduct").product Dim Params As Parameter Set Params = oProduct.Parameters.Item("02_...") MsgBox Params.name 'Name wird richtig angezeigt. Params.Value = True 'Fehlermeldung End Sub
Gibt es eine Möglichkeit nur die Parameter eines Products auszulesen und nicht die Parameter der Parts die in dem Product enthalten sind? [Diese Nachricht wurde von Mario21 am 07. Aug. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12117 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Aug. 2014 11:17 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario21
Servus Schau dir mal die Methode "DirectParameters" oder "RootParameterSet". AFARIK sollte es mit einer der Methode gehen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario21 Mitglied
 Beiträge: 4 Registriert: 30.07.2014 Catia V5 R19 Windows 7 Professional
|
erstellt am: 07. Aug. 2014 14:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario21
|