Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Parameter von Float zu String verwandeln?

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
Autor Thema:  Parameter von Float zu String verwandeln? (4240 mal gelesen)
dbexkens
Ehrenmitglied V.I.P. h.c.
Unternehmensberater / Professional Development Manager



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

Beiträge: 2174
Registriert: 14.08.2000

Pro/ENGINEER WF5 M040
Pro/ENGINEER WF4 M140
Pro/ENGINEER WF3 M220
Pro/ENGINEER WF2 M190
Pro/INTRALINK 3.4 M030 und 8.0 und 9.0
PDMLink 8.0 und 9.0 und 9.1
Project Link 8.0 und 9.0 und 9.1
Product View 9.1

erstellt am: 17. Jul. 2003 09: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

Hi Forum,

ich möchte in einer Baugruppe ein Maß von einem Bauteil als Parameter in die Baugruppe übernehmen. Also in den Beziehungen steht dann z.B. "Bohrungs_D=d4:2". Soweit klappts ja auch.
Problem: Der Parameter "Bohrungs_D" wird im Modell damit automatisch zur reelen Zahl, obwohl er vorher ein String war. Wenn ich nun in Pro/INTRALINK speichern möchte kriege ich Mecker, weil das Attribut immer noch ein String ist (recht hatter).

Frage: Wie wandle ich im Pro/E als in den Beziehungen den Parameter so, das er ein String ist, aber trotzdem den Wert des Maßes zeigt?
Ich weiß, das es geht... da war mal was... irgendwas mit "Inhalt von" oder "vnv". Nur die Syntax habe ich vergessen.

Jemand mit einer Idee?

Grüße

Detlef Bexkens

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

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

dbexkens
Ehrenmitglied V.I.P. h.c.
Unternehmensberater / Professional Development Manager



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

Beiträge: 2174
Registriert: 14.08.2000

Pro/ENGINEER WF5 M040
Pro/ENGINEER WF4 M140
Pro/ENGINEER WF3 M220
Pro/ENGINEER WF2 M190
Pro/INTRALINK 3.4 M030 und 8.0 und 9.0
PDMLink 8.0 und 9.0 und 9.1
Project Link 8.0 und 9.0 und 9.1
Product View 9.1

erstellt am: 17. Jul. 2003 10:03    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

Hi,
hab´s herausgefunden:

"Bohrungs_D=itos(d4:2)" ergibt den Wert des Maßes als String im Parameter.

Detlef

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

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

stefanba
Mitglied
Ingenieur


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

Beiträge: 61
Registriert: 08.11.2002

erstellt am: 17. Jul. 2003 11: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 dbexkens 10 Unities + Antwort hilfreich

Hallo dbexkens,

mit dem itos musst Du aufpassen, denn so weit ich weis, wandelt der
nicht die komplette Zahl sondern nur den ganzzahligen Anteil um.
Wenn also Dein Bohrungsdurchmesser vorher 5.6 war, kommt nur die 5
raus. Ich bin mir nicht ganz sicher, irgendeiner dieser Umwandlungs-
befehle tut naemlich sowas, also Vorsicht und mal testen

Stefan

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: 17. Jul. 2003 17:15    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 dbexkens 10 Unities + Antwort hilfreich

Ja, das kann ich nur bestätigen. ITOS steht für "Integer TO String". Leider gibt es kein FLTOS, d.h. die Nachkommastellen werden abgeschnitten.
zB:
ITOS(6.1) -> "6"
ITOS(12.84) -> "12"

Wenn die beiden ersten Nachkommastellen noch wichtig sind, muss man vorher mit 100 multiplizieren, dann ITOS machen und dann manuell das Komma an die drittletzte Stelle setzen...

x=12.841 
x=x*100                                                                        /* x==1284.1
y=itos(x)                                                                        /* y=="1284"
y_len=string_length(y)                                                    /* y_len==4  weil "1284" 4 Zeichen hat
y=strcat(1, y_len-2, y) + "." + strcat(y_len-1, y_len, y)              /* y=="12.84"

Das ist jetzt aus dem Gedächtnis. Nachprüfen kann ich erst nächste Woche wieder. Und für eventuelle Tipfehler übernehm ich keine Haftung.  

Stahl.

[Diese Nachricht wurde von Stahl am 17. Juli 2003 editiert.]

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

rjordan
Mitglied
ProE-Admin, Konstrukteur


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

Beiträge: 1428
Registriert: 17.03.2003

Creo 3
Win 10 Pro 64bit
Intel Xeon 3,7 GHz
Nvidia Quadro P4000

erstellt am: 23. Nov. 2006 13:54    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 dbexkens 10 Unities + Antwort hilfreich

Hallo,
das gleiche Problem habe ich auch gehabt. Aber mit Stahls Lösung funktionierte es nicht. Bei den Befehlen string_length und strcat kam eine Fehlermeldung.

Daher habe ich es für Sheetmetal so gemacht:
MATERIAL="Blech "+itos(floor(smt_thickness()))+ "." + itos((smt_thickness()-floor(smt_thickness()))*10)+ " dick."
Die Systemvariable smt_thickness() hat automatisch die Sheetmetaldicke.

------------------
Scheinbare Rechtschreibfehler beruhen auf eine individuelle Rechtschreibreform

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

os
Ehrenmitglied V.I.P. h.c.
Konstruktionsingenieur



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

Beiträge: 2458
Registriert: 16.09.2002

2001,WF,WF2...

erstellt am: 23. Nov. 2006 14:03    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 dbexkens 10 Unities + Antwort hilfreich

Hallo

Also ich mach das Ganze immer mit extract()

zahl=12.841

f=itos(zahl*100)
string=extract(f,1,2)+"."+extract(f,3,2)

Syntax: extract(Parameter,Stringposition,Stringlänge)

Gruß
OLaf

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

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

rjordan
Mitglied
ProE-Admin, Konstrukteur


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

Beiträge: 1428
Registriert: 17.03.2003

Creo 3
Win 10 Pro 64bit
Intel Xeon 3,7 GHz
Nvidia Quadro P4000

erstellt am: 24. Nov. 2006 12:22    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 dbexkens 10 Unities + Antwort hilfreich

Hallo os,

... und was machst du, wenn der Zahlenbereich variiert, z.B. 1 bis 1000 ?
Bei deiner Lösung mußt du aber vorher wissen, wie viel Stellen vor dem Komma stehen und dementsprechend den extract-Befehl korrigieren.


------------------
Scheinbare Rechtschreibfehler beruhen auf eine individuelle Rechtschreibreform

[Diese Nachricht wurde von rjordan am 24. Nov. 2006 editiert.]

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

os
Ehrenmitglied V.I.P. h.c.
Konstruktionsingenieur



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

Beiträge: 2458
Registriert: 16.09.2002

2001,WF,WF2...

erstellt am: 24. Nov. 2006 12: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 Nur für dbexkens 10 Unities + Antwort hilfreich

Hallo

Vor kurzem passiert, deshalb ist es noch so präsent:

zahl=????

If zahl<10
f=itos(zahl*10)
string=extract(f,1,1)+"."+extract(f,2,1)
endif
If zahl>=10 & zahl<100
f=itos(zahl*100)
string=extract(f,1,2)+"."+extract(f,3,1)
endif
If zahl>100
f=itos(zahl*1000)
string=extract(f,1,3)+"."+extract(f,4,1)
endif

Gruß
Olaf


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

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



Konstrukteur/in Maschinenbauingenieur (m/w/d) im Bereich Lebensmitteltechnik

Wir bieten Lebensmittelherstellern maßgeschneiderte Prozessanlagen, die wirklich jeden Anspruch erfüllen! Kleine Lösungen für den Kernprozess und komplette Produktionsstraßen für die gesamte Prozesskette - vom Rohstoff bis zum fertigen Produkt. Dabei verstehen wir uns nicht nur als ?Lieferant? der Anlagen, sondern als Partner, der mit einzigartigem Know-how aktiv zur Realisierung der Produktideen des Kunden beiträgt....

Anzeige ansehenKonstruktion, Visualisierung
tpp
Mitglied



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

Beiträge: 19
Registriert: 12.11.2006

Pro/E-Version: WF2, M240
Mechanica-Version: WF2, M240 (+ Adv. Sim Option)
Grafikkarte: ATI FireGL X3-256
Tyan Mainboard + 2xAMD Opteron System
2 GByte
WindowsXP

erstellt am: 25. Nov. 2006 07: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 Nur für dbexkens 10 Unities + Antwort hilfreich

Hallo !

Ergänzend wäre noch zu sagen, dass, wenn man korrekt runden will,
nicht nur mit 100 zu multiplizieren ist (bzw. 1000, etc - je nachdem,
wieviel Nachkommastellen man will), sondern auch noch mit 0,5 zu addieren
ist.

Bsp. (nur prinzipiell - geht um die +0.5)

s$ = STRING$ ( INT ( 12.836 * 100 + 0.5 ) / 100 )

ergibt korrekt 12.84 (statt 12.83)

Viele Grüße

TPP

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