Beziehungen/Familientabelle/2000i / Pro ENGINEER
By Wolf 05. August 2002, 15:39

Hallo zusammen,

in unserer Familientabelle befinden sich eine ganze Reihe von Einträgen, die wir nun mit Lauftoleranzen versehen wollen, und zwar abhängig vom Innendurchmesser di. Ich habe nun folgendes probiert:

if (DI>0)& (DI<59.9)
  g0 = 0.02
endif
if (DI>60)& (DI<99.9)
  g0 = 0.03
/* ERROR: Beziehung hat einen Fehler.
endif
if (DI>0)& (DI<59.9)
  g2 = 0.02
endif
if (DI>60)& (DI<99.9)
  g2 = 0.03
/* ERROR: Beziehung hat einen Fehler.
endif

Mein Problem ist wohl sichtbar. Und noch das:
if (di>0)& (di<59.9)
  g0 = 0.02
  g2 = 0.02
  g3 = 0.02
else
  if (di>60)& (di<99.9)
  g0=0.03
/* ERROR: Beziehung hat einen Fehler.
  g2=0.03
/* ERROR: Beziehung hat einen Fehler.
  g3=0.03
/* ERROR: Beziehung hat einen Fehler.
  endif
Auch hier ist das Problem wohl sichtbar. (mir ist klar, das hier ein endif fehlt).

Weiß hier jemand Rat?
Ach so, in dieser Form funktioniert es problemlos:
if (di>0)& (di<59.9)
  g0 = 0.02
  g2 = 0.02
  g3 = 0.02
endif
Ich brauche doch aber auch noch die anderen Durchmesser

By sadolf 05. August 2002, 16:16

Vielleicht liegt es daran, daß Deine Bereiche Lücken haben, also logisch nicht sauber beschrieben sind.
Probier doch mal:

if di<60
          g0 = 0.02
          g2 = 0.02
          g3 = 0.02
endif

if (di=>60)& (di<100)
          g0=0.03
          g2=0.03
          g3=0.03
endif

By Armin 05. August 2002, 16:21

Hmmm...

wenn du da an den Toleranzen herumspielen willst, wäre es dann nicht einfacher, eine Toleranztabelle zu editieren und unter anderm Namen wieder abzuspeichern?

Dann bekommst Du den Beziehungstext geschenkt, und kannst die Werte in einer schönen (noch schönen alten Pro/E-Editor-) Tabelle eingeben.

By Wolf 05. August 2002, 17:44

Hallo zusammen,

zunächst einmal Danke für Eure Beiträge.
@sadolf: Ich habe deinen Vorschlag geprüft, es funktioniert nicht.
@Armin: Da brauche ich bestimmt noch Nachhilfe bei der Geschichte mit den Toltabellen.
Ich habe aber auch noch probiert. Wechselt man im Teilemodus von Mass auf Symbol, so wird bei den Lauftoleranzen g2 angezeigt. Ändert man jedoch den Wert mit Ändern GeomToleranz, steht hier gp2.
So habe ich es gemacht:
if (DI>0)& (DI<60)
  lauttoloben = 0.02
  LAUFTOLUNTEN = 0.02
GP0 = 0.02
endif
if (DI=>60)& (DI<100)
  LAUFTOLOBEN = 0.03
  LAUFTOLUNTEN = 0.03
GP0 = 0.03
endif
if (DI=>100)& (DI=<195)
  LAUFTOLOBEN = 0.04
  LAUFTOLUNTEN = 0.04
GP0 = 0.04
endif
if (DI=>195.1)& (DI<215)
  LAUFTOLOBEN = 0.05
  LAUFTOLUNTEN = 0.05
GP0 = 0.05
endif
if (DI=>215)
  LAUFTOLOBEN = 0.07
  LAUFTOLUNTEN = 0.07
GP0 = 0.07
endif
In der Familientabelle wird jedoch nicht der Eintrag gp0 geändert (währe wohl naheliegend), sondern g0. Und auf allen Zeichnungen ist nun die Geometrische Toleranz richtig.

Grüße Wolfgang

By sadolf 05. August 2002, 21:47

Fein dass es jetzt geklappt hat. Aber warum hat er die erste Beziehung nicht angemeckert, und die zweite dann doch? 
Es wird doch nicht an den fehlenden Blanks vor und nach dem = liegen? Eigentlich füllt er die alleine auf.

By giatsc 06. August 2002, 12:16

Hallo alle!

Ohne es (um diese Zeit!) nachprüfen zu können, glaube ich, dass der Fehler von der &-Verschlaufung kommt. Ich verwende diese nie., Der Syntax schein ein wenig  "heikel" zu sein...
Anstelle davon würde ich den (lückenlosen) Weg von sadolf konsequent weiterziehen und auf den Kopf stellen, um die &-Anweisung vermeiden zu können, also etwa so:

*\Funktion beschreiben

if di>=100
          g0=0.04
          g2=0.04
          g3=0.04
else
if di>=60
          g0=0.03
          g2=0.03
          g3=0.03
else
          g0=0.02
          g2=0.02
          g3=0.02
endif
endif

By the way:

Solche Beziehungen werden in jedes Teil kopiert und bedeuten Stress, wenn der User aus irgend einem Grund weitere Beziehungen eingeben oder edditieren muss. Meist wird dann das falsche gelöscht. (Ist mir mal bei einem UDF für Passfedernut, welche sich automatisch dem Wellendurchmesser angepasst hat, so passiert. Gut, bei einem Normteil wird dies nicht tragisch sein (Schreibschutz).

Tipp für diesen Fall:
KE-Beziehungen verwenden. (Escheinen nicht in Teil-Beziehungen...)

(c) 2003 www.CAD.de