Autor
|
Thema: bedingte Sichtbarkeit/Auswählbarkeit (1204 mal gelesen)
|
ribonukleinsaeure Mitglied CAD-Werkstudent
Beiträge: 4 Registriert: 21.09.2011
|
erstellt am: 21. Sep. 2011 16:10 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich habe jetzt schon den halben Tag das Forum durchsucht, aber so wirklich passt keine Lösung aus anderen Beiträgen. Deshalb ein eigener Thread für folgendes Problem: Ich versuche, per Law Editor auf die Attribute .Show und .Pick eines bestimmten Elements (z.B. einer Linie) zuzugreifen und sie abhängig von der jeweiligen Stellung eines anderen Elements (z.B. einer anderen Linie) unsichtbar bzw. unauswählbar zu machen. Ich habe schon probiert ein Makro zu schreiben, aber (a) habe ich gar keine Erfahrung darin, (b) hilft mir das Macro Recording nur bedingt weiter und (c) brauche ich eigentlich eine Lösung die ohne extra Macro funktioniert. Daher die Idee, das im Law Editor zu machen. Ich habe schon gelesen, dass man ohne KWA Lizenz (ist hier der Fall) nur über einen Umweg if Bedingungen programmieren kann, siehe hier: http://ww3.cad.de/foren/ubb/Forum137/HTML/003052.shtml Aber bis dahin komme ich gar nicht, weil ich leider schon an der richtigen Syntax scheitere. Laut dem Language Browser Panel im Law Editor heißen diese Attribute .Pick und .Show, sind vom Typ her Boolean und sind auch modifizierbar. Wie übersetzte ich das jetzt in sinnvolle Syntax? Habe es so probiert:
Code: if (`Geometrical Set.1\Line.9\Angle`= 0deg ) {`Geometrical Set.1\Line.9`.Show = false}
Bitte um Hilfe/Erleuchtung! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ribonukleinsaeure Mitglied CAD-Werkstudent
Beiträge: 4 Registriert: 21.09.2011
|
erstellt am: 21. Sep. 2011 16:36 <-- editieren / zitieren --> Unities abgeben:
Okay, habe mittlerweile begriffen, dass ich innerhalb eines Laws mit formalen Parametern arbeiten muss. Bei der Syntax bekomme ich keine Fehlermeldung: Code: if ( FormalAngle == 0deg ) { FormalVisibility = true } else { FormalVisibility = false }
Aber wie definiere ich jetzt eine Formel, die das ganze mit dem eigentlich Element verknüpft? Ich kann ja nicht einfach so auf Visibility o.ä. zugreifen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kne Mitglied System-Ingenieur
Beiträge: 88 Registriert: 16.11.2007 Intel Xenon 2 x 2,53Mhz 12 GB Ram NVIDIA Quadro Fx 1800 Vista 64bit CATIA v5R18 + v5R19
|
erstellt am: 21. Sep. 2011 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für ribonukleinsaeure
Hallo, du brauchst zuerst ein Object (z.B. deine besagt Linie), um diese dann weiter zu verarbeiten. Ich würde sagen dein Vorhaben ist mit Laws nicht umsetzbar, da du wenn ich das richtig verstanden habe, das Objekt gar nicht kennst, sondern erst suchen musst. Ich würde sagen, dass du dazu auf jeden Fall VBA nutzen musst, bei dessen Umgang du zumindest forgeschrittene Kenntnisse haben solltest. Sehen das die anderen auch so? ------------------ Grüße aus Köln Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ribonukleinsaeure Mitglied CAD-Werkstudent
Beiträge: 4 Registriert: 21.09.2011
|
erstellt am: 21. Sep. 2011 18:11 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Kne: ...da du wenn ich das richtig verstanden habe, das Objekt gar nicht kennst, sondern erst suchen musst.
Sorry, da habe ich mich wohl ungenau ausgedrückt. Ich weiß, dass das Element eine Linie ist. Die Idee ist, dass abhängig von der Winkelposition dieser einen Linie verschiedene andere Linien zu sehen sind (oder eben nicht). Ändert das die Lage? Aber danke für den Hinweis. VBA war genau die Antwort, die ich befürchtet habe 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: 21. Sep. 2011 22:30 <-- editieren / zitieren --> Unities abgeben: Nur für ribonukleinsaeure
Servus Wenn du Linie auch deaktivieren könntest würde es mit der (normalen) Formel für die Aktivität: `Geometrical Set.1\Line.9\Angle`== 0deg bzw `Geometrical Set.1\Line.9\Angle`<> 0deggehen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ribonukleinsaeure Mitglied CAD-Werkstudent
Beiträge: 4 Registriert: 21.09.2011
|
erstellt am: 22. Sep. 2011 10:02 <-- editieren / zitieren --> Unities abgeben:
Nein, leider klappt der Ansatz mit der Activity nicht, weil bestimmte Linien auf einander aufbauen (bzw. auf Ebenen liegen, die von den Kurven abhängen). Wenn ich da eine der Ursprungslinien deaktiviere, bricht mir die restliche Konstruktion komplett weg. Grundsätzlich soll ein Referenzpunkt angegeben werden, dann wird darin ein Pseudo-Koordinatensystem gelegt. "Pseudo" deswegen, weil es aus einzelnen Linien aufgebaut sein soll, deren Winkel man per drag&drop verändern können soll. Und die Konstruktion soll ihr Lage und Form daran anpassen. Meine eigentliche Lösung ist einfach: Ich definiere ein Zwischen-KoSy per Euler Winkel und erzeuge dann noch ein weiteres KoSy per Achsendrehung. Damit habe ich drei Winkel, und kann das KoSy sehr einfach über Parameter aus dem Strukturbaum heraus drehen und wenden. Easy, ein paar Klicks. Aber scheinbar noch nicht einfach genug für die entsprechenden Anwender. Daher die grafische Lösung als Versuch. Im Grunde ist diese Konstruktion viel zu aufwändig. Aber es soll eben ein graphisches Tool werden, um Leuten die Positionierung zu vereinfachen, die sich nicht mit Catia auskennen und trotzdem Teile im Bauraum manipulieren wollen. Grüße! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|