Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Variablenwerte vergleichen

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
  
Besichtigung der MAIT.Cloud in Frankfurt | 19.11.2025, eine Veranstaltung am 19.11.2025
Autor Thema:  Variablenwerte vergleichen (928 mal gelesen)
Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 06. Jun. 2011 12:30    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 zusammen!

Lange nichts geschrieben. Wir sind jetzt vermehrt in der dritten Dimension unterwegs. 

Jetzt muss ich nach langer Zeit mal wieder ein bestehendes Makro für ME10 ändern und habe dabei ein Problem:
Wir haben mit "READ_FILE ..." Variablen belegt. Ich muss nun von 8 Variablen die mit dem größten Wert herausfinden. Die betreffenden Werte können entweder (alle) aus Zahlen oder (alle) aus Buchstaben bestehen, was das Ganze recht kompliziert macht.
Die Buchstaben brauche ich nicht zu vergleichen, da reicht es, den Wert der letzten belegten Variable zu übernehmen (in unserem Fall: <>'Null'). Dafür muss ich aber die Werte unterscheiden können und da hapert's schon. Außerdem habe ich festgestellt, dass ein Größenvergleich (Var1 > Var2) nicht klappt, vermutlich, weil die Werte für's System nicht numerisch sind?

Kann mir da jemand die entscheidenden 2 Tipps geben?
1. Wie stelle ich fest, ob eine Variable einen numerischen Wert hat?
2. Wie kann ich diese dann größenmäßig vergleichen (auch zweistellige Werte)?

Vielen Dank schon mal für's Nachdenken.
Viele Grüße
Tom

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook Fury 16 G9, Windows 10 Pro 64

erstellt am: 06. Jun. 2011 12:59    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 Tom R 10 Unities + Antwort hilfreich

In LISP gibts jede Menge sog. Predicates, um Eigenschaften abzufragen, so z.B.

(numberp objekt)

Mit (read-from-string string) kann man aus eingelesenen Textzeilen wieder was Vernünfiges machen

Empfehlenswert zum Nachschlagen:
Common Lisp the Language, 2nd Edition

------------------
meine LISP-Makros sind auf osd.cad.de
Disclaimer
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 06. Jun. 2011 13: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

Hallo Walter!

Danke für die Antwort, aber ich glaube, wir schreiben da aneinander vorbei: Das normale ME10 OSDD 2006 nutzt, glaube ich, kein Lisp? Ich schätze, ich habe dich mit meiner Einleitung verwirrt?

Trotzdem Danke für die Mühe
Tom

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

RSausGE
Mitglied
Programmierer


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

Beiträge: 127
Registriert: 29.01.2004

erstellt am: 06. Jun. 2011 15: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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom,

versuche es mal damit:
define test1

local n1
local n2
local n3
local n4

let n1 "123"
let n2 "567"
let n3 "abc"
let n4 987

if (TYPE n4=NUMBER) { Testet auf Nummernwert TYPE n4=STRING => testet auf character}
display ("num = "+(str n4))
else
display ("char = "+(str n4))

if ((num n1) > (num n2))
display (n1)
else
display (n2)
end_if

end_define

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

friedhelm at work
Mitglied
Techniker Aluminium Profile


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

Beiträge: 913
Registriert: 01.04.2003

Creo Elements Direct
/Drafting 17+20.x
ui classic-Tablett + Ribbon,
Modeling 17-20.0,.2,.4,.5
Lizenz auf USB-Netzwerkadapter
PE-Express 8
Win 10 Enterprise 64 @work
Win 10 Pro 64 @home
Notepad++,IrfanView,eDrawings,
....

erstellt am: 06. Jun. 2011 17: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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom,

1. Wie stelle ich fest, ob eine Variable einen numerischen Wert hat?
DISPLAY (TYPE (VAL "abc")) liefert als Antwort MACRO
DISPLAY (TYPE (VAL "123")) liefert als Antwort NUMBER
Achtung:
DISPLAY (TYPE (VAL "12a")) liefert als Antwort auch NUMBER
aber du sagst ja das das nicht der Fall sein kann.

2. Wie kann ich diese dann größenmäßig vergleichen (auch zweistellige Werte)?
Wenn du die Variable die ja ein String ist mit VAL in Zahlen wandelst funktioniert
der Grössenvergleich.
((VAL Var1) > (VAL Var2))

Vieleicht wäre es am einfachsten mit dem READ_FILE gar nicht erst 8 Variablen zu belegen,
sondern den Check "String oder Zahl" und den Zahlenvergleich im LOOP während des Einlesens
zu erledigen.

------------------
    Gruss Friedhelm

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 275
Registriert: 02.11.2003

erstellt am: 07. Jun. 2011 13:46    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 ihr zwei!

Herzlichen Dank. Es hat ein wenig Fummelei bedeutet, aber mit Hilfe des "num" habe ich das Problemchen dann gelöst.
Vielen Dank auch dir, Friedhelm, aber eine Lösung reichte mir.  Zur Zeit deines Posts war ich fast fertig. Übrigens brauche ich aber alle Variablen, da das meine Revisionsstände sind. Die wurden früher in Buchstaben angegeben, dann in Zahlen und jetzt, wenn nicht mehr alle Stände in die Schriftkopffelder passen, werden sie ab- statt aufsteigend eingetragen...

Viele Grüße
Tom

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)2025 CAD.de | Impressum | Datenschutz