Autor
|
Thema: Wert für Parameter über Marco setzen (1417 mal gelesen)
|
fal Mitglied Leiter Konstruktion
Beiträge: 18 Registriert: 10.01.2002
|
erstellt am: 22. Mrz. 2011 16:18 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen, vorab - bin absoluter laie was Macro Programmierung betrifft. Meine aufgabenstellung lautet: Scanne alle Catparts eines geöffneten Produktes/mit Unterprodukten auf den Parameter "BERECHNUNG_ABMESSUNG" (Boolscher Wert). Wenn dieser vorhanden, setze Ihn auf den Wert "True". Ist dies eine einfache Aufgabenstellung, oder Bedarf es dazu einer Umfangreichen Schulung? Gruß fal Hat vielleicht jemand eine Lösungs-Macro zur Hand? ------------------ Gruss Frank 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. Mrz. 2011 17:06 <-- editieren / zitieren --> Unities abgeben: Nur für fal
Servus IMHO ist die einfachste Methode: mit der Makroaufzeichung die Suche nach dem Parameter aufzeichnen. Danach das Makro so ergänzen, dass für jedes Element der Wert auf "True" gesetzt wird. zB (ungetestet): Code: Sub CATMain()Dim productDocument1 As ProductDocument Set productDocument1 = CATIA.ActiveDocument Dim selection1 As Selection Set selection1 = productDocument1.Selection Dim opara As Parameter selection1.Search "(Name='BERECHNUNG_ABMESSUNG' & CATKnowledgeSearch.InternalParameter),all" For i = 1 To selection1.Count Set opara = selection1.Item2(i).Value opara.Value = 1 Next End Sub
Gruß Bernd------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fal Mitglied Leiter Konstruktion
Beiträge: 18 Registriert: 10.01.2002
|
erstellt am: 23. Mrz. 2011 07:03 <-- editieren / zitieren --> Unities abgeben:
Das mit dem Macroaufzeichnen und anschliessendem Modifizieren war mir jetzt etwas zu hoch. Der vorgeschlagene macro-Code funzt nicht - oder ist er nur Teil der Lösung? Kurze Erklärung der Schritte wäre von Vorteil. Trotzdem mal Dankeschön.
------------------ Gruss Frank 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: 23. Mrz. 2011 07:20 <-- editieren / zitieren --> Unities abgeben: Nur für fal
Servus Eigentlich sollte das Makro deine Aufgabe komplett erledigen. Was funktioniert nicht? (Fehlermeldung?) Handelt es sich um einen "normalen" Parameter oder ein Userdefind-Parameter (in den Eigenschaften des Parts/Products) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fal Mitglied Leiter Konstruktion
Beiträge: 18 Registriert: 10.01.2002
|
erstellt am: 23. Mrz. 2011 07:41 <-- editieren / zitieren --> Unities abgeben:
hallo Bernd, hab mal die Aufgabe in einem einfachen Beispiel als Datei angehängt. Parameter befindet sich im CatPart unter Parameter\ABMESSUNGSPARAMETER\.. Durchsucht werden soll ein willkürliches Produkt (hier PRODUCT1) In welcher Macro-Programmiersprache ist Dein Code geschrieben - Sorry, bin aber wirklich absoluter Laie im Bereich Macro. Gruß Frank ------------------ Gruss Frank 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: 23. Mrz. 2011 07:53 <-- editieren / zitieren --> Unities abgeben: Nur für fal
Servus Einfach den Code kopieren. Über Tools -> Makros ein neues Makro Typ: CATScript erzeugen und den Code hinein kopieren (alles andere überschreiben) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fal Mitglied Leiter Konstruktion
Beiträge: 18 Registriert: 10.01.2002
|
erstellt am: 23. Mrz. 2011 08:11 <-- editieren / zitieren --> Unities abgeben:
Bernd, Du bist mein Held! Als Pfadfinder hättest Du jetzt Dein Tageswerk schon geschafft - immer eine Gute Tat pro Tag. Die relativ einfache Lösung bestärkt mich darin. Mich zukünftig auch mit der Macroprogrammierung auseinander zu setzen. Gruß Frank ------------------ Gruss Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |