Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  regeln/reaktionen und msgbox

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
Autor Thema:  regeln/reaktionen und msgbox (3601 mal gelesen)
Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

erstellt am: 28. Feb. 2010 18:00    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 leute,

mein problem ist dass ich nach 20min googlen nicht draufgekommen bin wie ich zur catia online hilfe komme?!?!?... irre.

wenn mir da vielleicht jemand was sagen könnte, obwohl das nicht das eigentliche problem ist.

Mein problem:
habe einen Parameter, den ich verändere. Möchte ganz einfach eine MsgBox ausgeben, falls der Parameter unter ein Minimum gesetzt wird: "Parameter muss mindestens 120mm sein" -> OK

Bitte wie geht das, da ich am anfang meiner CATIA Regel,Reaktion und VB Karriere stehe.

besten Dank im Vorraus und LG

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 28. Feb. 2010 18:08    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 Heinkes 10 Unities + Antwort hilfreich

Hallo,
das geht doch ganz einfach über eine If-Abfrage:

if Parameter < Wert then
MsgBox "Der Wert ist zu klein!"
end if

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Homepage von Jens Hansen
Kochbuch - CATIA V5 automatisieren
   

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

Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

erstellt am: 28. Feb. 2010 19:08    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

hm

naja eben nicht... ich mein ich kann ja ein bisschen programmieren.
Aber: der Regel-Editor erkennt die Funktion "MsgBox" nicht!
was kann ich tun?


if (S<140mm)
MsgBox("S muss größer als 140mm sein")

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 28. Feb. 2010 19:39    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 Heinkes 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Heinkes:
hallo leute,

mein problem ist dass ich nach 20min googlen nicht draufgekommen bin wie ich zur catia online hilfe komme?!?!?... irre.



Viellicht kann dir dein Admin sagen, wohin er die installiert hat. Wenn er sie installiert hat.

Zitat:

wenn mir da vielleicht jemand was sagen könnte, obwohl das nicht das eigentliche problem ist.

Mein problem:
habe einen Parameter, den ich verändere. Möchte ganz einfach eine MsgBox ausgeben, falls der Parameter unter ein Minimum gesetzt wird: "Parameter muss mindestens 120mm sein" -> OK

Bitte wie geht das, da ich am anfang meiner CATIA Regel,Reaktion und VB Karriere stehe.

besten Dank im Vorraus und LG


Die Rule-Funktion kennt nur eine Funktion MessageNLS, mit der ein String ausgegeben wird, der aus einem Katalog kommt.

Alternativ kannst du es mit einer Action versuchen. Da gibt es eine Funktion Message.

------------------
Meine Firma  |  Website zum Buch Technisches Zeichnen mit CATIA V5 | Mein CATIA-Blog

Wie stelle ich meine Fragen richtig?

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 28. Feb. 2010 20:02    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 Heinkes 10 Unities + Antwort hilfreich

Hallo Heinkes,

du musst das sinngemäß so in der Regel schreiben:

if Parameter <120mm
{Message("Parameter muss mindestens 120mm sein" )}

Klammern und "-Zeichen müssen sein, die geschweiften Klammern kann man bei einfachen Regeln weglassen.

------------------
Gruß
Mörchen

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

Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

erstellt am: 28. Feb. 2010 20:26    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 Mörchen:
Hallo Heinkes,

du musst das sinngemäß so in der Regel schreiben:

if Parameter <120mm
{Message("Parameter muss mindestens 120mm sein" )}

Klammern und "-Zeichen müssen sein, die geschweiften Klammern kann man bei einfachen Regeln weglassen.


Danke funktioniert wie immer!

Kompetent und schnell! very nice
lg

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

Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

Fujitsu Celsius H
i7 M620 2.67Ghz
8.00 GB RAM
NVIDIA Quadro F880
Windows XP Professional 64Bit
NX7.5.2.5
CATIA V5 R19
Solid Edge ST4

erstellt am: 03. Mrz. 2010 13:21    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 leute,

ich hätte noch eine weitere Frage:

Ich möchte dass die auswahl einer bestimmten Berechnungsformel abhängig ist von der Wahl einer vorigen eingabe.


