Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Allgemein
  Parameterwerte in Regeln

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von achulio an!   Senden Sie eine Private Message an achulio  Schreiben Sie einen Gästebucheintrag für achulio

Beiträge: 98
Registriert: 24.03.2003

erstellt am: 17. Aug. 2005 09:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.)


Sehen Sie sich das Profil von PSchlebes an!   Senden Sie eine Private Message an PSchlebes  Schreiben Sie einen Gästebucheintrag für PSchlebes

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für achulio 10 Unities + Antwort hilfreich


Bereich_bestimmen_01.jpg

 
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


Sehen Sie sich das Profil von logan an!   Senden Sie eine Private Message an logan  Schreiben Sie einen Gästebucheintrag für logan

Beiträge: 111
Registriert: 07.02.2005

erstellt am: 17. Aug. 2005 15:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für achulio 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von logan an!   Senden Sie eine Private Message an logan  Schreiben Sie einen Gästebucheintrag für logan

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für achulio 10 Unities + Antwort hilfreich

Warnungen können mit dem folgenden Statement in der Action der Reaction angezeigt werden:

Message("Don't touch this!")

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

achulio
Mitglied



Sehen Sie sich das Profil von achulio an!   Senden Sie eine Private Message an achulio  Schreiben Sie einen Gästebucheintrag für achulio

Beiträge: 98
Registriert: 24.03.2003

erstellt am: 19. Aug. 2005 09:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Jo Prima!
PSchlebes, Logan, Vielen Dank für eure nützlichen Tips!
Das hat mir weitergeholfen!
achulio

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

achulio
Mitglied



Sehen Sie sich das Profil von achulio an!   Senden Sie eine Private Message an achulio  Schreiben Sie einen Gästebucheintrag für achulio

Beiträge: 98
Registriert: 24.03.2003

erstellt am: 19. Aug. 2005 11:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von logan an!   Senden Sie eine Private Message an logan  Schreiben Sie einen Gästebucheintrag für logan

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für achulio 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von logan an!   Senden Sie eine Private Message an logan  Schreiben Sie einen Gästebucheintrag für logan

Beiträge: 111
Registriert: 07.02.2005

erstellt am: 23. Jan. 2007 23:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für achulio 10 Unities + Antwort hilfreich


RuleLösung_R16.JPG

 
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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz