Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Allgemein
  itos Absturz bei zu großen Zahlen

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
Autor Thema:  itos Absturz bei zu großen Zahlen (1669 mal gelesen)
NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

Creo Parametric 3.0 M120
PDM Essentials 10.1 M040

erstellt am: 01. Jul. 2015 10: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


auswerten_schwerwiegender_fehler.jpg

 
Hallo zusammen,

ich habe gerade einen etwas kritischeren Bug in Creo ausgemacht. Ich denke, dass sich dieser Fehler ggf. auch in älteren Versionen wieder findet.

Bei uns im System habe wir in Startteilen als Standard ein Material hinterlegt, welches eine sehr hohe Dichte hat um im späteren Verlauf Fehler bei fehlender Materialzuweisung schneller zu finden.

Nun gibt es in den Beziehungen eine Formel, die mir aus der gemeldeten Masse einen Parameter für unsere Zeichnungen fütter. Ich denke, dass das ja häufiger so verwendet wird.

Wenn nun die Masse (oder irgend ein anderer beliebiger Wert) größer oder gleich 2^31 ist und man diesen mit itos(2^31) auswerten möchte, dann geht Creo sofort in die Knie und stürzt ab.

Ich weiß nicht, ob das ggf. auch im laufenden Betrieb vorkommen kann ohne das man die explizite Auswertung in der Beziehung vornimmt.

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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

holligo
Mitglied
MB-Konstr.


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

Beiträge: 652
Registriert: 25.04.2003

erstellt am: 19. Aug. 2015 10: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 NicoFTB 10 Unities + Antwort hilfreich

Hallo,

kann mir einer sagen, welche Funktion itos hinterlegt?

------------------
lg
holli
 

[Diese Nachricht wurde von holligo am 19. Aug. 2015 editiert.]

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

Wyndorps
Ehrenmitglied V.I.P. h.c.
Ingenieur



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

Beiträge: 4563
Registriert: 21.07.2005

Creo 8.0.1.0
Genius Tools 8.0
Windchill 12.0.2.0

erstellt am: 19. Aug. 2015 11:49    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 NicoFTB 10 Unities + Antwort hilfreich


integer.JPG

 
Zur ersten Frage:
Das ist kein Fehler der itos-Funktion, sondern eine Begrenzung des Zahlenformats von Creo. Die itos-Funktion kann nur auf ganze Zahlen (Integer) angewendet werden. Die Ganzen Zahlen sind in Creo offensichtlich maximal 10-stellig definiert.

Wir haben zusätzlich zur relativ hohen Dichte die Werkstoffbezeichnung "kein Material/no material" als Standard vordefiniert. Das wirkt sogar noch besser als eine hohe Dichte.

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

"Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist."  (Stanislaw Jerzy Lec)

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

kuno2
Mitglied
Senior Tüftler


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

Beiträge: 536
Registriert: 06.07.2004

win10 64
SUT 2018
creo3
creo 5.0.3.0

erstellt am: 19. Aug. 2015 12: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 NicoFTB 10 Unities + Antwort hilfreich

Hallo Nico,

bei mir wertet Creo2 M070 bis 2^31-1+0.49 korrekt aus (rundet und wandelt um in Zeichenkette), darüber gibt's nur kein Ergebnis, jedoch auch keinen Absturz.

Korrektur: oberhalb 2^31-0,51 gibt nicht kein Ergebnis, sondern eine leere Zeichenkette.
------------------
Euer Kuno2

[Diese Nachricht wurde von kuno2 am 19. Aug. 2015 editiert.]

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

holligo
Mitglied
MB-Konstr.


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

Beiträge: 652
Registriert: 25.04.2003

erstellt am: 19. Aug. 2015 13:48    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 NicoFTB 10 Unities + Antwort hilfreich


Das war eindeutig - selbst nachschauen, wenn man weiter folgen will:

itos - Konvertiert ganze Zahlen (Integers) in Zeichenfolgen.
          Hierbei kann int eine Zahl oder ein Ausdruck sein.
          Nicht ganzzahlige Zahlen werden abgerundet.

------------------
lg
holli

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

NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

Creo Parametric 3.0 M120
PDM Essentials 10.1 M040

erstellt am: 19. Aug. 2015 15:49    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 Wyndorps:
Zur ersten Frage:
Das ist kein Fehler der itos-Funktion, sondern eine Begrenzung des Zahlenformats von Creo. Die itos-Funktion kann nur auf ganze Zahlen (Integer) angewendet werden. Die Ganzen Zahlen sind in Creo offensichtlich maximal 10-stellig definiert.

Das eine sind die ganzen Zahlen. Das andere ist eine interne Berechnung. Und da gibt es anscheinend einen Buffer overflow bei 64bit. Integer gehen bei 64bit von -2^31 bis 2^31 und haben dann noch bei 2^32 das Vorzeichen stehen.

In meinem Fall habe ich eine Formel hinterlegt bei der Masseberechnung die schnell an diese Grenzen kommen kann. Nur wenn man dann eine Auswertung in der Beziehung macht, stürzt das System ab.

Zitat:
Original erstellt von Wyndorps:
Wir haben zusätzlich zur relativ hohen Dichte die Werkstoffbezeichnung "kein Material/no material" als Standard vordefiniert. Das wirkt sogar noch besser als eine hohe Dichte..

Ja, das habe wir zusätzlich auch 

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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

NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

erstellt am: 28. Apr. 2016 14: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

Scheint mit einer aktuellen Version gefixt worden zu sein. Mindestens ab Creo 3.0 M080 wird der String dann einfach leer. Zumindest gibt es keinen Absturz mehr.

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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