/*
uf_modl_pads.h
File description:
Open API modeling routines to create, edit and inquire about pads.
*****************************************************************************/
#ifndef UF_MODL_PADS_H_INCLUDED
#define UF_MODL_PADS_H_INCLUDED
/***************************************************************************
***************************************************************************/
#include <uf_defs.h>
#include <uf_modl_types.h>
#include <libufun_exports.h>
/********************************************************************
Gets rectangular pad parameters.
Environment: Internal and External
See Also:
History:
********************************************************************/
extern UFUNEXPORT int UF_MODL_ask_rect_pad_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 * size[3] ,/* <OF>
Pad size (length , width , height).
*/
char ** corner_rad ,/* <OF>
Pad corner radius. This must be freed by
calling UF_free.
*/
char ** taper_angle /* <OF>
Pad taper angle. This must be freed by
calling UF_free.
*/
);
/****************************************************************************
Creates a rectangular pad feature using a location, direction, X
direction, size, corner radius and taper angle. Along with these items
a placement face is needed to determine which face the pad is
associated to. The output of this function is the object identifier
associated to the rectangular pad.
Return:
Return code:
= 0: successful
> 0: failing error number
< 0: failing error number
Environment: Internal and External
History: For V18.0, a datum plane may be input as the face defining the
RPO constraint.
See Also: See example
UF_MODL_ask_rect_pad_parms
***************************************************************************/
extern UFUNEXPORT int UF_MODL_create_rect_pad(
double location[] ,/* <I>
Rectangular pad location.
*/
double direction[] ,/* <I>
Rectangular pad direction.
*/
double x_dir[3] ,/* <I>
Rectangular pad x direction.
*/
char * size[3] ,/* <I>
Rectangular pad size.
*/
char * radius ,/* <I>
Rectangular pad corner radius.
*/
char * angle ,/* <I>
Rectangular pad taper angle.
*/
tag_t face ,/* <I>
Face for the RPO constraint (may be a datum plane).
*/
tag_t * feature_obj_id /* <O>
Feature object identifier of created rect. pad
*/
);
/******************************************************************************
Creates a general pad. Expressions are created for the taper_angle,
top_offset, placement_radius, and top_radius if they are used.
Environment: Internal and External
See Also: UF_MODL_ask_general_pad
UF_MODL_edit_general_pad
UF_MODL_free_general_pad
please see example
History:
******************************************************************************/
extern UFUNEXPORT int UF_MODL_create_general_pad(
UF_MODL_faces_p_t placement_faces ,/* <I>
The faces or a face collector used to define the shape of
the pad at the placement faces. The first
face is used to determine the target
body.
*/
UF_MODL_offset_trans_faces_p_t top_faces ,/* <I>
The faces or a face collector used to define
the top of the pad.
The top can either be an offset or
translation of the specified faces.
If it is desired to have the top be
an offset or translate of the
placement faces, then just set the
UF_MODL_faces_p_t pointer within
this input structure to the
placement_faces pointer value.
*/
UF_MODL_pocketpad_outline_p_t outline ,/* <I>
The definition of the curves used to
define the shape of the pad. The shape
can be defined by a single set of curves
or section builder
at either the placement face or the top
face, and then the other curves or section builder are
derived with a taper angle. The shape
can also be defined by specifying curves or section builders
at both the placement face and the top
face.
*/
UF_MODL_parm_p_t placement_radius ,/* <I>
The specification of the radius desired
between the side of the pad and the
placement face.
*/
UF_MODL_parm_p_t top_radius ,/* <I>
The specification of the radius desired
between the side of the pad and the top
of the pad.
*/
tag_t * general_pad_tag /* <O>
Object identifier for the general pad
feature.
*/
);
/******************************************************************************
Retrieves the parameters used to create a general pad.
Environment: Internal and External
See Also: please see example
UF_MODL_create_general_pad
UF_MODL_edit_general_pad
UF_MODL_free_general_pad
History:
******************************************************************************/
extern UFUNEXPORT int UF_MODL_ask_general_pad(
tag_t general_pad_tag ,/* <I>
Object identifier of the general pad
feature whose parameters are to be
retrieved.
*/
UF_MODL_faces_p_t placement_faces ,/* <OF>
The faces used to define the shape of
the pad at the placement faces. The
first face is used to determine the
target body. The caller must allocate
a UF_MODL_faces_t structure and pass a
pointer to that structure. This will be
filled with allocated data which must be
freed by calling UF_MODL_free_general_pad.
*/
UF_MODL_offset_trans_faces_p_t top_faces ,/* <OF>
The definition of the top of the pad. The
top can either be an offset or translation
of the specified faces. If the top was
an offset or translate of the placement
faces, then the UF_MODL_faces_p_t pointer
within this structure, points to the
placement faces structure. The caller must
allocate a UF_MODL_offset_trans_faces_t
structure and pass a pointer to that
structure. This will be filled with
allocated data which must be freed by
calling UF_MODL_free_general_pad.
*/
UF_MODL_pocketpad_outline_p_t outline ,/* <OF>
The definition of the curves used to
define the shape of the pad. The
shape can be defined by a single set of
curves at either the placement face or
the top face, and then the other curves
are derived with a taper angle. The
shape can also be defined by specifying
curves at both the placement face and the
top face. The caller must allocate a
UF_MODL_pocketpad_outline_t structure and
pass a pointer to that structure. This will
be filled with allocated data which must be
freed by calling UF_MODL_free_general_pad.
*/
UF_MODL_parm_p_t placement_radius ,/* <OF>
The specification of the radius desired
between the side of the pad and the
placement face. The caller must allocate a
UF_MODL_parm_t structure and pass a
pointer to that structure. This will
be filled with allocated data which must be
freed by calling UF_MODL_free_general_pad.
*/
UF_MODL_parm_p_t top_radius /* <OF>
The specification of the radius desired
between the side of the pad and the top of the pad.
The caller must allocate a UF_MODL_parm_t
structure and pass a pointer to that structure.
This will be filled with allocated data which must
be freed by calling UF_MODL_free_general_pad.
*/
);
/******************************************************************************
Retrieves the parameters with face collectors and section builders
used to create a general pad.
Environment: Internal and External
See Also: please see example
UF_MODL_create_general_pad
UF_MODL_edit_general_pad
UF_MODL_free_general_pad
History:
******************************************************************************/
extern UFUNEXPORT int UF_MODL_ask_general_pad1(
tag_t general_pad_tag ,/* <I>
Object identifier of the general pad
feature whose parameters are to be
retrieved.
*/
UF_MODL_faces_p_t placement_faces ,/* <OF>
The face collector used to define the shape of
the pad at the placement faces. The
first face of the face collector is used to determine the
target body. The caller must allocate
a UF_MODL_faces_t structure and pass a
pointer to that structure. This will be
filled with allocated data which must be
freed by calling UF_MODL_free_general_pad.
*/
UF_MODL_offset_trans_faces_p_t top_faces ,/* <OF>
The definition of the top of the pad. The
top can either be an offset or translation
of the specified face collector. If the top was
an offset or translate of the placement
faces, then the UF_MODL_faces_p_t pointer
within this structure, points to the
placement faces structure. The caller must
allocate a UF_MODL_offset_trans_faces_t
structure and pass a pointer to that
structure. This will be filled with
allocated data which must be freed by
calling UF_MODL_free_general_pad.
*/
UF_MODL_pocketpad_outline_p_t outline ,/* <OF>
The definition of the curves used to
define the shape of the pad. The
shape can be defined by a single section builder
at either the placement face or
the top face, and then the other section builder
is derived with a taper angle. The
shape can also be defined by specifying
section builders at both the placement face and the
top face. The caller must allocate a
UF_MODL_pocketpad_outline_t structure and
pass a pointer to that structure. This will
be filled with allocated data which must be
freed by calling UF_MODL_free_general_pad.
*/
UF_MODL_parm_p_t placement_radius ,/* <OF>
The specification of the radius desired
between the side of the pad and the
placement face. The caller must allocate a
UF_MODL_parm_t structure and pass a
pointer to that structure. This will
be filled with allocated data which must be
freed by calling UF_MODL_free_general_pad.
*/
UF_MODL_parm_p_t top_radius /* <OF>
The specification of the radius desired
between the side of the pad and the top of the pad.
The caller must allocate a UF_MODL_parm_t
structure and pass a pointer to that structure.
This will be filled with allocated data which must
be freed by calling UF_MODL_free_general_pad.
*/
);
/*******************************************************************************
Edits the various parameters of the general pad and reconstructs it
based on these new parameters.
Environment: Internal and External
See Also:
See Also: UF_MODL_create_general_pad
UF_MODL_ask_general_pad
UF_MODL_free_general_pad
please see example
History:
******************************************************************************/
extern UFUNEXPORT int UF_MODL_edit_general_pad(
tag_t general_pad_tag ,/* <I>
Object identifier of the general pad
feature to be modified.
*/
UF_MODL_faces_p_t placement_faces ,/* <I>
The faces or face collector used to define the shape of
the pad at the placement faces. The first
face is used to determine the target
body.
*/
UF_MODL_offset_trans_faces_p_t top_faces ,/* <I>
The definition of the top of the
pad. The top can either be an
offset or translation of the
specified faces or face collector. If it is
desired to have the top be an
offset or translate of the
placement faces, then just set
the UF_MODL_faces_p_t
pointer within this input i
structure to the
placement_faces pointer value.
*/
UF_MODL_pocketpad_outline_p_t outline ,/* <I>
The definition of the curves used to
define the shape of the pad. The shape
can be defined by a single set of curves
or section builder
at either the placement face or the top
face, and then the other curves
or section builder are
derived with a taper angle. The shape
can also be defined by specifying
curves or section builders
at both the placement face and the top
face.
*/
UF_MODL_parm_p_t placement_radius ,/* <I>
The specification of the radius desired
between the side of the pad and the
placement face.
*/
UF_MODL_parm_p_t top_radius /* <I>
The specification of the radius desired
between the side of the pad and the top
of the pad.
*/
);
/******************************************************************************
Frees all the memory associated with the parameters returned from
UF_MODL_ask_general_pad.
Environment: Internal and External
See Also: UF_MODL_create_general_pad
UF_MODL_ask_general_pad
UF_MODL_edit_general_pad
please see example
History:
******************************************************************************/
extern UFUNEXPORT int UF_MODL_free_general_pad(
UF_MODL_faces_p_t placement_faces ,/* <I>
The faces used to define the shape of
the pad at the placement faces. The
first face is used to determine the
target body.
*/
UF_MODL_offset_trans_faces_p_t top_faces ,/* <I>
The definition of the top of the
pad. The top can either be an
offset or translation of the
specified faces. If it is
desired to have the top be an
offset or translate of the
placement faces, then just set
the UF_MODL_faces_p_t
pointer within this input i
structure to the
placement_faces pointer value.
*/
UF_MODL_pocketpad_outline_p_t outline ,/* <I>
The definition of the curves used to
define the shape of the pad. The
shape can be defined by a single set of
curves at either the placement face or
the top face, and then the other curves
are derived with a taper angle. The
shape can also be defined by
specifying curves at both the
placement face and the top face.
*/
UF_MODL_parm_p_t placement_radius ,/* <I>
The specification of the radius desired
between the side of the pad and the
placement face.
*/
UF_MODL_parm_p_t top_radius /* <I>
The specification of the radius desired
between the side of the pad and the
top of the pad.
*/
);
#undef EXPORTLIBRARY
#endif /* UF_MODL_PADS_H_INCLUDED */