L1=300mm außer: K>= 300mm und L2=300mm+0,8*K dann L1=600mm

L2=200mm+K außer: K>=300mm dann kann Hersteller Formel :L2=300+0.8*K wählen.

L1 ist somit abhängig von L2... und ich weis nicht wie ich

a) die wahl der einen oder der anderen Formel realisieren soll am geschicktesten und

b) in einer Regel in einem "if" den parameter von 2 Eingaben abhängig mache?... 2fach verschachteltes if? oder gehts eleganter?

beste Grüße

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 04. Mrz. 2010 19:24    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 Heinkes 10 Unities + Antwort hilfreich

Hallo Heinkes,

du musst die ganze in ein Regel schreiben.
Was sind deine Eingangsgrößen, d.h. welche Werte soll der Benutzer einstellen?
Das wird mir aus deinen Beitrag nicht klar.

Eingangsgröße: K
if K>=300mm
{L1=600mm
L2=300mm+0,8*K}
else
{L1=300mm
L2=200mm+K}

ist es etwa so gemeint?

Ab einer Punkt geht es nicht eleganter als verschachtelte If-Funktionen.

Gruß,
Zoltan

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

Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

erstellt am: 04. Mrz. 2010 21:21    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

Ich möchte dass die auswahl einer bestimmten Berechnungsformel abhängig ist von der Wahl einer vorigen eingabe.


L1=300mm außer: K>= 300mm und L2=300mm+0,8*K dann L1=600mm
hallo,

Der User gibt einen Parameter K=300mm ein.

dann kontrolliere ich:

If(K<300mm)
{
l2=200+K
}

else if(K>=300m und (User wählt Formel:L2=300+0.8K))
{
L2=200+0.8K
}

Der User hat also die möglichkeit aus zwei unterschielichen formeln für L2 zu wählen, dies ist aber abhängig von K.

hoffe es ist einigermaßen klar.


lg und danke für die Antwort

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 05. Mrz. 2010 19:30    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 Heinkes 10 Unities + Antwort hilfreich

Hallo,

jetzt verstehe ich die Aufgabe etwas besser. Ich muss gleich sagen, es ist nicht einfach lösbar.
Ein Problem ist, dass die Auswahlliste einer Parameter man nicht steuern kann.
Eine andere Tatsache ist, dass man in einen Rule solche Abläufe nicht programmieren kann, zumindest nicht in der Form, wie du es meinst.

Ich zeige dir 2 Möglichkeiten:
1) Einfach, aber nicht so schön. Ein Parameter für K und ein Parameter mit allen Formeln gleichzeitig in der Auswahlliste.
2) Komplett, deswegen auch kompliziert. Ein Parameter für K. 2 Parameter für die Formel, die je nach Zustand von K ins hide/show gesetzt werden.

Die Vorgaben (was soll nach was geschehen ist mir aus deiner Beschreibung immer noch nicht klar. Ich gebe dir aber ein Lösungsweg und du kannst deine Lösung anschließend hier veröffentlichen.

1) K ist ein Parameter der Typ Length.
Formel ist ein Parameter der Typ String mit folgender Auswahlliste:
"L2=300mm+0,8*K", "Originalformel", "Anderer Formel"

Code:
If(K<300mm and Formel=="Originalformel")
{
l2=200+K
}
else if(K>=300m and Formel=="L2=300mm+0,8*K")
{
L2=200+0.8K
}
und so schön jede Möglichkeit definieren. Vielleicht habe ich deine Formulierung falsch verstanden und es reicht dir diese Möglichkeit auch.

Wenn nicht, dann:

2) K ist ein Parameter der Typ Length.
Formel1 ist ein Parameter der Typ String mit folgender Auswahlliste:
"L2=300mm+0,8*K", "Originalformel" (die Möglichkeiten für Formel, falls K<300mm)
Formel2 ist ein Parameter der Typ String mit folgender Auswahlliste:
"Anderer Formel", "Originalformel" (die Möglichkeiten für Formel, falls K>=300mm)

