Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Funktion in Pro/E 2001i

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 Creo
  
BOM Assistant für Stücklistenerstellung , eine App
Autor Thema:  Funktion in Pro/E 2001i (1258 mal gelesen)
unbekannt verzogen
Mitglied



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

Beiträge: 92
Registriert: 19.04.2006

PrÖ WF4 M120
OS: WinXP Pro, SP2
GraKa: NVIDIA Quadro FX 3400/4400
Prozessor: Arbeit: P4 3,4 GHz
RAM: 2 GB

erstellt am: 19. Apr. 2006 09:40    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,

gibt es die Möglichkeit, in den Beziehungen eine Funktion zu erstellen?

"WERT" ist eine Gleitkommazahl und soll nun auf eine bestimmte Anzahl Nachkommastellen gerundet  werden. Dazu wird momentan aufwendig für jede Variable eine Routine durchlaufen, die der Anzahl der  Variablen entspricht.
Das sieht dann so aus:
WERTNEU=itos(floor(WERT))+"."+itos((WERT-floor(WERT))*10)

Für einen weiteren Wert muß dies kopiert und geändert werden. Ihr seht, daß dies bereits bei wenigen Werten recht aufwendig und fehlerträchtig wird. Der Faktor 10 gibt an, daß es sich um eine Nachkommastelle handelt, bei 100 sind es zwei, bei 1000 drei usw.

Nun stelle ich mir eine Funktion vor, die ich in den Beziehungen einmal definiere und dann nur noch  mit den Parametern aufrufe:

WERTNEU=Runden(WERT, NACHKOMMASTELLEN)

Die Funktion "Runden(WERT, NACHKOMMASTELLEN)" stelle ich mir so vor (in Anlehnung an Pascal versuche ich es mal):

FUNCTION Runden(WERT, NACHKOMMASTELLEN): String
BEGIN
RESULT=itos(floor(WERT))+"."+itos((WERT-floor(WERT))*10^NACHKOMMASTELLE)
END;

Das RESULT weist man dann der neuen Variablen (WERTNEU, ein Text) zu. Der Parameter NACHKOMMASTELLE  steuert, wieviele Nachkommastellen angezeigt werden.
Der weitere Charme wäre eine einfache Wartbarkeit der Funktion im Hinblick auf eine Erweiterung und  Fehlersuche.

Der Aufruf soll bspw. dann wie folgt lauten:
LAENGE=Runden(123.4567, 2)
und gibt für LAENGE dann einen Wert von 123.46 wieder.

Ist so etwas möglich oder ist die momentane Lösung die einzige?

Unbekannt verzogen

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

Michael 18111968
Moderator
F&E & CAD




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

Beiträge: 4893
Registriert: 25.07.2002

Wildfire 4 M220 (+SUT 2012)
PDMLink 9.1 M050
NVIDIA Quadro FX 1700
Intel DualCore E8400 / 8GB
WinXP 64 Prof. SP2

erstellt am: 19. Apr. 2006 09:57    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 unbekannt verzogen 10 Unities + Antwort hilfreich

Hilft das hier:
http://ww3.cad.de/foren/ubb/Forum12/HTML/004261.shtml

??

------------------
Viele Grüße aus Heilbronn & Umgebung,
Michael.

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

unbekannt verzogen
Mitglied



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

Beiträge: 92
Registriert: 19.04.2006

erstellt am: 19. Apr. 2006 10:13    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,

leider bestätigt das meine Vermutung, daß es nicht in der gewünschten Weise funktioniert.
Danke für die Hilfe!

Unbekannt verzogen

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

j.sailer
Mitglied
Diplom-Ingenieur (FH)


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

Beiträge: 1040
Registriert: 29.05.2001

Dienstleister, immer was der Kunde einsetzt. Z. Z. WF 3.0 M080 + Intrlaink 3.4

erstellt am: 19. Apr. 2006 11: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 unbekannt verzogen 10 Unities + Antwort hilfreich

Ich frage mal wofür Du das brauchst? Geht es um die Darstellung in Notizen, Tabellen, von Bemassungswerten etc. oder möchtest Du mit dem gerundeten Wert weiterrechnen. Für alle Darstellungssachen von Werten, kann man Pro/E angeben wieviel Nachkommastellen angezeit werden und dann rundet das System automatisch.

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

unbekannt verzogen
Mitglied



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

Beiträge: 92
Registriert: 19.04.2006

erstellt am: 19. Apr. 2006 12:37    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,

es geht um die Darstellung im Zeichnungskopf.
Die Werte sollen entsprechend gerundet und dann als Text im Zeichnungskopf ausgegeben werden.
wie im Link angegeben, ist itos() nicht wirklich brauchbar, da es alle Nachkommastellen bei der Wandlung von Zahl in Text abschneidet. Die Erweiterung mit dem Paramter .[1] in einer Notiz halte ich für nicht machbar, da nicht immer Werte gerundet werden müssen und dann somit im Text eventuell 1.0000 steht. Ferner ist auch die Angabe unterschiedlich, also es sind nicht immer zwei Nachkommastellen erforderlich, mal können es drei oder auch nur eine sein.

Schade ist, daß Pro/E weder eine vernünftige Funktion zum Runden bereitstellt (vergleichbar den round() aus Pascal) noch eine vernünftige Methode um Zahlen, so wie sie sind, in einen Text zu wandeln.

