Autor
|
Thema: Hinzugefügte Eigenschaften einen Wert zuweisen (3408 mal gelesen)
|
Andreas Müller 1977 Mitglied Konstrukteur
Beiträge: 43 Registriert: 28.08.2010
|
erstellt am: 10. Okt. 2010 13:27 <-- editieren / zitieren --> Unities abgeben:
Hallo und danke an alle die auf meine anderen Beiträge geantwortet haben. Habe in einem älteren Beitrag gefunden wie man Eigenschaften in ein Part mit einem Makro hinzufügt (UserRefProperties) mich interressiet noch wie in der 2.Spalte werte eingetragen werden können (mit Makro) Bsp. Habe die Zeile "Werkstoff" zugefügt als Zeichenfolge und möchte dort rechts eingetragen haben 1.2738 Makro ist CATVBA System:Catia V5 R19 Hier noch mal das Makro aus dem ältern Beitrag: Sub CATMain() 'Dokument geöffnet? If CATIA.Documents.Count = 0 Then Box = MsgBox("Es wurde kein aktives Dokument identifiziert" + Chr(10) + "Bitte oeffnen Sie zuerst ein Dokument und starten Sie dann das Makro erneut", vbInformation, "Hinweis") Exit Sub End If Dim oDocument As Document Set oDocument = CATIA.ActiveDocument 'Part geöffnet? If TypeName(oDocument) <> "PartDocument" Then Box = MsgBox("Dokument ist kein Part!" + Chr(10) + "Macro wurde abgebrochen", vbInformation, "Hinweis") Exit Sub End If 'Start Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim product1 As Product Set product1 = oDocument.Product on error resume next Dim parameters1 As Parameters Set parameters1 = product1.UserRefProperties 'Abfrage ob Parameter bereits vorhanden sind, wenn nicht erstellen Set strParameter = parameters1.Item("Werkstoff") if err.number <> 0 then Set strParameter = parameters1.CreateString("Werkstoff", "") err.clear end if Box = MsgBox("Makro erfolgreich", vbInformation, "Hinweis") on error goto 0 End Sub
------------------ Mit freundlichem Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009 Celsius-Mobile H720 i7-3840QM 32 Gb Arbeitsspeicher 256 Gb SSD Quadro K2000M Windows 7 Professional (64 Bit) Catia V5R19 (64 Bit) SpacePilot Pro
|
erstellt am: 10. Okt. 2010 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus, mit
Code: Set strParameter = parameters1.CreateString("Werkstoff", "1.2738")
oder
Code: strParameter.Value = "1.2738"
wird die 2te Spalte gefüllt. ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 10. Okt. 2010 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Hallo Andreas, es ist ganz einfach. Die Ende deines Makros müsste wie folgt aussehen: Code: Dim parameters1 As Parameters Set parameters1 = product1.UserRefProperties 'Abfrage ob Parameter bereits vorhanden sind, wenn nicht erstellen Dim strParameter as STRPARAM 'Hier den Typ deklarieren Set strParameter = parameters1.Item("Werkstoff") if err.number <> 0 then Set strParameter = parameters1.CreateString("Werkstoff", "") err.clear end if Box = MsgBox("Makro erfolgreich", vbInformation, "Hinweis") on error goto 0 strParameter.Value="1.2738" 'Hier den Wert hinzufügen End Sub
Wenn der Parameter nicht vom Typ "String" ist, dann musst du oben den entsprechenden Typ angeben.Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller 1977 Mitglied Konstrukteur
Beiträge: 43 Registriert: 28.08.2010
|
erstellt am: 10. Okt. 2010 17:26 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die Schnelle Antwort! 1.Vieleicht kann mir noch jemand sagen wie ich hinzugefügte Eigenschaften wieder löschen kann (mit Makro) 2.Und noch weiter gedacht: wenn schon Eigenschaften existieren sollen diese gelöscht werden und nur meine neuen stehen beleiben ------------------ Mit freundlichem Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009 Celsius-Mobile H720 i7-3840QM 32 Gb Arbeitsspeicher 256 Gb SSD Quadro K2000M Windows 7 Professional (64 Bit) Catia V5R19 (64 Bit) SpacePilot Pro
|
erstellt am: 10. Okt. 2010 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus, zu 1: einfach den Wert leer lassen. z.B: strParameter.Value = "" zu 2: zum Löschen der UserRef Properties (definierter Parameter): Code:
Dim objSel As Object Set objSel = CATIA.ActiveDocument.SelectionobjSel.Add (strParameter) objSel.Delete
------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller 1977 Mitglied Konstrukteur
Beiträge: 43 Registriert: 28.08.2010
|
erstellt am: 10. Okt. 2010 18:25 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Antwort habe mich ein wenig falsch Ausgedrückt ich möchte nicht nur den Wert gelöscht haben sondern die ganzen Zeile (Eigenschat und Wert) ------------------ Mit freundlichem Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009 Celsius-Mobile H720 i7-3840QM 32 Gb Arbeitsspeicher 256 Gb SSD Quadro K2000M Windows 7 Professional (64 Bit) Catia V5R19 (64 Bit) SpacePilot Pro
|
erstellt am: 10. Okt. 2010 18:36 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus, das kannst du ja mit dem 2ten Code. Wenn du diesen in deinen bisherigen Code integrierst dann wird der "Parameter" gelöscht. Funktioniert das bei dir nicht? ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller 1977 Mitglied Konstrukteur
Beiträge: 43 Registriert: 28.08.2010
|
erstellt am: 12. Okt. 2010 20:15 <-- editieren / zitieren --> Unities abgeben:
der 2. Code geht natürlich dafür auch nochmal vielen dank. Eine abschließende Frage zu diesem Thema habe ich noch. Wie kann ich auf den Wert einer bereits existierenden hinzugef.Eigenschaft (nicht von mir geschrieben) zugreifen um sie im Makro weiter zu verwenden ? Vieleicht kann mir da noch jemand ein Beispielcod geben. ------------------ Mit freundlichem Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009 Celsius-Mobile H720 i7-3840QM 32 Gb Arbeitsspeicher 256 Gb SSD Quadro K2000M Windows 7 Professional (64 Bit) Catia V5R19 (64 Bit) SpacePilot Pro
|
erstellt am: 12. Okt. 2010 20:33 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus, mit Code: Set strParameter = parameters1.Item("xxx")
kannst du auf diesen Zugreifen. Mit MsgBox (strParameter.Value) kannst du z.B.: den Wert dieses Parameters in eine MsgBox ausgeben/anzeigen lassen.------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
atngmbh Mitglied Konstrukteur
Beiträge: 43 Registriert: 24.04.2002
|
erstellt am: 29. Sep. 2011 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Hallo Ich bin zufällig auf diesen Beitrag gestoßen, da ich ein Eigenschaftsfeld definieren wollte, welches eine Auswahl ermöglicht. Dieses machen wir derzeit über ein Startpart und ich wollte dieses über den Import von externen Eigenschaften erreichen. Nun zur Frage. Ist es auch noch möglich in der Zeile Set strParameter = parameters1.CreateString("Werkstoff", "1.2738") mehrere Werte zu definieren um eine Auswahl zu bekommen wie im Bild dargestellt? VG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tberger Mitglied Application Manager CATIA V5 / V6
Beiträge: 1385 Registriert: 13.01.2007 WIN 7 64bit V5R21SP3HF49 3DX/V6 R2016x
|
erstellt am: 29. Sep. 2011 12:01 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
So vielleicht: ... Dim MyArray(4) MyArray(0) = "A2" MyArray(1) = "A4" MyArray(2) = "8.8" MyArray(3) = "10.9" MyArray(4) = "12.9" Dim strParam1 As Object 'StrParam ist restricted im CATVBA Set strParam1 = parameters1.CreateString("Material", "") strParam1.SetEnumerateValues MyArray() ... ------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ... [Diese Nachricht wurde von tberger am 29. Sep. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |