PK_LATTICE_find_nabox_o_t   

struct PK_LATTICE_find_nabox_o_s
    {
    int                 o_t_version;    --- version number of options
                                        --- structure.
    PK_LOGICAL_t        have_axis1;     --- whether axis1 supplied
                                        --- ( PK_LOGICAL_false )
    PK_AXIS1_sf_t       axis1;          --- local origin and one axis for nabox
    PK_LOGICAL_t        have_axis2;     --- whether axis2 supplied
                                        --- ( PK_LOGICAL_false )
    PK_AXIS2_sf_t       axis2;          --- local coordinate system for nabox
                                        --- ( world coordinate system )
    };
typedef struct PK_LATTICE_find_nabox_o_s PK_LATTICE_find_nabox_o_t;



This structure contains optional controls for PK_LATTICE_find_nabox.


Specific Errors:
PK_ERROR_bad_combination     (MILD) 'have_axis1' and 'have_axis2' are
                             both set to PK_LOGICAL_true

Used in:

PK_LATTICE_find_nabox


This option structure contains the fields:

'have_axis1'            whether the application wishes to specify one of the
                        axes of the non-aligned box and leave the other two
                        for Parasolid to calculate.

'axis1'                 the 'location' and 'axis' to occur in the 'basis_set'
                        in the PK_NABOX_sf_t returned by PK_LATTICE_find_nabox
                        when 'have_axis1' is PK_LOGICAL_true.

'have_axis2'            whether or not the application has supplied a local
                        coordinate system in which a non-aligned box should
                        be calculated.

'axis2'                 the coordinate system in which a non-aligned box is
                        required if 'have_axis2' is set to PK_LOGICAL_true.


Parasolid determined coordinate system
--------------------------------------

When 'have_axis1' and 'have_axis2' are both PK_LOGICAL_false, Parasolid
will find a local coordinate system which is aligned with a near-minimal
bounding box for the given lattice. The local axes will be ordered in such
a way that the local X axis has the greatest dimension, the local Y axis
the next greatest dimension and the local Z axis the smallest dimension.
In terms of the fields of a PK_AXIS2_sf_t
structure:
  local X is 'ref_direction'
  local Z is 'axis'
  local Y is the cross product of local Z and local X.

Specifying a single axis
------------------------

When 'have_axis1' is PK_LOGICAL_true, Parasolid will calculate a non-aligned
box containing the given lattice such that the 'location' and 'axis' of its
'basis_set' will be the 'location' and 'axis' from 'axis1', and whose
projection onto the plane defined by 'axis1' is of minimal area. The
'ref_direction' is taken from the longest side of the rectangle bounding the
projection of the non-aligned box onto this plane.

Specifying a full coordinate system
-----------------------------------

If 'have_axis2' is PK_LOGICAL_true, then Parasolid will find the non-aligned
box of the given lattice within the coordinate system defined by 'axis2'. In
this case the 'basis_set' in the PK_NABOX_sf_t returned by
PK_LATTICE_find_nabox will be identical to 'axis2'.