FUNCTION base_axis

(* SCHEMA integrated_cnc_schema; *)
FUNCTION base_axis (
    dim   : INTEGER;
    axis1 : direction;
    axis2 : direction;
    axis3 : direction 
    ) : LIST [2:3] OF direction;
  LOCAL
    u : LIST [2:3] OF direction;
    factor : REAL;
    d1 : direction;
    d2 : direction;
  END_LOCAL;
    IF dim = 3 THEN
      d1 := NVL(normalise(axis3), dummy_gri || direction([ 0.0, 0.0, 1.0 ])
        );
      d2 := first_proj_axis(d1, axis1);
      u := [ d2, second_proj_axis(d1, d2, axis2), d1 ];
    ELSE
      IF EXISTS(axis1) THEN
        d1 := normalise(axis1);
        u := [ d1, orthogonal_complement(d1) ];
        IF EXISTS(axis2) THEN
          factor := dot_product(axis2, u[2]);
          IF factor < 0.0 THEN
            u[2].direction_ratios[1] := -u[2].direction_ratios[1];
            u[2].direction_ratios[2] := -u[2].direction_ratios[2];
          END_IF;
        END_IF;
      ELSE
        IF EXISTS(axis2) THEN
          d1 := normalise(axis2);
          u := [ orthogonal_complement(d1), d1 ];
          u[1].direction_ratios[1] := -u[1].direction_ratios[1];
          u[1].direction_ratios[2] := -u[1].direction_ratios[2];
        ELSE
          u := [ dummy_gri || direction([ 1.0, 0.0 ]), dummy_gri || 
            direction([ 0.0, 1.0 ]) ];
        END_IF;
      END_IF;
    END_IF;
    RETURN (u);
END_FUNCTION; -- 10303-42: geometry_schema

Referenced By

Defintion base_axis is references by the following definitions:
DefinitionType
 cartesian_transformation_operator_3d ENTITY


[Top Level Definitions]

Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:25-02:00