Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  If-Bedingung / Falscher Ausdruck

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
Autor Thema:   If-Bedingung / Falscher Ausdruck (738 mal gelesen)
erdi01
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 26.01.2016

Solidworks 2017 SP 5.0
Win 10

erstellt am: 04. Apr. 2018 16:20    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,

hat jemand eine Idee, wie ich in SW verhindern kann, dass in einer if-Gleichung die False- (/Else-) Bedingung zu Ende gerechnet wird?
Es geht darum die Bemaßung eines Winkels über den Arctan zu berechnen, wofür eine Einteilung in Quadranten nötig ist. Die Ankathete kann zu Null werden, und es würde somit eine Division durch Null im False/Else-Part stehen, der mich genau in diesem Fall ja überhaupt nicht mehr interessiert und in dem ich einen Winkel von beispielsweise 0 oder 90° ausgeben will. Ich finde keinen Workaround, habe auch schon einiges probiert.

Danke im Voraus.
Gruß: Thomas

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

Ralf Tide
Moderator
Beratender Ingenieur




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

Beiträge: 4357
Registriert: 06.08.2001

.-)

erstellt am: 04. Apr. 2018 20:18    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 erdi01 10 Unities + Antwort hilfreich

Hallo Thomas,

ich kann mich nicht richtig in Deine Aufgabe hineindenken. Kannst Du das mit einer Skizze erläutern?
Befindest Du Dich in einer Skizze?
Du kannst ja auch geschachteltete IIF-Gleichungungen verwenden. Ist das vielleicht ein Ansatz?
Was hast Du denn schon ausprobiert?

Bin gespannt
Ralf

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

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

TMS-TB
Mitglied
Konstrukteur


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

Beiträge: 20
Registriert: 30.07.2012

Intel 2600K
16GB Ram
NVIDIA Quadro 600
Solidworks 64Bit 2016 SP3
Win 7 64Bit

erstellt am: 06. Apr. 2018 11:58    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 erdi01 10 Unities + Antwort hilfreich

Alse kenne jetzt nur VB.net. Da würde ich es so regeln.

Private sub Winkel()
If Ankathede >= 0 then
Rechne weiter
Else if Ankathede < 0 then
Exit sub
End if
End Sub

vielleicht hiflt es

[Diese Nachricht wurde von TMS-TB am 06. Apr. 2018 editiert.]

[Diese Nachricht wurde von TMS-TB am 06. Apr. 2018 editiert.]

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

erdi01
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 26.01.2016

Solidworks 2017 SP 5.0
Win 10

erstellt am: 17. Apr. 2018 15: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


Skizze_Gleichungsproblem_Draufsicht.jpg


Skizze_Gleichungsproblem_schrag.jpg

 
Entschuldigt die späte Antwort. Das Problem ist noch immer akut und ich werde es nachfolgend noch etwas genauer beschreiben. Dazu habe ich die eigentlichen Skizzen vereinfacht.

Es geht um einen Trichter, dessen Ein- und Auslauf asymmetrisch sein können, aber nicht müssen. Im dargestellten Fall ist der Trichter 45°, bzw. 80 mm in x- und 80 mm in z-Richtung asymmetrisch. Das mit dem Offset ("off") rührt daher, dass das der einzige Weg zu sein scheint, die Richtung der Asymmetrie nach einem Nulldurchgang nicht willkürlich zu halten sondern eindeutig zu definieren. Das sollte aber für das eigentliche Problem keine Rolle spielen. In der Formel stünde dann also immer für den "Versatz_tief" = "Versatz_tief_inkl_Off" - "Off"
Das Maß "W_Ebene" ist der Winkel zwischen einer absoluten Linie ( in negativer x-Richtung) und einer Linie, die mir dann die "Ebene 1" definiert. Auf dieser "Ebene 1" ergibt sich bei einem asymmetrischen die Seitenansicht, in der sowohl der steilste, als auch der flachste Flankenwinkel des Trichter abgebildet wird. Und über den "Flankenwinkel_flach" will ich den Trichter letztlich definieren. Soweit so gut.

Hinter dem Winkel "W_Ebene" stecke nun also die Formel, die mir je nach dem, welcher Versatz (tief oder quer) größer ist, zum Arctan("Veratz_tief_inkl_Off" / "Versatz_quer_inkl_Off") 180° dazuaddiert, oder nicht.
Wieso brauche ich diesen Winkel rechnerisch? Ich kann die Mittelpunkte der beiden Kreise nicht einfach verbinden, weil der Versatz auch null sein kann und die Länge dann entweder zu Null wird, oder die Linie dann nicht mehr vollständig definiert ist. Deshalb brauche ich die Wenn-Formeln, die mir für den Fall "Versatz_tief" = 0 = "Versatz_quer" (symmetrisch) einen Winkel von 0° oder 180° ausspucken soll.

Und für den Fall (Ankathete) "Versatz_quer" = 0 und "Versatz_tief" <> 0, also auch bei "W-Ebene" = 90° oder 270°, ergäbe der Arctan eine Division durch Null. Obwohl ich in der Formel bereits vorher sage, dass der Winkel 90° oder 270° ausgegeben werden soll, wenn die Ankathete = 0 ist, steht halt in einer nicht vermeidbaren, aber eigentlich nicht mehr relevanten else-Funktion die Division durch Null und die Gleichung liefert kein Ergebnis.

