| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
Autor
|
Thema: Parameterwerte in Regeln (2187 mal gelesen)
|
achulio Mitglied

 Beiträge: 98 Registriert: 24.03.2003
|
erstellt am: 17. Aug. 2005 09:53 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Ich habe folgende Problemstellung: Sobald ein "freier" Parameter in einem UDF einen definierten Wert übersteigt, soll eine Warnung angezeigt werden UND der Ursprungswert des Parameters beibehalten werden. Ersteres ist kein Problem, aber wie kann ich auf den Ursprungswert zugreifen bzw. ihn referenzieren? Beispiel: Ein Radius hat einen maximal erlaubten Wert von 10mm. Der momentane (Standard-)Wert ist 8,5mm. Instanziiert nun ein Benutzer das UDF und trägt 12mm als Radiuswert ein, soll der Wert bei 8,5mm bestehen bleiben. Ich wäre sehr dankbar für Tips! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PSchlebes Mitglied CAD Konstrukteur (Dipl.-Ing.)

 Beiträge: 50 Registriert: 27.09.2004 PC Typ : DELL Prozessor : Pentium RAM : 6 GB Grafikkarte : NVIDIA Betriebssys.: Windows XP Pro SP3 CAD-System : Catia V5 R17
|
erstellt am: 17. Aug. 2005 12:51 <-- editieren / zitieren --> Unities abgeben:          Nur für achulio
Hallo! Also Du definierst in einem Part einen ganz normalen Parameter? Diese Lösung funktioniert für beide Varianten. Du klickst Dein Maß in dem Sketcher doppelt oder aber den Parameter. Anschließend öffnet sich ein Fenster in dem Du die Werte verändern kannst. In dem Teilbereich wo ein Maß steht kannst Du mit der rechten Maustaste ein Kontextmenü öffnen. Dort gibt es die Option => Bereich => Bearbeiten. Hier kannst Du einen Ober- und Unterbereich angeben. Beim Überschreiten wird eine Meldung angezeigt. Ich hoffe ich konnte Dir damit helfen. ------------------ Mit freundlichen Grüßen, Patrick Schlebes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
logan Mitglied MSc Distributed Computing Systems Engineering Dipl.-Ing. (FH) Softwaretechnik
 
 Beiträge: 111 Registriert: 07.02.2005
|
erstellt am: 17. Aug. 2005 15:19 <-- editieren / zitieren --> Unities abgeben:          Nur für achulio
Hallo Achulio, das selbe Problem hatte ich auch. Der Anwender gibt einen ungültigen Wert ein und das User Feature läuft in einen Update Error. Erstelle in der Knowledge Advisor Workbench eine Reaction. Wähle den zu korregierenden Parameter as Quelle der Reaction aus. Als mögliches Ereignis steht ValueChanged zur Verfügung. Schreibe folgende Regel in die Action der Reaction. if (parameter >= 90mm) { parameter = 90mm } und voila der Parameter wird immer wieder auf in diesem Fall 90mm gesetzt, wenn ein Wert größer als 90mm eingegeben wird. Logan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
logan Mitglied MSc Distributed Computing Systems Engineering Dipl.-Ing. (FH) Softwaretechnik
 
 Beiträge: 111 Registriert: 07.02.2005 NX 8.0.1.5 WinXP 32 Bit / WinXP 64 Bit Dell Precision M4500 / HP Z400 4GB / 12GB Nvidia Quadro 512MB / Nvidia Quadro 4000
|
erstellt am: 17. Aug. 2005 15:33 <-- editieren / zitieren --> Unities abgeben:          Nur für achulio
|
achulio Mitglied

 Beiträge: 98 Registriert: 24.03.2003
|
erstellt am: 19. Aug. 2005 09:20 <-- editieren / zitieren --> Unities abgeben:         
|
achulio Mitglied

 Beiträge: 98 Registriert: 24.03.2003
|
erstellt am: 19. Aug. 2005 11:38 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von logan:
if (parameter >= 90mm) { parameter = 90mm }und voila der Parameter wird immer wieder auf in diesem Fall 90mm gesetzt, wenn ein Wert größer als 90mm eingegeben wird.
Hallo logan, leider habe ich bei der Implementierung deiner Regel ein Problem: ---- The relation generates a cycle within rule.1, it will be inactivated ---- Ich habe schon drauf geachtet, dass kein >=, sondern ein > angewandt wird, und der neue Wert deutlich unter dem angewandten liegt... leider immer die gleiche Meldung  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
logan Mitglied MSc Distributed Computing Systems Engineering Dipl.-Ing. (FH) Softwaretechnik
 
 Beiträge: 111 Registriert: 07.02.2005 NX 8.0.1.5 WinXP 32 Bit / WinXP 64 Bit Dell Precision M4500 / HP Z400 4GB / 12GB Nvidia Quadro 512MB / Nvidia Quadro 4000
|
erstellt am: 23. Jan. 2007 22:50 <-- editieren / zitieren --> Unities abgeben:          Nur für achulio
Hallo achulio, bitte nicht vergessen, dass ich von einer Reaction schrieb. Rules (Regeln) wurden von DS anders programmiert. Ich habe gerade keine CATIA Runtime hier. Versuch doch mal folgendes: Spezifikationsbaum - param1=90mm - param2=? - formel1(x)=(param2=param1) wobei Activate=false Rule: if (param2 >= 90mm) { formel1(x).Activate = true } formel1(x).Activate = false Anmerkung: Tools/Options Relations synchron setzen. Es kann sein, dass die beiden Parameter mit der Formel nach ausführen der Rule verknüpft bleiben (Activate=true bleibt). Aber einen Versuch wäre es Wert. Viele Grüße, Logan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
logan Mitglied MSc Distributed Computing Systems Engineering Dipl.-Ing. (FH) Softwaretechnik
 
 Beiträge: 111 Registriert: 07.02.2005
|
erstellt am: 23. Jan. 2007 23:06 <-- editieren / zitieren --> Unities abgeben:          Nur für achulio
Hallo achulio, anbei der Screenshot mit einer (leicht) verbesserten, getesteten Lösung. Verhalten: Egal welcher Wert größer 90mm bie Length.1 eingegeben wird, es wird immer sofort auf 90mm zurückgesetzt (Automatic Update ein, Synchrone Relations [Formula] ja). Jeder Wert kleiner gleich 90mm kann eingegeben werden. Hierbei sieht man auch noch mal die Unterschiede von Rule und Reaction. Die Reaction erlaubt eine feinere Steuerung und ich kann mir häufig ein paar Hilfs-Features einsparen. Viele Grüße, Logan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |