Autor
|
Thema: Wert im Parameter mit Makro ändern (5909 mal gelesen)
|
Andreas Müller 1977 Mitglied Konstrukteur
Beiträge: 43 Registriert: 28.08.2010
|
erstellt am: 28. Aug. 2010 15:27 <-- editieren / zitieren --> Unities abgeben:
Hallo und vielen Dank im voraus - wer sich die Zeit nimmt mir zu Helfen Arbeite seit kurzem mit Catia V5 und habe auch das Thema Makro entdeckt. Ich bräuchte da mal einen Makrovorschlag wie ich einen bestimmten Parameter (z.B.mit dem Namen "Positionsnummer") vom Typ Zeichenfolge mit einen Input-Fenster den Wert (z.B. von 1234 auf 3333) ändern kann. ------------------ Mit freundlichem Gruß Andreas 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: 28. Aug. 2010 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Hallo Andreas und willkommen im Forum. Bitte fülle noch in deinem Profil deine Systeminfo aus (CATIA-Version und SP, evtl. HArdware/Grafikkarte) Zu deiner Frage: Sub CATMain() Dim partDocument1 As PartDocument Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim parameters1 As Parameters Set parameters1 = part1.Parameters Dim strParam1 As StrParam Set strParam1 = parameters1.Item("Positionsnummer") strParam1.Value = InputBox("Geben Sie die neue Positionsnummer an") End Sub sollte das tun. Es war 1 Minute Makrorekorder und einmal Angabe einer Inputbox angesagt.
------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ... "Phase 2 in CATIA V5" - www.tobeplus.de tberger@tobeplus.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 29. Aug. 2010 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus, ich schätze mal, dass du sicherlich mehrere Parameter in deinem Part drinnen hast. Damit du nicht für jeden Parameter ein eigenes Makro schreibst, kannst du das ganze in eine Userform stecken. Hat dann natürlich zur Folge, dass mit mit VBA arbeiten musst, weil es mit CATScript und CATvbs nicht realisierbar ist. Anbei ein Bild von meiner Userform zum ausfüllen/erstellen der Stücklistenparameter. Der Codeschnippsel zum Eintragen der Werte:
Code: Set strParameter = Parameters.Item("Pos_Nr") strParameter.Value = Me.txt_Pos_Nr.Value
Der Codeschnippsel zum Erstellen der Parameter und eintragen der Werte:
Code: Set strParameter = Parameters.CreateString("", "") strParameter.Rename "Pos_Nr" strParameter.Value = Me.txt_Pos_Nr.Value
------------------ 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: 19. Sep. 2010 10:43 <-- editieren / zitieren --> Unities abgeben:
erst einmal vielen Dank für die Antwort bin noch nicht dazu gekommen es auszuprobieren - in letzter Zeit wieder viel zu tun. Beschäftige mich nebenher in meiner Freizeit damit. Gruß A.Müller ------------------ Mit freundlichem Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
Beiträge: 236 Registriert: 17.09.2005 Catia V5 R26 Siemens NX11 Fides 10
|
erstellt am: 22. Aug. 2018 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Hallo zusammen, ich habe das Macro so abgeändert, damit es bei mir funktioniert: Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part
Set parameters1 = part1.Parameters
Set strParam1 = parameters1.Item("Station")
strParam1.Value = InputBox("Geben Sie die neue Station an") End Sub Kann man das Macro so ändern, dass bei allen Parts eines Products dieser Parameter geändert wird, ohne jedes einzeln aktivieren zu müssen? 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: 22. Aug. 2018 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus Willst du bei a) allen geöffneten Dokumenten den Parameter ändern oder b) nur diese im aktuellen CATProduct? Zu b) Schleife über die Products-Collection laufen lassen und auf das entsprechende Dokument zugreifen. Dort dann den Parameter ändern (Vorsicht: Unterscheidung CATPart und CATProduct notwendig) Was soll passieren wenn ein Teil mehrfach verbaut wird? Was soll passieren wenn es den Parameter in einem Dokument nicht gibt? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
Beiträge: 236 Registriert: 17.09.2005 Catia V5 R26 Siemens NX11 Fides 10
|
erstellt am: 22. Aug. 2018 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Hallo Bernd, ich möchte alle Parts in dem geöffneten Product ändern, also Variante b. Wie kann ich diese Schleife erstellen? Spielt es eine Rolle ob ein Teil mehrfach verbaut ist? In der Schleife wird der Wert dann doch einfach immer wieder neu reingeschrieben, oder? Hat ein Teil diesen Parameter nicht, sollte das Macro am Besten das Teil kommentarlos überspringen. Ist das möglich? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
Beiträge: 236 Registriert: 17.09.2005 Catia V5 R26 Siemens NX11 Fides 10
|
erstellt am: 22. Aug. 2018 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 22. Aug. 2018 10:44 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus Wahrscheinlich ist das machbar. Die Frage ist eher wie viel Aufwand du in das Makro reinstecken willst und kannst (Einarbeitung in die Materie). EDIT: ggf reicht es dir per "Formeleditor" die Parameter zu ändern. Durch einen passenden Filter sollte da nur die gewünschten Paramter Station erscheinen. Für den Abgleich mit einer Excel-Tabelle ist mehr Aufwand nötig und ggf auch ein Anpassung der Methodik sinnvoll. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
Beiträge: 236 Registriert: 17.09.2005 Catia V5 R26 Siemens NX11 Fides 10
|
erstellt am: 22. Aug. 2018 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Ja, das ist wie übliche die große Frage. Und mal wieder hab ich dafür leider nicht so Zeit um mich da weiter einzuarbeiten. Wie aufwendig ist das denn mit einer Schleife? Ich habe das bei Catia irgendwie noch nie selber hinbekommen. Ist das aufwendig? 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: 22. Aug. 2018 18:07 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus Ich hab dir da mal was zusammengebastelt (CATScript). Code: Sub CATMain()Dim oDocument As Document Dim oPart as Part Dim oPartDocument as Part Dim oProduct as Product Dim oRootProduct as Product Dim sParameterName as String sParameterName = "Station" Set oDocument = CATIA.ActiveDocument if TypeName(oDocument) = "PartDocument" then Call ChangeStrParamterByInput(oDocument, sParameterName) end if if TypeName(oDocument) = "ProductDocument" then Set oRootProduct = oDocument.Product for each oProduct in oRootProduct.Products if TypeName(oProduct.ReferenceProduct.Parent) = "PartDocument" then Call ChangeStrParamterByInput(oProduct.ReferenceProduct.Parent, sParameterName) end if next end if end sub Sub ChangeStrParamterByInput(oPartDocument as PartDocument, sParameterName as String) Dim oParameters as Parameters Dim strParamteter As StrParam Dim sInput as String Set oParameters = oPartDocument.Part.Parameters Set strParamteter = Nothing On Error resume next Set strParamteter = oParameters.Item(sParameterName) On error goto 0 if Not strParamteter is Nothing then sInput = InputBox("Bitte Wert für Parameter " & sParameterName & " im Dokument " & oPartDocument.Name & " eingeben.", "Parameterwert eingeben" , strParamteter.ValueAsString) if sInput <> "" then strParamteter.Value = sInput end if end if End Sub
Viel Spaß beim analysieren und nachvollziehen Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deyhawaii Mitglied Konstrukteur
Beiträge: 236 Registriert: 17.09.2005 Catia V5 R26 Siemens NX11 Fides 10
|
erstellt am: 23. Aug. 2018 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Hallo Bernd, danke, funktioniert bestens! Werde mir das mal genauer anschauen, vielleicht bekomm ich ja raus, wo ich immer die Fehler gemacht habe. Werde auch noch versuchen, dass ich den Wert nur einmal eingeben muss und nicht bei jeden Part wieder neu. Wobei ich glaube, dass das wieder nicht so einfach wird. Mal sehen. Auf jeden Fall besten Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Suchtiii94 Mitglied Konstrukteur
Beiträge: 44 Registriert: 23.10.2017 Catia V5 R28 SP3
|
erstellt am: 01. Jul. 2019 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Jul. 2019 13:54 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
Servus Statt der Schleife über alle Products des RootProducts eine Schleife über alle Dokumente der Document-Colletion laufen lassen (Typabfrage einbauen, falls zB noch Drawings offen sind). Und entsprechend erweitern dass auch die Parameter im CATProduct angepasst werden (siehe Doku, Objektbrowser, Forensuche) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Suchtiii94 Mitglied Konstrukteur
Beiträge: 44 Registriert: 23.10.2017 Catia V5 R28 SP3
|
erstellt am: 01. Jul. 2019 14:30 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Müller 1977
|