Autor
|
Thema: Ansicht mit formel/script de/aktivieren (1887 mal gelesen)
|
PaulPanza Mitglied Designer
Beiträge: 12 Registriert: 17.06.2010 Catia V5 R16/18 64bit IBM system
|
erstellt am: 31. Okt. 2011 15:23 <-- editieren / zitieren --> Unities abgeben:
Moin, leider konnte ich im Forum dazu kein Thema finden, also muss ein neues her. Ich benötige für das Automatisieren von bestimmten drawings das Steuern von Ansichten. Am besten sollte diese deaktiviert werden. Weil das aber, nach meinen Infos, nicht möglich ist, würde es auch ein verschieben in den nowshow tun. Leider kann ich dich visibility nicht über einen Standard Parameter steuern, also muss ich wohl eine ebene tiefer. Leider hab ich nur keine Ahnung wie ich das machen muss. Meine VB Kenntnisse sind mehr als eingerostet. Hat hier vielleicht jemand eine Idee? Viele Grüße, Peda 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: 31. Okt. 2011 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für PaulPanza
Servus Bitte Systeminfo ausfüllen. Zum Ausblenden von Ansichten sollte Makrorecorder schon einigermaßen brauchbare Ergebnisse liefern. Nun musst du dir noch überlegen, wie die Ansichten ausgewählt werden könnten: - Schleife über alle Blätter/Ansichten und die entsprechenden Ansichten selektieren (nach welchen Kriterien sollen die Ansichten ausgeblendet werden) - ggf mit der Suchfunktion die Ansichten direkt selektieren (sollte auch über den Makrorecorder funktionieren) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulPanza Mitglied Designer
Beiträge: 12 Registriert: 17.06.2010 Catia V5 R16/18 64bit IBM system
|
erstellt am: 31. Okt. 2011 15:57 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 31. Okt. 2011 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für PaulPanza
Servus Nach welchen Kriterien willst du die Ansichten ausblenden? Am Namen erkennen? alle Ansichten? alle Schnitte? Das Beispiel blendet alle Ansichten deren Namen mit "Test" beginnen aus: Code: Sub CATMain()Dim drawingDocument1 As Document Set drawingDocument1 = CATIA.ActiveDocument Dim selection1 As Selection Set selection1 = drawingDocument1.Selection selection1.Search "(Name=Test* & CATDrwSearch.DrwView),all" Dim selection2 As Selection Set selection2 = drawingDocument1.Selection Dim visPropertySet1 As VisPropertySet Set visPropertySet1 = selection2.VisProperties Set visPropertySet1 = visPropertySet1.Parent visPropertySet1.SetShow 1 selection2.Clear End Sub
Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulPanza Mitglied Designer
Beiträge: 12 Registriert: 17.06.2010 Catia V5 R16/18 64bit IBM system
|
erstellt am: 01. Nov. 2011 11:17 <-- editieren / zitieren --> Unities abgeben:
Erstmal danke. Das Funktioniert soweit. Wenn ich die reaktion nun in abhängigkeit zu einer aktion setzen möchte, muss ich das ganze als "reaction" einbauen, mit einer "check" funktion verbinden und noch einen Parameter definieren oder?
Code:
Sub mainDim drawingDocument1 As Document Set drawingDocument1 = CATIA.ActiveDocument Set parameters1 = drawingDocument1.Parameters Dim selection1 As Selection Set selection1 = drawingDocument1.Selection selection1.Search "(Name=Test* & CATDrwSearch.DrwView),all" Dim selection2 As Selection Set selection2 = drawingDocument1.Selection Dim visPropertySet1 As VisPropertySet Set visPropertySet1 = selection2.VisProperties Set visPropertySet1 = visPropertySet1.Parent Set opara = parameters1.Item("Curtain snap") if opara.value =0 then visPropertySet1.SetShow 1 end if if opara.value =1 then visPropertySet1.SetShow 0 end if selection2.Clear
End sub
Wenn ich nun aber einen boolischen Parameter benutzen will, funktioniert das nicht. Sollte das nicht mit if opara.value =true funktionieren? Wo liegt der Fehler?
[Diese Nachricht wurde von PaulPanza am 01. Nov. 2011 editiert.] 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: 01. Nov. 2011 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für PaulPanza
Servus Lass dir mal des Wert des Parameters ausgeben. (MsgBox opara.value) Was wird dann beim booleschen Parameter ausgegeben? Stimmt der Name des Parameters? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulPanza Mitglied Designer
Beiträge: 12 Registriert: 17.06.2010 Catia V5 R16/18 64bit IBM system
|
erstellt am: 01. Nov. 2011 12:37 <-- editieren / zitieren --> Unities abgeben:
Der Name des Parameters stimmt und der Wert ist "Falsch" oder "Wahr". Aber selbst wenn ich den Wert in Deutsch definiere, also so wie er mir mit msgbox ausgegeben wird, funktioniert das nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulPanza Mitglied Designer
Beiträge: 12 Registriert: 17.06.2010 Catia V5 R16/18 64bit IBM system
|
erstellt am: 01. Nov. 2011 13:02 <-- editieren / zitieren --> Unities abgeben:
Merkwürdig. Wenn ich einen anderen Boolischen Parameter für die Abfrage in dem Script verwende als für den Check, funktioniert der erste If Absatz, der zweite jedoch nicht. Mit einem String Parameter funktioniert beides. Riecht für mich nach nem R16 Bug. Könntest du das Evenutell mal bei mit R19 laufen lassen falls du dir die Zeit dafür nehmen möchtest. Ansonsten trotzdem Danke für die Hilfe 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: 01. Nov. 2011 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für PaulPanza
Servus Also in R19 klappt es so obwohl ich auch CATIA auf deutsch eingestellt habe: Code: if opara.value = 0 thenvisPropertySet1.SetShow 1 else visPropertySet1.SetShow 0 end if
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulPanza Mitglied Designer
Beiträge: 12 Registriert: 17.06.2010 Catia V5 R16/18 64bit IBM system
|
erstellt am: 01. Nov. 2011 15:43 <-- editieren / zitieren --> Unities abgeben:
Ok Danke. Dann liegt der Fehler wohl bei R16 oder bei mir. Andere Frage: Wenn ich jetzt mehrere Zeichnungen mit unterschiedlichen Namen auf einmal bzw. hintereinander ansteuern will, kann ich das noch in einem Script machen oder muss ich da verschiedene laufen lassen.
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: 03. Nov. 2011 20:30 <-- editieren / zitieren --> Unities abgeben: Nur für PaulPanza
|