Hallo Gemeinde,
in einem parametrischen Block möchte ich die Neigung (zur Vertikalen) einer in x-Richtung 140 Einheiten langen Linie mittels einer "Winkelbemaßung (Dynamisch)" in Abhängigkeit von der Größe des benutzerdefinierten Parameters "Höhe" steuern.
Bei einer Höhe bis zu exakt 140 Einheiten soll der Winkel 45° betragen, bei einer geringeren Höhe soll die y-Länge der in x-Richtung 140 Einheiten langen Linie gleich der Höhe sein; d.h. der Winkel (zur Vertikalen) soll arcustangens 140/Höhe sein.
Hierfür benutze ich für den Ausdruck der dynamischen Winkelbemaßung folgende Formel:
Code:
45*max(0;sign(Höhe-140))+atan(140/Höhe)*max(0;sign(140.00000001-Höhe))
Hierbei ist der Wert 140.00000001 gemäß der maximal hochgedrehten DDUNITS der kleinstmögliche Wert, der noch nicht 140 ist.
Funktioniert soweit halbwegs, gibt jedoch beim Übergang 140.00000001 zu 140 zu 139.99999999 nur annähernd korrekte Werte aus ... daher: hat jemand eine Idee, wie man den Bereich >=140 besser beschreiben kann ... mir gefällt der Ausdruck wegen der offensichtlich notgedrungen verwendeten vielen Kommastellen nicht so wirklich.
Die ursprünglich verwendete Formel:
Code:
45*max(0;sign(Höhe-140))+atan(140/Höhe)*max(0;sign(140-Höhe))
gibt bei einer Höhe von genau 140 (erwartungsgemäß) einen Winkel von 0° aus
Grüße
Gernot
[EDIT1] zur Verdeutlichung einen Beispielblock hochgeladen
[Diese Nachricht wurde von ArCADe-Spieler am 01. Apr. 2025 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP