FUNCTION first_proj_axis

(* SCHEMA integrated_cnc_schema; *)
FUNCTION first_proj_axis (
    z_axis : direction;
    arg    : direction 
    ) : direction;
  LOCAL
    x_axis : direction;
    v : direction;
    z : direction;
    x_vec : vector;
  END_LOCAL;
    IF NOT EXISTS(z_axis) THEN
      RETURN (?);
    ELSE
      z := normalise(z_axis);
      IF NOT EXISTS(arg) THEN
        IF (z.direction_ratios <> [ 1.0, 0.0, 0.0 ]) AND (z.
          direction_ratios <> [ -1.0, 0.0, 0.0 ]) THEN
          v := dummy_gri || direction([ 1.0, 0.0, 0.0 ]);
        ELSE
          v := dummy_gri || direction([ 0.0, 1.0, 0.0 ]);
        END_IF;
      ELSE
        IF arg.dim <> 3 THEN
          RETURN (?);
        END_IF;
        IF cross_product(arg, z).magnitude = 0.0 THEN
          RETURN (?);
        ELSE
          v := normalise(arg);
        END_IF;
      END_IF;
      x_vec := scalar_times_vector(dot_product(v, z), z);
      x_axis := vector_difference(v, x_vec).orientation;
      x_axis := normalise(x_axis);
    END_IF;
    RETURN (x_axis);
END_FUNCTION; -- 10303-42: geometry_schema

Referenced By

Defintion first_proj_axis is references by the following definitions:
DefinitionType
 base_axis FUNCTION
 build_axes FUNCTION


[Top Level Definitions]

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