###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

###

    Documentation of possible inputs into CAD inputfields:

    Possible Inputs:
    - Select object in grafic-window (with left mousebutton)
    - key-in
    - select object from objectbrowser
    ..

    Parameter for normal (perpendicular)
    - key Pageup / Page Down
    - Text "PERP" - or empty

    - empty (default) -
    - PERP            - normal (perpendicular)

    Parameter ON OFF
    - ON: Text "ON"
    - OFF: empty (default)

    Parameter for copy / replace obj
    - Text "REPL" - replace the original object
    - empty (default) - copy the object

    X - Coordinate / distance
    - enter a number with the keyboard: eg "12.5"
    - define a variable - key-in or select from objectbrowser; eg "V20"
    - select a point - provides the X-Coordinate of this point eg "X(P20)"
    - select a vector - provides the X-Coordinate of this vector eg "X(D20)"
    - select a line - provides the difference of the X-Coordinates of this Line eg "X(L20)"

    Y - Coordinate / distance
    - enter a number with the keyboard: eg "12.5"
    - define a variable - key-in or select from objectbrowser; eg "V20"
    - select a point - provides the Y-Coordinate of this point eg "Y(P20)"
    - select a vector - provides the Y-Coordinate of this vector eg "Y(D20)"
    - select a line - provides the difference of the Y-Coordinates this Line eg "Y(L20)"

    Z - Coordinate / distance
    - enter a number with the keyboard: eg "12.5"
    - define a variable - key-in or select from objectbrowser; eg "V20"
    - select a point - provides the Z-Coordinate of this point eg "Z(P20)"
    - select a vector - provides the Z-Coordinate of this vector eg "Z(D20)"
    - select a line - provides the difference of the Z-Coordinates of this Line eg "Z(L20)"

    Number (Value)
    - enter a number with the keyboard:
      - direct: eg "12.5"
      - from variable: eg "V20"
      - length of a vector: eg "D23"
    - Selection of a line provides the length of the line
    - Selection of a circle or arc provides the radius
    - Selection of 2 points provides the distance
    - Selection of a point and a line provides the normal - distance

    - Selection of "X(P#)" gives the X-coordinate of this point (analog Y(P#) and Z(P#))
    - Selection of "X(L#)" - the difference of the X-coordinates of this Line (analog Y(P#) and Z(P#))

    The output is eg "VAL(12.5)"
      or "VAL(L20)"                 # the length of line L20
      or "VAL(Z(P20))"              # the Z-coordinate of P20

    Angle
    - enter a number with the keyboard:
      - direct: eg "45"
      - from variable: eg "V20"

    - Selection of a circle or arc provides the opening-angle
    - Selection of a a line, a vector or two points
        provides the angle relative to the X-axis in the XY-plane

    The last parameter can be "REV"; this gives the complementary-angle
      (eg 90 changes to to 270)

    The output is eg "ANG(90)"
    Unit is Degree.

    Vector / Direction
    Define a vector by:

    - Selection of a line or polygonsegment (also from inside CCV)

    - Selection of circle plane ellipse for normal-vector

    - Selection of 2 points

    - Selection of a Standardvector
      - select from the vectors shown in bottom-right corner
      - or enter with the keyboard (DX or DY or DZ or opposite DIX DIY DIZ)

    - Selection of a defined Vector
      - by PageUp/PageDown-key;
      - from ObjectBrowser (see obj-browser)
      - enter with the keyboard (eg "D12")

    - enter a Vectors with the keyboard:
      - Cartesian (X/Y/Z-Components): eg "0 0 1" (a Z-Vector)
      - Polar (Angle): eg "ANG(45)"
      - Polar (rotation-angle, tilt-angle): eg "ANG(45) ANG(30)"

    - Vector from angles - input from keyboard:
        - rotation-angle around the active Z-axis
        ANG(120)          # X-axis rotated around Z 120 deg

        - rotation-angle (around active Z-axis) and tilt-angle around new Y-axis
        ANG(45) ANG(30)   # X-axis rotated around Z 45 deg, tilt 30 deg

    - Vector between 2 points
        P20 P21

    - Vector tangential to curve:
        L20         # parallel line or segment of polygon
        S20 0.5     # curveID, parameter of point on curve (from select point at curve)

    - Vector on plane or surface parallel to Isoparametric direction U or V
        R20 DRX     # X-axis of plane R20  (DRY, DRZ)

    - Normalvector of circle or plane or surface

    - Normalvector from 2 Objects (line or point or vector)
        DX DY      # result is DZ (normalvector of 2 given vectors)
        L20 DZ     # normalvector of line and vector

    - Normalvector from 3 points
        P20 P21 P22       # P20 = point on X-axis, P21 = origin; P22 = near Y-axis

    The last parameter can be "REV"; this gives the complementary-angle
      (eg 90 changes to to 270)

    The last but one parameter can be the vectorlength.
      Example: "DX 2.5" or "DX 2.5 REV"

    Output is embedded into "D(..)"
      eg "0 0 1"  changes to "D(0 0 1)"

    Point
    Define a Point by:
    - Selection of a Point
    - Selection of a Curve - provides the parametric Position on the  Object
    - Selection of a surface - provides the parametric Position on the  Object
        (at the moment only for B-Spline-surfaces)
    - input a Point with the keyboard:
      - Cartes. Coordinates: "100 0 0"
      - Relative:  basepoint, Offset-X/Y/Z: "P22 Z(100)"
      - Relative:  basepoint, direction(Vector), [distance]: "P22 D20 100"
      - Polar:  basepoint, angle, distance: "P22 ANG(45) 100"
      - Polar:  basepoint, 2 angles, distance: "P22 ANG(45) ANG(30) 100"

    The output is eg "P(100 0 0)"

    Line
    Define a Line by:
    - Selection of a line or polygonsegment (also from inside CCV)
    - define two points (select or indicate)
    - provide a point and a vector (select or indicate)
    - define a Line with the keyboard:
      - Horizontal Line: define a Y-value; eg "Y(10)"
      - Vertical Line: define a X-value; eg "X(10)"
      - two points: eg "P(0 0 0) P(10 0 0)"
      - point and Vector: eg "P20 D(0 0 1)" or "P20 DX"
      - point and angle: eg "P(10 0 0) ANG(45)"
      - point, rotation-angle, tilt-angle: eg "P22 ANG(45) ANG(30)"

    The output is eg "L(Y(10))"

    Circle
    Define a circle by:

    - Selection of a circle or arc
    - Selection of a circular segment inside a CCV
    - define a circle with the keyboard:
      - center, radius: eg "P22 100"
      - center, point on the circumference: eg "P22 P(100 0 0)"
      - tree points on the circumference: eg "P21 P22 P23"

    The output is eg "C(P22 100)"

    Plane (Referencesystem)
    Define a plane (position, orientation) by:

    Definition of the active Constructionplane with different origin:
      - select new origin
        (all axes of the active Constructionplane will be used)
        Example:
        R(P(100 0 0))

    Selection of a plane or existing plane, distance from origin on Z-axis:
      - Standardplane:
        - select from the planes shown in bottom-right corner (RZ or RY or RX)
        - or enter with the keyboard (RZ or RY or RX)
      - or select existing plane
      - key distance from origin on Z-axis
        Example:
        R(R20 50)  # like R20 - 50 units along Z above origin of R20

    Definition of a existing plane with different origin:
      - select new origin, select plane
        (all axes of this plane will be used)
        Example:
        R(R20 P22)

    Definition from origin and X-axis:
      - select origin,
      - select a vector for the X-axis or a point on the X-axis
        Example:
        R(P22 D(L22))      # origin P22, X-axis from L22
        R(P22 D(ANG(45)))  # origin P22, active-X-axis rotated 45 deg. around Z-axis
        # active-X-axis rotated 45 deg. around Z-axis, 30 deg. tilted around new Y-axis
        R(P22 D(ANG(45) ANG(30)))

    Definition from origin and X-axis and Y-axis:
      - select origin,
      - select a vector for the X-axis or a point on the X-axis
      - select a vector for the Y-axis or a point near the Y-axis
        Example:
        # R(  [])
        R(P22 DZ DX)  # active Z-axis is new X-axis, active X-axis is new Y-axis

    .................................
    Definition from origin and Z-axis (Normalvector):
      - key "PERP", select origin, select Z-axis
      - select origin,
      - select a vector for the Z-axis or a point on the Z-axis
        Example:
        # R(PERP   [] )
        R(PERP P(0 0 0) DIY)

    Definition from origin and Z-axis (Normalvector) and X-axis:
      - "PERP", select origin, select Z-axis, select X-axis
        (axis can be defined by a Vector or a Line or a point, see below)
        Example:
        R(PERP P(16 0) DIY D(DX,ANG(30))

    Plane from a circular arc or a ellipse:
      - Selection of a circle or arc (also from inside CCV)
        origin is the center of the object

    ---------------------------------------
    The definition of axes is done by providing vectors (D..)
    - see Definition of vectors

    Output of vectors is embedded into "D(..)"
       eg D(S20 0.5)       # tangential vector to curve at parameter 0.5

    Output of the plane is embedded into "R(..)"
      eg "P22 90"  changes to "R(P22 90)"

    Selection of all geometric Objects is possible.

    Selection of lines, circles, curves is possible;
    Points, surfaces and bodies cannot be used.

    Selection of all geometric Objects but not points is possible.

    Selection of circle or Ellipse is possible.

    Circle or Curve

    Selection of circle or curve (Ellipse, Polygon, Spline, CCV) is possible.
    For closed contours.

    Point or Line or Circle

    Selection of point or Line or circle is possible.

    Value or point or Vektor

    Definition of a value or
    Selection of point or Vektor is possible.

    Value or point

    Definition of a value or
    Selection of a point is possible.

    Point, Line, Circle or Curve

    Selection of point, Line, circle or curve is possible.

    Surfaces and bodies cannot be used.

    Surfaces (A) or Bodies (B)

    Selection of surfaces or bodies is possible.

    Definition "basic subModel"
    - select name of internal subModel from list (select "LIST")
    - or select subModel
    - or key modelname

    See Internal models

    Definition "external subModel"

    Selection of a Model-Filename by

    - Selection from the File-List
      (List from Button "FILE" or middle-mousebutton)

    - Selection of a already existing Submodels

    See External models
    See Symbolic filenames.

    Definition "CatalogPart"

    Selection of a catalogpart by

    - Selection from the File-List
      (List from Button "FILE" or middle-mousebutton)
      - select part or change catalog ("change catalog")

    - Selection of a already existing catalogpart

    See Catalog-parts
    See Catalogs

    Dimensioning-direction

    Enter X or Y or Z with the keyboard (Standard ist P (parallel))
    or use the PageUp-key.

    controlpoints

    Enter "CTRL" or use the PageUp-key.

    Version-number

    Enter a number with the keyboard or use the PageUp-key or the Buttons "NXT¦PRV".
    Output is a digit.

    Turn (invert, "reverse")

    Enter "REV" with the keyboard or use the PageUp-key or the "REV"-Button.

    Along (Default) or across ("CX")

    Enter "CX" with the keyboard or use the PageUp-key or the "CX"-Button.

    Uhrzeigersinn (CW) or Gegenuhrzeigersinn (Default, CCW)

    Enter "CW" with the keyboard or use the PageDown-key or the "CW"-Button.

    Starting from a point unlimited or in both directions unlimited.

    use the PageDown-key or enter with the keyboard:
    "UNL"     in both directions unlimited
    "UNL1"    at startpoint unlimited
    "UNL2"    at endpoint unlimited

    Definition of direction with reference to an inputobject.

    use the PageDown-key or enter with the keyboard:
    "PARL"    parallel
    "CX"      across (normal, rectangular)

    Text

    Enter Text with the keyboard.
    The text will be output unmodified (without enclosing apostrophes "")

    Textstring

    Enter Text with the keyboard.
    The text will be output with enclosing apostrophes "".

    - special characters for text, notes