Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Parametersteuerung mit Beziehungen

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 PTC CREO
  
BOM Assistant für Stücklistenerstellung , eine App
Autor Thema:  Parametersteuerung mit Beziehungen (1691 mal gelesen)
zelle
Mitglied
Konstrukteur


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

Beiträge: 79
Registriert: 18.12.2002

erstellt am: 02. Sep. 2004 09:42    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,

kann mir hier jemand weiterhelfen? Ich möchte einen Stücklistenparameter über Beziehungen steuern.

Ergebnis soll sein:

benennung="Formrohr 120/80/12,5"

Mit der folgendnen Beziehung funktioniert es ganz gut:

benennung="Formrohr "+itos(B)+"/"+itos(H)+"/"+itos(T)

B, H, und T sind die Bemassungen meines Modells.

Ergebnis ist aber:

benennung="Formrohr 120/80/13"

Das Maß T wird gerundet. Dies möchte ich verhindern.

Danke für eure hilfe

------------------
es grüßt zelle 

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

Manuku
Mitglied
Mechanical Engineer


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

Beiträge: 131
Registriert: 17.07.2003

Creo Parametric 2.0 M080
MathCAD 14 M020

erstellt am: 02. Sep. 2004 10: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 zelle 10 Unities + Antwort hilfreich

Mit ceil oder floor kannst du so was machen.

Hier ein Auszug aus der ProE Hilfe:

Sie können für die beiden Funktionen ceil und floor ein zweites optionales Argument angeben, mit dem es möglich ist, die Anzahl der Dezimalstellen für die Rundung festzulegen.

Die Syntax für diese Funktionen, mit dem Rundungsparameter, lautet wie folgt:

ceil (parametername oder Zahl, anzahl_dezimalstellen)

floor (parametername oder Zahl, anzahl_dezimalstellen)

dabei ist anzahl_dezimalstellen ein optionaler Wert, der:

·  durch eine Zahl oder einen benutzerdefinierten Parameter angegeben werden kann. Ist der Parameterwert eine reelle Zahl, werden die Nachkommastellen abgeschnitten, so daß nur der ganzzahlige Anteil übrigbleibt.

·  der maximal 8 betragen kann. Bei Überschreitung dieses Werts wird für die zu rundende Zahl (das erste Argument) keine Rundung vorgenommen und der ursprüngliche Wert verwendet.

·  die gleiche Funktion wie in vorherigen Versionen hat, falls er nicht angegeben wird.

In den folgenden Beispielen wird für ceil und floor die Anzahl der Dezimalstellen nicht angegeben:

ceil (10.2) ergibt 11
floor (–10.2) ergibt –11

Die folgenden Beispiele zeigen die Verwendung der Funktionen ceil und floor mit Angabe der Dezimalstellen:

ceil (10.255, 2) ergibt 10.26
ceil (10.255, 0) ergibt 11 [gleiches Ergebnis wie bei ceil (10.255)]
floor (10.255, 1) ergibt 10.2
floor (–10.255, 2) ergibt –10.26

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

zelle
Mitglied
Konstrukteur


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

Beiträge: 79
Registriert: 18.12.2002

erstellt am: 02. Sep. 2004 10:34    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

Danke für den hinweis. habe ich schon probiert, bekomme aber folgende Fehlermeldung:

benennung="Formrohr "+itos(H)+"/"+itos(B)+"/"+ ceil(T, 1)
error Ungültige Datentyp-Kombination auf der rechten Seite des Ausdrucks

------------------
es grüßt zelle 

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: 02. Sep. 2004 10: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 zelle 10 Unities + Antwort hilfreich


kommazahl.jpg

 

Was Manuku über ceil und floor sagt stimmt alles. Aber leider wird es zelle nicht weiterhelfen.
Denn sobald man von einer Fließkommazahl ein itos() macht, wird wieder gerundet.
Abhilfe ist nur relativ umständlich zu erreichen, indem man die Zahl mit 10^x multipliziert (wobei x für die gewünschte Anzahl an Dezimalstellen steht) und die gerundete Zahl (ebenfalls mit 10^x multipliziert) von ihr abzieht. Dann hat man die Zahlen hinterm Komma und kann die beiden zusammenfügen. Klingt kompliziert? Ist es auch.

dezimal = 2
zahl = 432.7766
tmp = zahl*10^dezimal - floor(zahl) * 10^dezimal
output = itos(floor(zahl))  + "," + itos(tmp)

(siehe auch angehängtes Bild)

------------------

Stahl.

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

Manuku
Mitglied
Mechanical Engineer


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

Beiträge: 131
Registriert: 17.07.2003

erstellt am: 02. Sep. 2004 10: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 Nur für zelle 10 Unities + Antwort hilfreich


startrohr.prt.zip

 
Ja... stimmt...

Jetzt wo du's sagst, fällt's mir auch wieder ein.

ich hab da noch ein altes Modell gefunden, dass dir weiterhelfen könnte...

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: 02. Sep. 2004 11:05    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 zelle 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Manuku:
Ja... stimmt...

Jetzt wo du's sagst, fällt's mir auch wieder ein.

ich hab da noch ein altes Modell gefunden, dass dir weiterhelfen könnte...


Man beachte die Sicherheitsabfrage, falls die Differenz 0 ist. :-)

------------------

Stahl.

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

zelle
Mitglied
Konstrukteur


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

Beiträge: 79
Registriert: 18.12.2002

erstellt am: 02. Sep. 2004 11: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

danke kollegen, habt mir weitergeholfen

------------------
es grüßt zelle 

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

zelle
Mitglied
Konstrukteur


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

Beiträge: 79
Registriert: 18.12.2002

Solid Ätsch ST3

erstellt am: 02. Sep. 2004 11: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

dies ist nun meine Lösung:

S = T
tmp = S*10^1 - floor(S) * 10^1
if tmp <> 0
benennung="Formrohr "+itos(H)+"/"+itos(B)+"/"+ itos(floor(S))  + "," + itos(tmp)
else
benennung="Formrohr "+itos(H)+"/"+itos(B)+"/"+ itos(floor(S))
endif

nochmals danke für die hilfe

------------------
es grüßt zelle 

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