Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Gleichungen - SWX für positive Überaschungen gut

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 SOLIDWORKS
  
AMB 2024
Autor Thema:  Gleichungen - SWX für positive Überaschungen gut (434 mal gelesen)
Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 26. Apr. 2002 11:44    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

Aloah,

nachdem ich mal wieder versuche so viel wie möglich zu automatisieren und zu vereinfachen habe ich eine Möglichkeit gesucht um Werte zu runden bzw. Nachkommastellen abzuschneiden. Da ich weiss, dass ich die Visual Basic Anweisung "IIF" in Gleichungen verwenden kann, dachte ich mit, dass es vielleicht auch mit Befehlen zum runden klappen könnte.

Und siehe da... es klappt.

Falls also irgendjemand keine krummen Werte haben möchte, so kann er sich die Nachkommastellen der Ergebnisse mit "INT" bzw. mit "FIX" abschneiden lassen. Und die Werte mathematisch richtig runden lassen kann man sich mit "ROUND"

Das sähe dann so aus:

"D1@Skizze2" = INT(*Term der einen krummen Wert ergibt*)
bzw.
"D1@Skizze2" = ROUND(*Term der einen krummen Wert ergibt*)

Vermutlich gibt es nicht viele Leute die dies nutzen werden, aber wenn wenigstens einem geholfen ist hat sich Posting gelohnt.

Schönes Wochenende
Kalle

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

Mike
Mitglied
 Konstrukteur


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

Beiträge: 544
Registriert: 23.06.2000

SolidWorks Professional 2012 SP5, 64bit;
Xenon 2,66MHz;
NVidia Quadro FX 1500;
6GB RAM; Windows 7

erstellt am: 27. Apr. 2002 09:33    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 Kalle 10 Unities + Antwort hilfreich

Hallo Kalle,

Interessanter Tip - ich denke das ist mir ein paar Unities wert   !

Gruß
Mike

------------------
Mathis Michael

[Diese Nachricht wurde von Mike am 27. April 2002 editiert.]

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

JohNexus
Mitglied
Techniker für SWX


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

Beiträge: 91
Registriert: 03.04.2002

Das Schicksal kann dich nur an den Ort der Entscheidung führen.

erstellt am: 02. Mai. 2002 08:28    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 Kalle 10 Unities + Antwort hilfreich

Ja, das is ein guter Tip, hab ich mir eigentlich eh gedacht das das mit runden gehen muss, aber mit einer IF-Anweisung, also das hab ich nicht zusammengebracht.

Wenn du mal reinschaust könntest du viell. einen Beispieltext wie du das machst reinstellen, bzw. wie halt sone IF in ner GLeichung ausschaut.

Danke Mfg Johannes

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 02. Mai. 2002 09:14    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 Kalle 10 Unities + Antwort hilfreich

Hallo Johannes,

zu der IIF-Funktion in Gleichungen kannst du auch unter http://solidworks.cad.de/faq/faq-api-006.htm eine Beschreibung finden.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

JohNexus
Mitglied
Techniker für SWX


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

Beiträge: 91
Registriert: 03.04.2002

Das Schicksal kann dich nur an den Ort der Entscheidung führen.

erstellt am: 02. Mai. 2002 09:29    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 Kalle 10 Unities + Antwort hilfreich

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 02. Mai. 2002 09:41    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 Kalle 10 Unities + Antwort hilfreich

Hallo Johannes.

Eine IIF (nicht IF!) sieht folgendermassen aus:

"Mass1" = IIF (Vergleich, Wert wenn richtig, Wert wenn falsch)

Beispiel:
"D2@Skizze1" = IIF ("D1@Skizze1" < 50, 10, 40)

Heisst: D2 ist 10 wenn D1 kleiner oder gleich 50, wenn D1 grösser als 50, dann ist D2 40.

Ich persönlich rate aber zur Vorsicht mit solchen Gleichungen, weil:

1. Wenn jemand das Modell bearbeitet, der das Gleichungssystem nicht kennt, wird sich denken: "Was verfl..... macht den das Ding   ????

2. Verhalten sich die Vergleiche offenbar nicht so, wie man es sich gewohnt ist! In obigem Beispiel heisst "<" nämlich nicht "kleiner als" sondern "kleiner als oder gleich" (entspricht im normalen Programmslang "<=")!! Man kann in einer Gleichung offenbar nur 1 Gleichheitszeichen setzen! Eine Gleichung wie

"D2@Skizze1" = IIF ("D1@Skizze1" = 50, 10, 40)

kann scheinbar nicht eingegeben werden! Dies erschwert das Lesen der Gleichung und führt IMHO zu Fehlern.

EDIT Boahh, war der Stefan wieder schneller (ich muss mal einen Kurs für schnelles Beiträge schreiben machen  )!ENDEDIT

------------------
  Gruss
Andreas

A+E Müller AG

[Diese Nachricht wurde von Andreas Müller am 02. Mai 2002 editiert.]

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

JohNexus
Mitglied
Techniker für SWX


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

Beiträge: 91
Registriert: 03.04.2002

Das Schicksal kann dich nur an den Ort der Entscheidung führen.

erstellt am: 02. Mai. 2002 09: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 Kalle 10 Unities + Antwort hilfreich

Ok, danke auch dir nochmals 

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 02. Mai. 2002 17: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

Aloah,