Code:
if K>=300mm
{Formel2.Show=true
Formel1.Show=false}
else
{Formel2.Show=false
Formel1.Show=true}

//hier kommen dann die Fallunterscheidungen, wie in 1. Du musst aber für die Prüfung die richtige Formelparameter auswählen.
//Aufpassen: auch ausgeblendete Parameter haben einen Wert.)


Du kannst die Abfrage in der Form von "K und Formel" durch die verschachtelte Abfrage tauschen, falls es dir besser gefällt.

Wer was besseres weiß, soll sich melden.

Eine saubere Definition der Entscheidungsbaum wäre aber nicht schlecht. Ich würde dir auch raten, erst mit dieser anzufangen:
Eine Tabelle erstellen, wo die Zeilen die mögliche Formel sind und die Spalten die Wertebereiche von K. In die Kreuzung jeweils die erwartete Werte von L1 und L2.

Gruß,
Zoltan

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

Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

erstellt am: 09. Mrz. 2010 09:17    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 formuliere nun noch einmal die logik, die diese Abfrage besitzen soll:

K<280mm dann BR_Strecke=260mm+K
K>=280mmm dann kann Hersteller zwischen BR_Strecke=260mm+K und BR_Strecke=260mm+0.8*K wählen.


ich hab das jetzt ausprobiert und zwar folgendermaßen:

Parameter: (Länge): K=300mm
Parameter: (String) mit mehreren Werten:

BR_Formel_Auswahl=280mm+K
BR_Formel_Auswahl=280mm+0.8*K


Nun habe ich BR_Formel_Auswahl mit einer Längenbemaßung in einer Skizze verknüpft:

ich bekomme folgende Fehlermeldung: "falsche Art der ARgumentnummer 1 in Operator = (müsste Zeichenfolge und nicht Länge sein)"

ich glaube das problem ist, dass ich einen Parameter mit typ string nicht auf ein längenmaß hängen kann? korrekt?

mfg

[Diese Nachricht wurde von Heinkes am 09. Mrz. 2010 editiert.]

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 09. Mrz. 2010 19:21    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 Heinkes 10 Unities + Antwort hilfreich

Hallo,

der Formel in der String mit Mehrfachauswahl ist nur die "Benutzeroberfläche".
In CATIA kannst du diesen Text nicht direkt als Formel verwenden.
Du musst in der Rule nach der aktueller Wert der Parameter entscheiden, nach welcher Formel der Wert zugewiesen werden soll.
In deinem Fall würde der Rule wie folgt aussehen:

Code:
if K<280mm
{
  BR_Strecke=260mm+K
}
else
{
  if BR_Formel_Auswahl=="280mm+K"
  {
    BR_Strecke=260mm+K
  }
else
{
  BR_Strecke=260mm+0.8*K
}
}

Kann sein, dass du anstatt . , in die Formeln schreiben musst.
Kann sein, dass der String mit ' getrennt werden muss anstatt ".

Du kannst die ganze noch schöner machen, indem du mit folgender Code am Anfang der Rule die Formelauswahl ausblendest, falls der Benutzer kein Formel wählen soll:

Code:
if K>=280mm
{
BR_Formel_Auswahl.Show=true
}
else
{
BR_Formel_Auswahl.Show=false
}

Gruß,
Zoltan

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

Heinkes
Mitglied



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

Beiträge: 123
Registriert: 04.06.2008

erstellt am: 09. Mrz. 2010 20:07    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,

hab es jetzt leicht angepasst und implementiert! HERZLICHSTEN DANK VORAB!

Die Catia Hilfe hat mir leider nicht im Geringsten verwetbare Informationen bereitgestellt. Da bevorzuge ich dann doch lieber CAD.de 

Lösung:

if (S<280mm)
{
  `Offset_BR` =260mm+S
  BR_Formel_Auswahl.Show=false
}

else
{
  if BR_Formel_Auswahl=="260mm+S"
  {
    `Offset_BR` =260mm+S
  }
else
{
  `Offset_BR` =260mm+0.8*S
  BR_Formel_Auswahl.Show=true
}
}

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)2023 CAD.de | Impressum | Datenschutz