/*
uf_modl_slots.h
File description:
Open API modeling routines to create, edit and inquire about slots.
*****************************************************************************/
#ifndef UF_MODL_SLOTS_H_INCLUDED
#define UF_MODL_SLOTS_H_INCLUDED
/***************************************************************************
***************************************************************************/
#include <uf_defs.h>
#include <uf_modl_types.h>
#include <libufun_exports.h>
/****************************************************************************
Creates a ball slot feature using an origin, tool axis, slot direction,
ball diameter, depth, and length. One of two methods of creation is
taken depending on whether you want a thru slot or not.
1. If you want a defined distance, then input the distance and
placement face (face_li). Also, set the value of face_t1 and face_t2
to zero.
2. If you want to have the slot thru from one face to another, then
supply the placement face and the two faces from which to
measure the slot distance.
The output of this function is the object identifier of the ball slot.
The "Face for the RPO constraint" parameter, face_li, can accept a datum plane.
You can pass in the tag of the datum plane feature or datum plane body. For
relative datums the parent body is used as the target. For an absolute datum
the target body must be set by calling UF_MODL_active_part.
Environment: Internal and External
See Also:
History:
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_ball_slot(
double location[] ,/* <I>
Ball slot location.
*/
double tool_axis[] ,/* <I>
Ball slot tool axis.
*/
double direction[] ,/* <I>
Ball slot direction.
*/
char * width ,/* <I>
Ball slot width.
*/
char * depth ,/* <I>
Ball slot depth.
*/
char * distance ,/* <I>
Ball slot distance.
*/
tag_t face_li ,/* <I>
Face for the RPO constraint.
*/
tag_t face_t1 ,/* <I>
Face for thru face 1.
*/
tag_t face_t2 ,/* <I>
Face for thru face 2.
*/
tag_t * feature_tag /* <O>
Feature object identifier of created ball slot
*/
);
/******************************************************************************
Changes the type of slot feature. New fields are initialized as
indicated in the table above. If you want to change these fields, you
need to edit their expressions.
Environment: Environment: Internal and External
See Also: Refer to example
History: This function was originally released in V15.0.
*******************************************************************************/
extern UFUNEXPORT int UF_MODL_edit_slot_type
(
tag_t slot_feature, /* <I>
Slot feature
*/
UF_MODL_slot_type_e_t new_slot_type /* <I>
New slot type. Valid types are:
UF_RECTANGULAR_SLOT
UF_BALL_END_SLOT, UF_U_SLOT
UF_T_SLOT, UF_DOVE_TAIL_SLOT
*/
);
/********************************************************************
Gets U slot parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_u_slot_parms(
tag_t feature_obj_id ,/* <I>
A feature object identifier.
*/
int edit ,/* <I>
This is an unused flag. It was used to determine
whether to return the right-hand side or both sides
of an expression. Currently, both sides of an
expression are returned.
*/
char ** width ,/* <OF>
Slot width. This must be freed by calling
UF_free.
*/
char ** depth ,/* <OF>
Slot depth. This must be freed by calling
UF_free.
*/
char ** corner_rad ,/* <OF>
Slot corner radius This must be freed by calling
UF_free.
*/
char ** distance ,/* <OF>
Slot distance for a none thru slot. This must be freed by cal
ling
UF_free.
*/
int * thru_flag /* <O>
A thru flag can be TRUE or FALSE, if set to
TRUE then there is no distance to the slot.
*/
);
/********************************************************************
Gets T-slot parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_t_slot_parms(
tag_t feature_obj_id ,/* <I>
A feature object identifier.
*/
int edit ,/* <I>
This is an unused flag. It was used to determine
whether to return the right-hand side or both sides
of an expression. Currently, both sides of an
expression are returned.
*/
char ** top_width ,/* <OF>
Slot top width. This must be freed by calling UF_free.
*/
char ** top_depth ,/* <OF>
Slot top depth. This must be freed by calling UF_free.
*/
char ** bottom_width ,/* <OF>
Slot bottom width. This must be freed by calling UF_free.
*/
char ** bottom_depth ,/* <OF>
Slot bottom depth. This must be freed by calling UF_free.
*/
char ** distance ,/* <OF>
Slot distance for a none thru slot. This must be freed by
calling UF_free.
*/
int * thru_flag /* <O>
A thru flag can be TRUE or FALSE, if set to
TRUE then there is no distance to the slot.
*/
);
/********************************************************************
Gets rectangular slot parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_rect_slot_parms(
tag_t feature_obj_id ,/* <I>
A feature object identifier
*/
int edit ,/* <I>
This is an unused flag. It was used to determine
whether to return the right-hand side or both sides
of an expression. Currently, both sides of an
expression are returned.
*/
char ** width ,/* <OF>
Slot width. This must be freed by calling
UF_free.
*/
char ** depth ,/* <OF>
Slot depth. This must be freed by calling
UF_free.
*/
char ** distance ,/* <OF>
Slot distance for a none thru slot. This
must be freed by calling UF_free.
*/
int * thru_flag /* <O>
A thru flag can be TRUE or FALSE, if set to
TRUE then there is no distance to the slot.
*/
);
/********************************************************************
Gets dove tail slot parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_dovetail_slot_parms(
tag_t feature_obj_id ,/* <I>
A feature object identifier
*/
int edit ,/* <I>
This is an unused flag. It used to determine whether
to return the right-hand side or both sides of an
expression. Currently, both sides of an expression
are returned.
*/
char ** width ,/* <OF>
Slot width. This must be freed by calling
UF_free.
*/
char ** depth ,/* <OF>
Slot depth. This must be freed by calling
UF_free.
*/
char ** angle ,/* <OF>
Dove tail angle. This must be freed by calling
UF_free.
*/
char ** distance ,/* <OF>
Slot distance for a none thru slot. This must
be freed by calling UF_free.
*/
int * thru_flag /* <O>
A thru flag can be TRUE or FALSE, if set to
TRUE then there is no distance to the slot.
*/
);
/********************************************************************
Gets ball slot parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_ball_slot_parms(
tag_t feature_obj_id ,/* <I>
A feature object identifier
*/
int edit ,/* <I>
This is an unused flag. It used to determine whether
to return the right-hand side or both sides of an
expression. Currently, both sides of an expression
are returned.
*/
char ** ball_dia ,/* <OF>
Ball diameter. This must be freed by calling
UF_free.
*/
char ** depth ,/* <OF>
Slot depth. This must be freed by calling
UF_free.
*/
char ** distance ,/* <OF>
Slot distance for a non-thru slot. This must
be freed by calling UF_free.
*/
int * thru_flag /* <O>
A thru flag can be TRUE or FALSE, if set to
TRUE then there is no distance to the slot.
*/
);
/****************************************************************************
Creates a dove tail slot feature using an origin, tool axis, slot
direction, width, angle, depth, and length. One of two creation
methods is taken depending on whether you want a thru slot or not.
1. If you want a defined distance, then input the distance and
placement face (face_li). Also, set the value of face_t1 and face_t2
to zero.
2. If you want to have the slot thru from one face to another, then
supply the placement face and the two faces from which to
measure the slot distance.
The "Face for the RPO constraint" parameter, face_li, can accept a datum plane.
You can pass in the tag of the datum plane feature or datum plane body. For
relative datums the parent body is used as the target. For an absolute datum
the target body must be set by calling UF_MODL_active_part.
The output of this function is the object identifier associated to the
dove tail slot.
Environment: Internal and External
See Also:
History:
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_dove_tail_slot(
double location[] ,/* <I>
Dove tailslot location.
*/
double tool_axis[] ,/* <I>
Dove tailslot tool axis.
*/
double direction[] ,/* <I>
Dove tailslot direction.
*/
char * width ,/* <I>
Dove tailslot width.
*/
char * depth ,/* <I>
Dove tailslot depth.
*/
char * angle ,/* <I>
Dove tailslot angle.
*/
char * distance ,/* <I>
Dove tailslot distance.
*/
tag_t face_li ,/* <I>
Face for the RPO constraint.
*/
tag_t face_t1 ,/* <I>
Face for thru face 1.
*/
tag_t face_t2 ,/* <I>
Face for thru face 2.
*/
tag_t * feature_tag /* <O>
Feature object identifier of created dovetail-slot
*/
);
/****************************************************************************
Creates a rectangular slot feature using an origin, tool axis, slot
direction, length, width, and depth. One of two creation methods are
taken depending on whether you want a thru slot or not. If you want a
defined distance, then input the distance and placement face. Also,
set the value of face_t1 and face_t2 to zero. But, if you want to have
the slot thru from one face to another, then supply the placement face
and the two faces from which to measure the slot distance. The
output of this function is the object identifier associated to the
rectangular slot.
The "Face for the RPO constraint" parameter, face_li, can accept a datum plane.
You can pass in the tag of the datum plane feature or datum plane body. For
relative datums the parent body is used as the target. For an absolute datum
the target body must be set by calling UF_MODL_active_part.
Environment: Internal and External
See Also:
History:
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_rect_slot(
double location[] ,/* <I>
Rectangular slot location.
*/
double tool_axis[] ,/* <I>
Rectangular slot tool axis.
*/
double direction[] ,/* <I>
Rectangular slot direction.
*/
char * width ,/* <I>
Rectangular slot width.
*/
char * depth ,/* <I>
Rectangular slot depth.
*/
char * distance ,/* <I>
Rectangular slot distance.
*/
tag_t face_li ,/* <I>
Face for the RPO constraint.
*/
tag_t face_t1 ,/* <I>
Face for thru face 1.
*/
tag_t face_t2 ,/* <I>
Face for thru face 2.
*/
tag_t * feature_tag /* <O>
Feature object identifier of created rectangular slot
*/
);
/****************************************************************************
Creates a T-slot feature using an origin, tool axis, slot direction, top
and bottom width, top and bottom depth, and length. One of two
creation methods are taken depending on whether you want a thru
slot or not. If you want a defined distance, then input the distance and
placement face. Also, set the value of face_t1 and face_t2 to zero.
But, if you want to have the slot thru from one face to another, then
supply the placement face and the two faces from which to measure
the slot distance. The output of this function is the object identifier
associated to the T-slot.
The "Face for the RPO constraint" parameter, face_li, can accept a datum plane.
You can pass in the tag of the datum plane feature or datum plane body. For
relative datums the parent body is used as the target. For an absolute datum
the target body must be set by calling UF_MODL_active_part.
Environment: Internal and External
See Also:
History:
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_t_slot(
double location[] ,/* <I>
T slot location.
*/
double tool_axis[] ,/* <I>
T slot tool axis.
*/
double direction[] ,/* <I>
T slot direction.
*/
char * t_width ,/* <I>
T slot top width.
*/
char * t_depth ,/* <I>
T slot top depth.
*/
char * b_width ,/* <I>
T slot bottom width.
*/
char * b_depth ,/* <I>
T slot bottom depth.
*/
char * distance ,/* <I>
T slot distance.
*/
int face_li ,/* <I>
Face for the RPO constraint.
*/
int face_t1 ,/* <I>
Face for thru face 1.
*/
int face_t2 ,/* <I>
Face for thru face 2.
*/
tag_t * feature_tag /* <O>
Feature object identifier of created t slot
*/
);
/****************************************************************************
Creates a U slot feature using an origin, tool axis, slot direction,
width, corner radius, depth, and length. One of two creation methods
are taken depending on whether you want a thru slot or not. If you
want a defined distance, then input the distance and placement face.
Also, set the value of face_t1 and face_t2 to zero. But if you want to
have the slot thru from one face to another, then supply the
placement face and the two faces from which to measure the slot
distance. The output of this function is the object identifier associated
to the U slot.
The "Face for the RPO constraint" parameter, face_li, can accept a datum plane.
You can pass in the tag of the datum plane feature or datum plane body. For
relative datums the parent body is used as the target. For an absolute datum
the target body must be set by calling UF_MODL_active_part.
Environment: Internal and External
See Also:
History:
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_u_slot(
double location[] ,/* <I>
U slot location.
*/
double tool_axis[] ,/* <I>
U slot tool axis.
*/
double direction[] ,/* <I>
U slot direction.
*/
char * width ,/* <I>
U slot width.
*/
char * depth ,/* <I>
U slot depth.
*/
char * radius ,/* <I>
U slot corner radius.
*/
char * distance ,/* <I>
U slot distance.
*/
tag_t face_li ,/* <I>
Face for the RPO constraint.
*/
tag_t face_t1 ,/* <I>
Face for thru face 1.
*/
tag_t face_t2 ,/* <I>
Face for thru face 2.
*/
tag_t * feature_tag /* <O>
Feature object identifier of created u slot
*/
);
#undef EXPORTLIBRARY
#endif /* UF_MODL_SLOTS_H_INCLUDED */