Der Grund für das nicht funktionieren von mehreren Gleichheitszeichen in einer Gleichung ist (so wurde es mir zumindest erklärt) die Tatsache, dass man Gleitkommazahlen nicht auf Gleichheit prüfen kann. Ich bin kein Mathematiker oder so was, von daher akzeptiere ich (derzeit) noch diesen Umstand, aber vielleicht will sich da einer von euch weiter reindenken und hier mal 'ne genaue Erklärung für diesen Sachverhalt abgeben.

Bis dann
Kalle

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 03. Mai. 2002 08: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 Kalle 10 Unities + Antwort hilfreich

Hallo zusammen,

Zitat:
Der Grund für das nicht funktionieren von mehreren Gleichheitszeichen in einer Gleichung ist (so wurde es mir zumindest erklärt) die Tatsache, dass man Gleitkommazahlen nicht auf Gleichheit prüfen kann.

Also das halte ich gelinde gesagt für Quatsch, dann würde ja keine Programmiersprache das beherrschen. Da hat einer ein bischen viel durcheinander gebracht. Auch in VBA (und selbst im alten VB3) das "=" als Vergleichsoperator zugelassen (siehe auch Onlinehilfe im VBA von SolidWorks), logischerweise auch für Doubles 

Ich vermute einen viel trivialeren Grund: der Gleichungsparser, der die eingegebenen Gleichungen analysieren, hat eben diese (und noch ein paar andere) Einschränkung; das macht die Sache eben einfach, wenn man nur nach einem Gleicheitszeichen suchen muss um die Gleichungen nach dem Parametern zu zerlegen.

Gerade für das IIF() gibt's aber einen ganz einfachen Workaround: einfach die Bedingung umdrehen, also nicht IIF(X = Y,gleich, ungleich) sondern andersrum IIF(X <> Y, ungleich, gleich)

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

JohNexus
Mitglied
Techniker für SWX


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

Beiträge: 91
Registriert: 03.04.2002

Das Schicksal kann dich nur an den Ort der Entscheidung führen.

erstellt am: 03. Mai. 2002 08: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 Nur für Kalle 10 Unities + Antwort hilfreich

Also ich kann StefanBerlitz nur Recht geben zumindest aufgrund meiner bescheidenen Programmierkenntnisse.

Also wenn es noch jemand interessiert, das kommt auch vom Programmieren, man kann auch 2 Bedinungen angeben und mit "and" oder "or" miteinander verknüpfen.....falls es irgendwer noch nicht gewußt hat....

Mfg

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

AndreasK
Administrator
Daseinsinformatiker


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

Beiträge: 1022
Registriert: 02.03.2000

Unter allen Umständen kann Vernunft durch Vernunft aufgeklärt werden (Alexander von Humboldt)

erstellt am: 03. Mai. 2002 08: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 Nur für Kalle 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von StefanBerlitz:
... Also das halte ich gelinde gesagt für Quatsch ...

Jetzt muss ich mal ein wenig Klugscheissern und Kalle, bzw. dem, der es Kalle verraten hat Recht geben: Man kann nicht Fließkommazahlen auf Gleichheit prüfen. Also, man kann schon, aber das Ergebnis ist nicht verwertbar!!!
Beispiel : (55 * PI) = (550 * PI) / 10 ??? Nein, es ist nicht gleich! Die Programmiersprachen (alle! ausser die, die streng Rational, also mit Brüchen rechnen) bekomme hier eine Differnez von ca. 3,irgendwas E-39. Also nicht NULL!

In Programmen sollte daher immer eine Funktion verwendet werden, die die Differenz auf einen annehmbaren (praxisnahen) Wert prüft. Wenn die absolute Differenz zweier Zahlen kleine als z.B. 0.000000001 ist, dann sollten die Zahlen als gleich betrachtet werden.

Von daher macht ein Vergleich auf Gleichheit innerhalb von Programmen für Fließkommazahlen (Doubles u.a.) mit dem Vergleichsoperator '=' wirklich KEINEN Sinn und man sollte es lassen...

------------------
Beste Gruesse

Andreas Kippenberg

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

JohNexus
Mitglied
Techniker für SWX


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

Beiträge: 91
Registriert: 03.04.2002

Das Schicksal kann dich nur an den Ort der Entscheidung führen.

erstellt am: 03. Mai. 2002 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 Nur für Kalle 10 Unities + Antwort hilfreich

Ja, genauso wirds beim Programmieren gemacht...man legt die ANzahl der Nachkommastellen fest und läßt dann vergleichen, ist irgendwie logisch dass nur so gehen kann weil theoretisch zumindest unendlich viele Nachkommastellen bestehen....

Ich sag mal es würd reichen wenn es bei solchen Vergleichen auf 10 Nachkommastellen reduziert zumindest ist das meine Meinung und dann wäre ein = durchaus möglich

Das geht sogar bei Basic....

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 03. Mai. 2002 10: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 Kalle 10 Unities + Antwort hilfreich

Okay, ich geb mich geschlagen. 

Von der Mathematik her ist ein Vergleich von Doubles, die auf ein binäres Zahlensystem abgebildet werden, nicht immer sinnvoll. Mit Funktionen wie Round() oder Fix() (siehe oben) zwingt man dann die Kiste das zu tun, was sie eigentlich auch vonj alleine könnte.

Aber damit zu begründen, warum ich in der Gleichung kein = als Vergleichsoperator verwenden kann ist in meinen Augen immer noch Quatsch.

Und ausserdem bin ich der Meinung das Karthago zerstört werden müßte 

Stefan

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