Somit @TMS-TB: leider steht die Division durch Null noch immer in der Formel und Solidworks rechnet da stur weiter, obwohl ich vorher bereist eine Fallunterscheidung mache.

[Diese Nachricht wurde von erdi01 am 17. Apr. 2018 editiert.]

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Maschinenbautechniker



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

Beiträge: 2124
Registriert: 18.07.2012

HP Z400 Workstaion
CPU: Intel Xeon 6x 3,33GHz
GPU: NVIDEA Quadro 2000
RAM: 12 GB DDR3
Win 7 x64
CAD Hauptberuflich
-Solid Works 2014 SP4
-Creo Elements Direct Drafting (ME10)
DMS/PDM
-Pro.File V8 (8.4)
Simulation
-Simufact Forming 11.0
CAD Nebenberuflich
-Pro Engineer WF 3+4
-Creo Parametric 2.0

erstellt am: 17. Apr. 2018 16:18    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 erdi01 10 Unities + Antwort hilfreich

Hallo erdi,

kannst du auch deine Gleichung posten die du verwendest, weil meines Wissens SWX normalerweise bei verschachtelten IF-Funktionen bei der ersten erfüllten Bedingung die nachfolgenden Bedingungen nicht mehr auswertet, evtl. hast du deine IFF Funktion nur falsch verschachtelt.

Alternativ hast du mal versucht einfach die Gleichung über eine Hilfsgleichung irgendwie auszuwerten?

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

erdi01
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 26.01.2016

Solidworks 2017 SP 5.0
Win 10

erstellt am: 17. Apr. 2018 17: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

Die Gleichung ist ellenlang. Ich musste sie in Excel erstellen und testen, um den Überblick zu behalten und habe dann die entsprechenden Ausdrücke in Solidworks übersetzt (ersetzt). Ich habe schon viel versucht. Ich bin mir sehr sicher, dass der False-Part immer ausgewertet wird.

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Maschinenbautechniker



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

Beiträge: 2124
Registriert: 18.07.2012

HP Z400 Workstaion
CPU: Intel Xeon 6x 3,33GHz
GPU: NVIDEA Quadro 2000
RAM: 12 GB DDR3
Win 7 x64
CAD Hauptberuflich
-Solid Works 2014 SP4
-Creo Elements Direct Drafting (ME10)
DMS/PDM
-Pro.File V8 (8.4)
Simulation
-Simufact Forming 11.0
CAD Nebenberuflich
-Pro Engineer WF 3+4
-Creo Parametric 2.0

erstellt am: 18. Apr. 2018 06:58    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 erdi01 10 Unities + Antwort hilfreich

Hallo erdi,
Zitat:

Ich musste sie in Excel erstellen und testen, um den Überblick zu behalten und habe dann die entsprechenden Ausdrücke in Solidworks übersetzt (ersetzt). Ich habe schon viel versucht. Ich bin mir sehr sicher, dass der False-Part immer ausgewertet wird.

Sorry mein Fehler in SWX ist es genau andersrum, da hier auf VBA zurückgegriffen wird werden beide Bedingungen geprüft und nicht wie in Excel eine nach der anderen.

Hast du evtl. die möglichkeit das ganze über Excel zu steuren, ist zwar lässtig zum öffnen die Exceltabelle öffnen zu müssen aber du hast dadurch natürlich das volle Programm an Excel-Formeln zur Verfügung.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

erdi01
Mitglied
Ingenieur

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

Beiträge: 8
Registriert: 26.01.2016

Solidworks 2017 SP 5.0
Win 10

erstellt am: 18. Apr. 2018 09:11    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

Das ist eine Lösung, da die Werte ohnehin aus Excel oder einem ERP-System gesteuert werden. Ich will das Modell aber so "eigenständig" wie möglich halten. Deshalb hoffe ich nach wie vor auf eine andere Lösung.
Bis dahin werde ich es so umgehen, dass eben der Winkel selbst und die Hypotenuse eingegeben wird und Quer- und Tiefenversatz Ergebnisse sind.

Danke für Eure Unterstützung.

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Maschinenbautechniker



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

Beiträge: 2124
Registriert: 18.07.2012

HP Z400 Workstaion
CPU: Intel Xeon 6x 3,33GHz
GPU: NVIDEA Quadro 2000
RAM: 12 GB DDR3
Win 7 x64
CAD Hauptberuflich
-Solid Works 2014 SP4
-Creo Elements Direct Drafting (ME10)
DMS/PDM
-Pro.File V8 (8.4)
Simulation
-Simufact Forming 11.0
CAD Nebenberuflich
-Pro Engineer WF 3+4
-Creo Parametric 2.0

erstellt am: 18. Apr. 2018 16: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 erdi01 10 Unities + Antwort hilfreich

Hallo,

alternativ könntest du auch schauen ob du dass mit DriveWorks Express abbilden kannst, da kannst du auch mit Regeln (Formeln) arbeiten und bekommst wenn gewünscht auch eine passende Zeichnung dazu.

Als eine weitere Alternative könntest du auch mal den Konfigurationspublisher probieren, da bekommst du eine schöne Eingabemaske (im Hintergrund ist hier aber auch eine Exceltabelle das steuernde Element).

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 19. Apr. 2018 editiert.]

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