Formeln der Feature-Parameter
- Datentypen
- Funktionsliste: mathematische Operatoren
- Funktionsliste 3D
- Funktionsliste Stahlbau
- Erläuterungen zu Feature-Formeln
- cat_item_id(..)
- profile_angle(..)
- direction_of_profile(..)
- webdirection_inside(..)
Syntax in der Dokumentation
Funktionen werden in der Doku mit folgender Syntax beschrieben:
funktionsname(Parameter1: Datentyp1, Parameter2: Datentyp2): Rückgabedatentyp
Dies beschreibt die Funktion namens funktionsname
. Diese erwartet, zwei Parameter zu bekommen: Parameter1
mit dem Datentyp Datentyp1
und Parameter2
vom Typ Datentyp2
. Die Funktion gibt einen Wert vom Typ Rückgabedatentyp
zurück.
Beispiel
distance_point_edge(p: Point, e: Edge): Real
Die Funktion distance_point_edge
erwartet zwei Parameter: Einen Point
und eine Edge
und gibt einen Real
-Wert zurück.
Formale Spezifikation
= |
ConditionedExpression |
|
ConditionedExpression |
= |
Expression1 ["?" Expression1 ":" Expression1 ] Wenn der Abschnitt mit dem Fragezeichen existiert, wird überprüft, ob der Ausdruck vor dem Fragezeichen Null ist. Wenn ja, wird der Ausdruck hinter dem Doppelpunkt genommen, wenn nein, der vor dem Doppelpunkt. |
Expression1 |
= |
Expression2 { ("&" | "|") Expression2} "&" ist ein logisches Und, "|" ein logisches Oder. |
Expression2 |
= |
SimpleExpression [ ( "=" | "<" | ">" | "<=" | ">=" | "<>" ) SimpleExpression ] Das Ergebnis des Vergleichs ist 1 für wahr und 0 für falsch. |
SimpleExpression |
= |
[ "+" | "-" | "!" ] Term { ("+" | "-") Term } "!" ist das logische Nicht. Wenn der Term hinter dem "!" Null ist, ist das Ergebnis 1, wenn nicht, 0 |
Term |
= |
Factor { ( "*" | "/" | "%") Factor } "%" berechnet den ganzzahligen Rest bei der Division (modulo). Für die Arbeit mit Kommazahlen verwenden Sie die Funktion modulo. |
Factor |
= |
SimpleFactor ["^"SimpleFactor] "^" ist die Potenzierung.
|
SimpleFactor |
= |
Variable | Number | Constant | Function Call | "(" ConditionedExpression ")" Über die Klammerung können Formeln beliebig geschachtelt werden. |
FunctionCall |
= |
Function "(" [ ConditionedExpression { "," ConditionedExpression } ] ")" Parameterlose Funktionen werden mit leeren Klammern aufgerufen: f(). |
Constant |
= |
"pi" |
Function |
= |
"sin" | "cos" | "tan" | ... | "aint" | ... Die genaue Liste der Funktionen siehe unten. |
Variable |
= |
Letter {LetterOrDigit | "_"} Variablennamen müssen mit einem Buchstaben beginnen. Die maximale Länge eines Variablennamens bestimmt die zulässige Länge von HiCAD-Macro-Variablen. |
Number |
= |
(Number1 | Number2) [("e" | "E") ["-" | "+"] Digits] Beispiele: 1; 1.2; .2; 1e10; 1.23E5. |
Number1 |
= |
Digits ["." Digits] |
Number2 |
= |
"." Digits |
LetterOrDigit |
= |
Letter | Digits |
Letter |
= |
"a" | ... | "z" | "ä" | "ö" | "ü" | "A" | ... | "Z" | "Ä" | "Ö" | "Ü" |
Digit |
= |
"0" | ... | "9" |
Digits |
= |
Digit {Digit} |
List | = | " (" SimpleExpression ( "; " | {"; " SimpleExpression}) ") " |
Beispiele
-a
-a*b
-(a-b)
1>100?a:b+20
(Wenn l
größer als 100 ist, erhält man
den Wert von 'a', sonst 'b'+20)
1>100&h<50?a:b+20
active_part()
(Funktionen müssen, auch wenn sie keine Parameter haben, Klammern haben)
-
(10;50;100)[typ]
Auswahl aus einer Liste - Die Variable typ
gibt an, welcher Wert aus der Liste zurückgegeben werden soll: Ist typ=1
, wird 10
zurückgegeben; typ=2
gibt 50
zurück und typ=3
resultiert in der Rückgabe von 100
.