Autor
|
Thema: Parameter umbenennen (4242 mal gelesen)
|
marlene1 Mitglied
Beiträge: 4 Registriert: 25.10.2009
|
erstellt am: 25. Okt. 2009 16:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bin neu hier und was Makroprogrammierung angeht noch Anfänger. Habe mir auch schon zwei Bücher gekauft(und schon teilweise gelesen), aber ich blicke da noch nicht ganz durch. Hätte da mal ne Frage zu Parameterumbenennung. Kann man Parameter die in fast allen Parts eines Products vorhanden sind mittels Makro umbenennen, wenn das Product aktiv ist. Geht das mit einem suchen und ersetzen (Inputboxen) Ablauf. Ich habe mir schon die im Forum suchen und ersetzen Funktion (für die Namen von Parts und Products) angeschaut. Könnte mir bitte einer sagen, ob ich da auf nem total falschen Dampfer bin. Geht das mit Inputboxen? Danke im Voraus.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. 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: 25. Okt. 2009 18:57 <-- editieren / zitieren --> Unities abgeben: Nur für marlene1
Hallo Marlene und herzlich Willkommen im Forum, ja das geht ohne Probleme. Du bist auf genau dem richtigen weg. Du suchst im Produkt alle Parameter. Diese werden alle in deiner Selektion gespeichert. Dann machst du dir eine For...next Schleife und läufst durch die Selektion. Jetzt brauchst du noch eine Abfrage. Diese identifiziert die Parameter die du umbenennen möchtest z.B. an hand ihres Namens. Wenn ein Parameter umbenannt werden soll machst du eine InputBox und lässt dort vom Anwender den Namen reinschreiben. Ein bisschen kniffelig wird es erst bei dem Cancel Button. D.h. drückt ein Anwender den Cancel Button der InputBox musst du dich entscheiden ob du das ganze Makro abbrechen möchtest oder nur der eine Parameter nicht benannt wird und seinen alten Namen behält. Dies kannst du aber auch erst am Schluss implementieren.
------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marlene1 Mitglied
Beiträge: 4 Registriert: 25.10.2009
|
erstellt am: 25. Okt. 2009 20:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, danke für die schnelle Antwort und das herzlich Willkommen. Das mit der For next Schleife ist mir klar, aber ich weiß nicht wie ich die Parameter im Product ansprechen soll, da sich der Parameter im Part befindet. Ich hab voll das Brett vorm Kopf!!! Danke schon einmal LG Marlene Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 25. Okt. 2009 20:29 <-- editieren / zitieren --> Unities abgeben: Nur für marlene1
Hallo Marlene, es gibt mehrere Möglichkeiten auf Parameter zuzugreifen. Einmal direkt, d.h. alle Parts zu durchlaufen und dort auf die zugehörigen Parameter zuzugreifen. Oder per Suchabfrage, wie Daniel schon erwähnt hatte, alle Parameter (egal ob Part oder Produkt) aufzurufen und auf diese zuzugreifen. Für den Anfang ist es sicherlich sinnvoll über die Suchabfrage zu arbeiten. Code: Dim selection1 As Selection Set selection1 = productDocument1.Selection selection1.Search "Name='Parameter_Name',all" For i = 1 To CATIA.ActiveDocument.selection.Count CATIA.ActiveDocument.selection.Item(i).Value.Name = "Neue_Name" Next
grüße Dominik [Diese Nachricht wurde von V5Playaz am 25. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. 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: 26. Okt. 2009 05:49 <-- editieren / zitieren --> Unities abgeben: Nur für marlene1
Hallo Marlene, also ich gebe Dominik da recht. Versuche es erst einmal mit der Suchanfrage. Hier hast du den Vorteil das du für die Suche nur eine Funktion brauchst search und trotzdem alle Parameter in jedem Bauteil und Unterprodukt das in deinem Root-Produkt verbaut ist findest. Eine suche sucht (wenn nicht explizit anderes eingestellt wird) immer im ganzen Dokument, also im Produkt auch in jedem Part, etc. Die andere Möglichkeit (hat Dominik auch schon erwähnt) wäre eine rekursive Schleife durch dein Produkt zu jagen und die Parameter zu erfassen. Aber das zählt in VB schon zur höheren Programmierung und ist nicht geeignet für Beginner In dem Sinne wünsche ich einen angenehmen Arbeitstag
------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. 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: 26. Okt. 2009 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für marlene1
Hallo Marlene, hatte gerade mal ein wenig Zeit um habe dir da mal was zusammengebastelt. Der Code ist komplett mit Kommentaren beschrieben und ich hoffe du kommst damit weiter. Das ganze sucht jetzt alle Parameter in einem Produkt. Erfüllt ein Parameter das Kriterium = Name = "Test", kommt die InputBox. Wird diese umbenannt bleibt der alte Name (also in dem Fall "Test" bestehen). Am Schluss gibt es noch eine ordentliche Ausgabe die über eine Funktion gelöst wurde. Das ganze ist eine *.bas Datei (Sicherung aus Visual Basic Editor). Du musst also den Visual Basic Editor öffnen, in eine Library klicken und dort über File -> Import die *.bas Datei importieren. ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marlene1 Mitglied
Beiträge: 4 Registriert: 25.10.2009
|
erstellt am: 26. Okt. 2009 19:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, vielen vielen Dank für das Script, die ausführliche Erklärung und deine Zeit. Das hat mir sehr geholfen den Ablauf etwas zu verstehen. Habe mich aber trotzdem dazu entschlossen noch einen Makrokurs zu machen...... Ich habe versucht in deinem (Ich hoffe das ist in Ordnung??) Script eine zweite Inputbox einzufügen.Beim Ablauf des Makros erscheint diese aber immer wieder. Habe ich die Box an der falschen Stelle eingefügt? Ausschnitt: '**********************************Deklaration Variablen********************************** Dim oFenster As Windows Dim oDoc As Document Dim ObjType As String Dim oSel As Selection Dim i As Integer Dim Box As String Dim myParameter As Parameter Dim readInputBoxValue As String Dim myInputBoxValue As String Dim FoundParameterCount As Integer Dim RenamedParameterCount As Integer Dim StayedParameterCount As Integer ..... ..... ..... 'Schleife durch alle Selektierten Parameter For i = 1 To oSel.Count 'Hier wird dem Objekt "myParameter" der aktuelle Parameter aus der Selektion zugewiesen Set myParameter = oSel.Item(i).Value
readInputBoxValue = InputBox ("Welcher Buchstabe oder Zahl soll ersetzt werden", "Neuer Name für den Parameter: """) 'Abfrage welche Parameter umbenannt werden sollen. In diesem Beispiel alle die Test heißen If myParameter.Name = readInputBoxValue Then 'Zähler der gefundenen Parameter die das Kriterium erfüllen erhöhen FoundParameterCount = FoundParameterCount + 1 'Hier erscheint die InputBox und der Anwender muss einen Wert eingeben myInputBoxValue = InputBox("Bitte geben Sie den neuen Namen ein", "Neuer Name für den Parameter: " & myParameter.Name, "") 'Gibt er keinen Wert ein und drückt OK oder drückt er CANCEL wird eine Box angezeigt und der Name bleibt gleich ....... ....... .......
Hättest Du da vielleicht noch einen Tip für mich? Danke im Voraus. Grüße Marlene 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. Okt. 2009 19:53 <-- editieren / zitieren --> Unities abgeben: Nur für marlene1
Servus Setze die Zeile "ReadInputBoxValue ...." mal vor die Schleife (also vor "Schleife durch alle Selektierten Parameter") Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 26. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. 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: 27. Okt. 2009 05:47 <-- editieren / zitieren --> Unities abgeben: Nur für marlene1
|
marlene1 Mitglied
Beiträge: 4 Registriert: 25.10.2009
|
erstellt am: 29. Okt. 2009 20:10 <-- editieren / zitieren --> Unities abgeben:
|