Unbekannt verzogen

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

U_Suess
Moderator
CAD-Admin / manchmal Konstrukteur




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

Beiträge: 10679
Registriert: 14.11.2001

CREO 8.0.6.0 (+Geniustool für Creo 10.0.1)
PDMLink 12.0.2.8
NTSI Contender E64 SC8 mit
NVIDIA Quadro P4000
Intel Core i7-10700KF / 3,80 GHz
64GB DDR4-RAM / 2933 MHz
Win 10 Prof. 64Bit

erstellt am: 19. Apr. 2006 12:45    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 unbekannt verzogen 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von unbekannt verzogen:
Die Erweiterung mit dem Paramter .[1] in einer Notiz halte ich für nicht machbar, da nicht immer Werte gerundet werden müssen und dann somit im Text eventuell 1.0000 steht. Ferner ist auch die Angabe unterschiedlich, also es sind nicht immer zwei Nachkommastellen erforderlich, mal können es drei oder auch nur eine sein.

Schwachfug!!!    Klar ist es im Schriftfeld und in Notizen anwendbar. Diese Eigenschaft ist nämlich auch im Nachgang noch änderbar. Wenn also die Stellen nicht ausreichen oder zu viel sind, dann einfach die Anzahl ändern und alles wird schön.

------------------
Gruß
Udo            Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden!

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

j.sailer
Mitglied
Diplom-Ingenieur (FH)


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

Beiträge: 1040
Registriert: 29.05.2001

Dienstleister, immer was der Kunde einsetzt. Z. Z. WF 3.0 M080 + Intrlaink 3.4

erstellt am: 19. Apr. 2006 13:09    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 unbekannt verzogen 10 Unities + Antwort hilfreich

Also eigentlich ist das mit den eckigen Klammern genau die Funktion die Du suchst. Denn man kann das für jeden Parameter unterschiedlich machen und wie U.Suess sagt, jederzeit änderbar. Wenn das Klammern eingeben stört geht des auch über Format->Dezimalstellen im Menü, da kann man dann mehrere Parameter auswählen und Pro/E schreibt die Klammern mit den Werten selber hin.

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

unbekannt verzogen
Mitglied



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

Beiträge: 92
Registriert: 19.04.2006

erstellt am: 25. Apr. 2006 22: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,

ich möchte nochmal etwas genau auf mein Problem mit all seinen Randbedingungen eingehen.
In den Beziehungen werden Variabeln angelegt, die Gleitkommazahlen enthalten können: LAENGE=20.746, BREITE=12.354
Dann wird diese Variabel einem Maß zugewiesen: d13=LAENGE, d14=BREITE
Nun wird eine Variabel angelegt, die das PLM-System auswertet und in eine Stückliste überträgt:
STUECKLISTE=itos(LAENGE)+"x"+itos(BREITE)
Die Textvariabel STUECKLISTE wird also sowohl auf der StüLi als auch im Textfeld auf der Zng. angezeigt. Ansonsten hätte man ja u.U. abweichende Angaben zwischen StüLi und Zng., auch kann der Wert für STUECKLISTE völlig anders aussehen.
itos() rundet nicht, sondern hackt die Stellen ab, so daß man im o.g. Fall eine Angabe von 20x12 und nicht 20.75x12.35, wie es bei einer Angabe mit zwei Nachkommastellen korrekt wäre.
Es bleibt also nur der aufwendige Weg über ceil() und floor(), so wird es z.Zt. auch gemacht.
Nun suche ich nach einer Möglichkeit, um eine Funktion - wie im Ursprungsbeitrag beschrieben - zu erstellen. Eine andere Möglichkeit wäre eine Funktion, die Zahlen unabhängig ihres Typs in einen Text wandelt.
Leider scheint keine der beiden Lösungen vorhanden und man muß für jede Variabel den aufwendigen Konstrukt in den Beziehungen eintragen, was bei vielen Zahlen doch fehlerbehaftet ist.

unbekannt verzogen

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

Stahl
Mitglied
unbeschreiblich


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

Beiträge: 1475
Registriert: 30.01.2001

Proe 18 bis Creo 3
Intralink 1 bis 3.4
Windchill PDMLink 8.0 bis 10.2

erstellt am: 25. Apr. 2006 22:55    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 unbekannt verzogen 10 Unities + Antwort hilfreich

Ich hätte zwei bisher unausgesprochene Senfkörner zu diesem Thema übrig.

1.)
In ProE 2001 (2001i gibts nicht) schneidet itos() nur die Nachkommastellen ab, das meine ich mich ebenfalls erinnern zu können. In Wildfire 2 wird stattdessen gerundet!

2.)
Wenn ich eine Zahl in einer Beziehung runden will, brauche ich nur diese Zahl plus 0.5 abrunden.

laenge = floor(d57 + 0.5)

Natürlich darf man auch schreiben:
laenge = ceil(d57 - 0.5)

Wenn ich auf eine Nachkommastelle runden will:

laenge = floor(d57 + 0.05, 1)


------------------
Stahl.

P.S.: Ja, eine Funktion analog zu itos nur für Fließkommazahlen wäre toll.


Dies ist keine Signatur. Es gibt hier nichts zu sehen. Bitte lesen Sie weiter.

[Diese Nachricht wurde von Stahl am 25. Apr. 2006 editiert.]

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