/*
uf_motion.h
File description:
This is the Open API public interface to Scenario for Motion+. The functions
in this file can be used to:
- Simulate an existing motion model
- Create, modify, and use packaging options
- Obtain specific results about the motion model simulation
*****************************************************************************/
#ifndef UF_MOTION_H_INCLUDED
#define UF_MOTION_H_INCLUDED
#include <uf_defs.h>
#include <uf_motion_types.h>
#include <libufun_cae_exports.h>
/***************************************************************************
Definitions and Prototypes for the Open API interface routines for
Scenario for Motion+ projects.
Note on Error Handling: All High level Motion Open API functions return
a failure code of non zero if an error is encountered. A descriptive
message associated with a failure code can be obtained by calling
UF_get_fail_message with the failure code as the argument.
*****************************************************************************/
/****************************************************************************
**************************************************************************/
#define ERROR_UF_MOTION_base 3530000
#define UF_MOTION_not_initialized (ERROR_UF_MOTION_base)
#define UF_MOTION_null_tag_not_allowed (ERROR_UF_MOTION_base + 2)
#define UF_MOTION_null_pointer_not_allowed (ERROR_UF_MOTION_base + 3)
#define UF_MOTION_invalid_joint_scale_factor (ERROR_UF_MOTION_base + 4)
#define UF_MOTION_invalid_icon_scale_factor (ERROR_UF_MOTION_base + 5)
#define UF_MOTION_invalid_angular_units (ERROR_UF_MOTION_base + 6)
#define UF_MOTION_invalid_file_name (ERROR_UF_MOTION_base + 7)
#define UF_MOTION_invalid_measure_type (ERROR_UF_MOTION_base + 8)
#define UF_MOTION_invalid_input_data (ERROR_UF_MOTION_base + 9)
#define UF_MOTION_input_not_driver (ERROR_UF_MOTION_base +10)
#define UF_MOTION_articulation_not_initialized (ERROR_UF_MOTION_base +11)
#define UF_MOTION_object_belongs_to_another_link (ERROR_UF_MOTION_base +12)
#define UF_MOTION_only_one_joint_driver_allowed (ERROR_UF_MOTION_base +13)
#define UF_MOTION_joints_cause_circular_references (ERROR_UF_MOTION_base +14)
/* Do not change the following without changing error_bases.h! */
#define UF_MOTION_max_error (ERROR_UF_MOTION_base +5000)
/****************************************************************************
* P R O T Y P E D E F I N I T I O N S *
****************************************************************************/
/*****************************************************************************
This function initializes the input measurement structure with standard
default values. It is highly recommended that all measurement structures get
initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_trace_struct
UF_MOTION_init_interference_struct
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_measurement_struct(
UF_MOTION_measurement_t *measurement_struct /*<O>
The measurement structure to
be initialized.
*/
);
/*****************************************************************************
This function creates a measurement object in the Scenario for Motion+
database according to the parameters passed in through the measurement
structure. If successful, the tag of the new measurement object is returned.
The measurement object is used in the post processor to determine the distance
or angle between two objects at a particular time step.
Environment: Internal and External
See Also: UF_MOTION_ask_measurement
UF_MOTION_edit_measurement
UF_MOTION_measure
History: Released in V18.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_measurement(
const UF_MOTION_measurement_t *meas_struct, /*<I>
The required parameters to
create the measurement.
*/
tag_t *meas_tag /*<O>
The new measurement tag. This tag identifies the
measurement in the database.
*/
);
/*****************************************************************************
This function returns the measurement structure for an input measurement tag.
Environment: Internal and External
See Also: UF_MOTION_edit_measurement
UF_MOTION_create_measurement
UF_MOTION_measure
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_measurement(
const tag_t meas_tag, /*<I>
The tag of the measurement to return. This tag
is the one returned from the creation function
(UF_MOTION_create_measurement). It can also be
found using object cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
UF_MOTION_measurement_t *meas_struct /*<O>
The measurement structure
for the input tag.
*/
);
/*****************************************************************************
This function sets the input measurement parameters to the input measurement
tag.
Environment: Internal and External
See Also: UF_MOTION_ask_measurement
UF_MOTION_create_measurement
UF_MOTION_measure
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_edit_measurement(
const tag_t meas_tag, /*<I>
The tag of the measurement to edit. This tag
is returned from UF_MOTION_create_measurement.
It can also be found using object cycle
functions (eg. UF_OBJ_cycle_objs_by_type).
*/
const UF_MOTION_measurement_t *meas_struct /*<I>
The measurement structure
for the input tag.
*/
);
/*****************************************************************************
This function deletes the input measurement object.
Environment: Internal and External
See Also: UF_MOTION_ask_measurement
UF_MOTION_create_measurement
UF_MOTION_measure
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_delete_measurement(
const tag_t meas_tag /*<I>
The tag of the measurement to delete. This tag
is returned from UF_MOTION_create_measurement.
It can also be found using object cycle
functions (eg. UF_OBJ_cycle_objs_by_type).
*/
);
/*****************************************************************************
This function initializes the input trace structure with standard default
values. It is highly recommended that all trace structures get initialized
with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_measurement_struct
UF_MOTION_init_interference_struct
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_trace_struct(
UF_MOTION_trace_t *trace_struct /*<O>
The trace structure to be initialized.
*/
);
/*****************************************************************************
This function creates a trace object in the Scenario for Motion+ database
according to the parameters passed in through the trace structure. If
successful, the tag of the new trace object is returned. The trace object is
used in the post processor to create a copy of a solid body in its simulated
position at a particular time step.
Environment: Internal and External
See Also: UF_MOTION_ask_trace
UF_MOTION_edit_trace
UF_MOTION_trace
History: Released in V18.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_trace(
const UF_MOTION_trace_t *trace_struct, /*<I>
The required parameters to
create the trace.
*/
tag_t *trace_tag /*<O>
The new trace tag. This tag identifies the trace in
the database.
*/
);
/*****************************************************************************
This function returns the trace structure from an input trace tag.
Environment: Internal and External
See Also: UF_MOTION_edit_trace
UF_MOTION_create_trace
UF_MOTION_trace
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_trace(
const tag_t trace_tag, /*<I>
The tag of the trace to return. This tag is
the one returned from UF_MOTION_create_trace. It
can also be found using object cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
UF_MOTION_trace_t *trace_struct /*<O>
The trace structure of the input tag.
*/
);
/*****************************************************************************
This function sets the input trace parameters to the input trace tag.
Environment: Internal and External
See Also: UF_MOTION_ask_trace
UF_MOTION_create_trace
UF_MOTION_trace
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_edit_trace(
const tag_t trace_tag, /*<I>
The tag of the trace to edit. This tag is the
one returned from UF_MOTION_create_trace. It can
also be found using object cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
const UF_MOTION_trace_t *trace_struct /*<I>
The trace structure for the input
tag.
*/
);
/*****************************************************************************
This function deletes the input trace object.
Environment: Internal and External
See Also: UF_MOTION_ask_trace
UF_MOTION_create_trace
UF_MOTION_trace
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_delete_trace(
const tag_t trace_tag /*<I>
The tag of the trace to delete. This tag
is returned from UF_MOTION_create_trace.
It can also be found using object cycle
functions (eg. UF_OBJ_cycle_objs_by_type).
*/
);
/*****************************************************************************
This function initializes the input interference structure with standard
default values. It is highly recommended that all interference structures get
initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_trace_struct
UF_MOTION_init_measurement_struct
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_interference_struct(
UF_MOTION_interference_t *interference_struct /*<O>
The interference structure
to be initialized.
*/
);
/*****************************************************************************
This function creates an interference object in the Scenario for Motion+
database according to the parameters passed in through the interference
structure. If successful, the tag of the new interference object is returned.
The interference object is used in the post processor to determine if two
solid bodies interfere with each other at a particular time step. The
interference object can then be used to create a new interference body of the
intersection volume.
Environment: Internal and External
See Also: UF_MOTION_ask_interference
UF_MOTION_interference
UF_MOTION_create_interference_body
History: Released in V18.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_interference(
const UF_MOTION_interference_t *interfere_struct, /*<I>
The parameters
required to create the
interference object.
*/
tag_t *interference_tag /*<O>
The new interference tag. This tag identifies
the interference object in the database.
*/
);
/*****************************************************************************
This function returns the interference structure for an input interference
tag.
Environment: Internal and External
See Also: UF_MOTION_edit_interference
UF_MOTION_create_interference
UF_MOTION_interference
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_interference(
const tag_t interfere_tag, /*<I>
The tag of the interference to return.
This tag is the one returned from the
UF_MOTION_create_interference function.
It can also be found using object cycle
functions (eg. UF_OBJ_cycle_objs_by_type).
*/
UF_MOTION_interference_t *interference_struct /*<O>
The interference structure
for the input tag.
*/
);
/*****************************************************************************
This function sets the input interference parameters to the input interference
tag.
Environment: Internal and External
See Also: UF_MOTION_ask_interference
UF_MOTION_create_interference
UF_MOTION_interference
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_edit_interference(
const tag_t interfere_tag, /*<I>
The tag of the interference to edit. This
tag is returned from the function
UF_MOTION_create_interference. It can also
be found using object cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
const UF_MOTION_interference_t *interfere_struct /*<I>
The interference
structure for the input
tag.
*/
);
/*****************************************************************************
This function deletes the input interference object.
Environment: Internal and External
See Also: UF_MOTION_ask_interference
UF_MOTION_create_interference
UF_MOTION_interference
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_delete_interference(
const tag_t interfere_tag /*<I>
The tag of the interference to delete. This
tag is returned from the function
UF_MOTION_create_interference. It can also
be found using object cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
);
/*****************************************************************************
This function performs a measurement between specific objects at a particular
step in the analysis results. The measurement parameters must be set in the
database prior to calling this function using UF_MOTION_create_measurement.
There must also be a valid set of analysis results in the database before this
function is called.
Environment: Internal and External
See Also: UF_MOTION_create_measurement
UF_MOTION_solve_model
UF_MOTION_trace
UF_MOTION_interference
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_measure(
const tag_t measurement_tag, /*<I>
The tag of the measurement to be
performed. It was created using
UF_MOTION_create_measurement and stores all
of the parameters needed to complete the
measurement.
*/
const int animation_step, /*<I>
The step number of the analysis results
currently loaded in the database. It cannot
be negative and it cannot be greater than
the total number of steps in the analysis
results.
*/
double *measurement /*<O>
The results of the measurement. The units of this
result depends on the type of measurement and the
system of units the model is currently in.
*/
);
/*****************************************************************************
This function performs a trace of a specific object. The object is copied at
its position in the analysis step and the tag of the copied object is
returned. The trace parameters must first be stored in the model using
UF_MOTION_create_trace or UF_MOTION_edit_trace. Before this function can be
called, valid analysis results must be present in the database.
Environment: Internal and External
See Also: UF_MOTION_create_trace
UF_MOTION_solve_model
UF_MOTION_measure
UF_MOTION_interference
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_trace(
const tag_t trace_tag, /*<I>
The tag of the trace object. This tag was
created using UF_MOTION_create_trace and contains
all of the parameters needed to perform the
trace.
*/
const int step_number, /*<I>
The step number of the analysis results that
are currently available in the database. It
cannot be negative and it cannot be greater
than the number of steps in the results.
*/
tag_t *new_object_tag /*<O>
The tag of the new object copied from the traced
object.
*/
);
/*****************************************************************************
This function is used to trace all of the links in the model at the input
solution step. This function cannot be called until after there is a valid
solution in the database. To create a solution, use UF_MOTION_solve_model,
UF_MOTION_step_articulation, or UF_MOTION_calculate_static_equilibrium. This
function will copy all of the geometry of each link in the model and return
the new geometry tags back.
Environment: Internal and External
See Also: UF_MOTION_trace
UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_calculate_static_equilibrium
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_trace_model(
const int step_num, /*<I>
The step number of the current analysis solution
in the database. It cannot be negative and it
cannot exceed the number of valid steps in the
solution.
*/
const int target_layer, /*<I>
The layer to place the new objects on. It
must be a valid NX layer.
*/
int *num_tags, /*<O>
The number of geometry tags copied and returned in the
next argument.
*/
tag_t **geom_tags /*<OF>
The tags of the copied geometry of all the links.
The memory for this array of tags must be freed
using UF_free().
*/
);
/*****************************************************************************
This function is used to determine if two solid bodies interfere with each
other at a particular step of the analysis results. The interference
parameters must be defined previously. Also there must be a valid set of
analysis results in the database.
Environment: Internal and External
See Also: UF_MOTION_trace
UF_MOTION_measure
UF_MOTION_solve_model
UF_MOTION_create_interference_body
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_interference(
const tag_t interference_tag, /*<I>
The tag of the interference object that
contains the required parameters to
perform the interference check. This
tag was created using the function
UF_MOTION_create_interference.
*/
const int step_num, /*<I>
The step number to perform the interference
check for. It cannot be negative and it cannot
be greater than the total number of steps
available in the analysis results stored in the
database.
*/
int *interference_result /*<O>
The results of the interference check are
returned as a boolean. A value of TRUE means
the objects interfere while a value of false
means they do not interfere.
*/
);
/*****************************************************************************
This function creates a new body from the intersection of two interference
bodies at the input step of the analysis results. The interference parameters
must be defined previously. Also there must be a valid set of analysis
results in the database.
Environment: Internal and External
See Also: UF_MOTION_trace
UF_MOTION_measure
UF_MOTION_solve_model
UF_MOTION_interference
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_interference_body(
const tag_t interference_tag, /*<I>
The tag of the interference object that
contains the required parameters to
perform the interference check. This
tag was created using the function
UF_MOTION_create_interference.
*/
const int analysis_step_num, /*<I>
The step number to perform the
interference check for. It cannot be
negative and it cannot be greater than
the total number of steps available in
the analysis results stored in the
database.
*/
const UF_MOTION_reference_frame_t frame, /*<I>
The reference frame to place
the newly created body in. If
the frame is UF_MOTION_absolute,
the new body will remain in the
absolute position where it was
created. If the frame is
UF_MOTION_first_link or
UF_MOTION_second_link, the new
body will be attached to the
links of the first or second
interference solid bodies as
defined in the interference
tag. By attaching the new body
to a link, it is in a position
to be subtracted from the link
geometry after it moves back to
the design position.
*/
int *num_interference_bodies, /*<O>
The number of interference bodies created.
*/
tag_t **interference_body_tags /*<OF>
The newly created bodies made from the
intersection of the two interference
bodies.
The memory for this array of tags
must be freed using UF_free().
*/
);
/*****************************************************************************
This function initializes the Scenario for Motion+ application by initializing
the internal databases and solvers. This function also performs the license
checking for Scenario for Motion+. The application cannot be used unless a
valid license is found.
Environment: Internal and External
See Also: UF_MOTION_terminate
UF_MOTION_is_initialized
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_initialize( void );
/*****************************************************************************
This function is used to determine if the Scenario for Motion+ application has
been properly initialized.
Environment: Internal and External
See Also: UF_MOTION_initialize
UF_MOTION_terminate
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_is_initialized(
logical *true_false /*<O>
If Scenario for Motion is properly initialized,
this value will be non-zero. If Scenario for
Motion is not initialized, this value will be zero.
*/
);
/*****************************************************************************
This function closes all internal databases and solvers for Scenario for
Motion and returns the memory to the system.
Environment: Internal and External
See Also: UF_MOTION_is_initialized
UF_MOTION_initialize
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_terminate( void );
/*****************************************************************************
This function initializes the input solver parameters structure with standard
default values. It is highly recommended that all solver parameters
structures get initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_trace_struct
UF_MOTION_init_interference_struct
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_solver_parameters_struct(
UF_MOTION_solver_parameters_t *solver_params_struct /*<O>
The solver
parameters structure
to be initialized.
*/
);
/*****************************************************************************
This function gets the current solver parameters from Scenario for Motion+.
Environment: Internal and External
See Also: UF_MOTION_edit_solver_parameters
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_solver_parameters(
UF_MOTION_solver_parameters_t *solver_params_struct /*<O>
The current solver
parameters in
Scenario for Motion.
*/
);
/*****************************************************************************
This function sets new solver parameters to Scenario for Motion+.
Environment: Internal and External
See Also: UF_MOTION_ask_solver_parameters
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_edit_solver_parameters(
const UF_MOTION_solver_parameters_t *solver_params /*<I>
The new solver
parameters for
Scenario for Motion.
*/
);
/*****************************************************************************
All joints that have a joint motion input defined can be articulated even
though the motion input type might not be articulation. This function returns
the articulation step size for the input joint tag. The tag must belong to a
joint that has a motion input defined or else an error condition is returned.
Environment: Internal and External
See Also: UF_MOTION_edit_artic_step_size
UF_MOTION_step_articulation
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_artic_step_size(
const tag_t joint_tag, /*<I>
The tag of the joint to return the step size
for. This tag is returned from the function
UF_MOTION_create_joint. It can also be found
using object cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
double *step_size /*<O>
The size of the articulation joint step. The units
of the step are based on the units of the joint.
*/
);
/*****************************************************************************
All joints that have a joint motion input defined can be articulated even
though the motion input type might not be articulation. This function sets
the articulation step size for the input joint tag. The tag must belong to a
joint that has a motion input defined or else an error condition is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_artic_step_size
UF_MOTION_step_articulation
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_edit_artic_step_size(
const tag_t joint_tag, /*<I>
The tag of the joint to set the articulation
step size on. This tag must belong to a joint
that has a motion input defined or else an
error condition is returned. This tag is
returned from UF_MOTION_create_joint. It can
also be found using cycle functions
(eg. UF_OBJ_cycle_objs_by_type).
*/
const double step_size /*<I>
The new size of the articulation joint step.
The units of the step are based on the units of
the joint.
*/
);
/*****************************************************************************
This function performs the analysis of the motion model. Prior to calling
this function the model must be completely ready to analyze. This function is
a time-based analysis. If the model has one or more degrees of freedom, this
function performs a dynamic analysis. If the model has no degrees of freedom
(including redundant constraints) this function performs a kinematic analysis.
The results of the analysis are stored in the internal database until another
analysis is performed or the model is changed. To access the results, use
any of the following:
1) Packaging options, including measure, trace, and interference.
2) Write the results to disk using UF_MOTION_export_adams_res_file.
3) Get specific results from a joint or marker.
Environment: Internal and External
See Also: UF_MOTION_step_articulation
UF_MOTION_measure
UF_MOTION_review_adams_res_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_solve_model(
const double time, /*<I>
The total time for the analysis in the current time
units.
*/
int *num_steps /*<I/O>
The number of steps for the solver to take during the
analysis. This parameter is used with the time
parameter to determine the average step size for the
analysis. The total number of steps successfully saved
in the database is returned.
*/
);
/*****************************************************************************
This function initializes the solver for an articulation run. It must be
called prior to any calls to UF_MOTION_step_articulation and it must be paired
with a call to UF_MOTION_terminate_articulation.
Environment: Internal and External
See Also: UF_MOTION_step_articulation
UF_MOTION_edit_artic_step_size
UF_MOTION_terminate_articulation
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Created in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_articulation( void );
/*****************************************************************************
This function solves the motion model for the number of steps of the
articulation model. It is a position based analysis. Multiple calls to this
function will be appended together to form the full analysis. For example, if
this function is called successfully for seven times with a single step each time,
the analysis results in the database will have seven steps.
The exception case is when solver has locked-up, the number of total steps is not
equal to the number of calls.
The difference is it will not append results onto the end of a time-based simulation.
Instead, the first call to this function following a time-based simulation
or a static analysis will clear the database of those results.
Similar to UF_MOTION_solve_model, the database results can be accessed by the following:
1) Packaging options, including measure, trace, and interference.
2) Write the results to disk using UF_MOTION_export_adams_res_file.
3) Get specific results from a joint or marker.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_edit_artic_step_size
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_step_articulation(
const int num_steps, /*<I>
The number of steps to take for the step sizes
currently stored on the articulation joints.
*/
int *total_steps /*<O>
The number of successful steps that are available in
the database.
*/
);
/*****************************************************************************
This function terminates the solver for an articulation run. It must be
called after all calls to UF_MOTION_step_articulation and it must be paired
with a call to UF_MOTION_init_articulation. Failure to terminate the solver
after an articulation run may corrupt the solver.
Environment: Internal and External
See Also: UF_MOTION_init_articulation
UF_MOTION_step_articulation
History: Created in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_terminate_articulation( void );
/*****************************************************************************
This function is used to calculate the static equilibrium of the motion model.
Following a successful completion of this function, there will be one results
step in the database. Similar to UF_MOTION_solve_model, these database results
can be accessed by the following:
1) Packaging options, including measure, trace, and interference.
2) Write the results to disk using UF_MOTION_export_adams_res_file.
3) Get specific results from a joint or marker.
Environment: Internal and External
See Also: UF_MOTION_step_articulation
UF_MOTION_solve_model
UF_MOTION_review_adams_res_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_calculate_static_equilibrium(
int* static_result_steps /*<O>
Total number of successful steps that are available in
the database.
*/ );
/*****************************************************************************
This function reviews the existing result file of the motion model. Prior to
calling this function the model must be analyzed atleast once.
Inputs: Result file name (without path)
Outputs: None
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_calculate_static_equilibrium
UF_MOTION_export_adams_res_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Created in NX4
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_review_adams_res_file(
char *res_file /*<I>
The filename (only) of the .res file to write.
The filename should end with .res followed by a
terminating NULL character.
*/
);
/*****************************************************************************
This function writes the ADAMS .res file to disk. This file contains the
results of the latest solve-static equilirium, articulation, or a full
simulation. This is the only way to save the solver results; the results are
not saved in the part file. However, the results file does not need to be
written for any other purpose. This file is only used to store results for
later use. If the model is not changed, these results can be read back in to
Scenario for Motion for further processing.
Environment: Internal and External
See Also: UF_MOTION_init_stl_parameters_struct
UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_calculate_static_equilibrium
UF_MOTION_export_adams_anl_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_export_adams_res_file(
char *file_name /*<I>
The filename of the .res file to write. It
should include the entire path to the file.
The filename should end with .res followed by a
terminating NULL character.
*/
);
/*****************************************************************************
This function is used to get specific translational displacement results from
the analysis results stored in the database. If this function is called when
no results are in the database, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
UF_MOTION_ask_rot_displacement_results
UF_MOTION_ask_velocity_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_trans_displacement_results(
const tag_t motion_object, /*<I>
The tag of the object to get the results
for. This is usually a joint, constraint,
coupler, marker, or primitive.
*/
const UF_MOTION_vector_component_t component, /*<I>
The desired component of
the displacement (Example:
UF_MOTION_magnitude or
UF_MOTION_x_component).
*/
const UF_MOTION_reference_frame_t ref_frame, /*<I>
The reference frame that
the results will be
resolved in (Example:
UF_MOTION_absolute).
*/
int *number_of_results, /*<O>
The number of results returned in the next
argument. This will equal the number of
steps in the solution.
*/
double **results /*<OF>
The results requested. This array must be freed by
the calling function using UF_free().
*/
);
/*****************************************************************************
This function is used to get specific rotational displacement results from
the analysis results stored in the database. If this function is called when
no results are in the database, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
UF_MOTION_ask_trans_displacement_results
UF_MOTION_ask_torque_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_rot_displacement_results(
const tag_t motion_object, /*<I>
The tag of the object to get the results
for. This is usually a joint, constraint,
coupler, marker, or primitive.
*/
const UF_MOTION_disp_angle_t component, /*<I>
The desired displacement angle.
This can be the Euler angles
that follow the body 3-1-3
convention. See the enum
definition for more information.
*/
const UF_MOTION_reference_frame_t ref_frame, /*<I>
The reference frame that
the results will be
resolved in (Example:
UF_MOTION_absolute).
*/
int *number_of_results, /*<O>
The number of results returned in the next
argument. This will equal the number of
steps in the solution.
*/
double **results /*<OF>
The results requested. The unit is radian.
This array must be freed
by the calling function using UF_free().
*/
);
/*****************************************************************************
This function is used to get specific velocity results from the analysis
results stored in the database. Both translational and rotational velocities
can be returned from this function. If this function is called when no
results are in the database, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
UF_MOTION_ask_trans_displacement_results
UF_MOTION_ask_acceleration_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_velocity_results(
const tag_t motion_object, /*<I>
The tag of the object to get the results
for. This is usually a joint, constraint,
coupler, marker, or primitive.
*/
const UF_MOTION_motion_type_t type, /*<I>
The velocity type: UF_MOTION_rotation
or UF_MOTION_translation.
*/
const UF_MOTION_vector_component_t component, /*<I>
The desired component of
the velocity (Example:
UF_MOTION_magnitude or
UF_MOTION_x_component).
*/
const UF_MOTION_reference_frame_t ref_frame, /*<I>
The reference frame that
the results will be
resolved in.
*/
int *number_of_results, /*<O>
The number of results returned in the next
argument. This will equal the number of
steps in the solution.
*/
double **results /*<OF>
The results requested. For angular velocity, the values
are in radian per second. This array must be freed by
the calling function using UF_free().
*/
);
/*****************************************************************************
This function is used to get specific acceleration results from the analysis
results stored in the database. It can return both translational and
rotational accelerations. If this function is called when no results are in
the database, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
UF_MOTION_ask_trans_displacement_results
UF_MOTION_ask_velocity_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_acceleration_results(
const tag_t motion_object, /*<I>
The tag of the object to get the results
for. This is usually a joint, constraint,
coupler, marker, or primitive.
*/
const UF_MOTION_motion_type_t type, /*<I>
The type of acceleration:
UF_MOTION_rotation or
UF_MOTION_translation.
*/
const UF_MOTION_vector_component_t component, /*<I>
The desired component of
the acceleration (Example:
UF_MOTION_magnitude or
UF_MOTION_x_component).
*/
const UF_MOTION_reference_frame_t ref_frame, /*<I>
The reference frame that
the results will be
resolved in.
*/
int *number_of_results, /*<O>
The number of results returned in the next
argument. This will equal the number of
steps in the solution.
*/
double **results /*<OF>
The results requested. For angular acceleration,
the values are in radian per square second.
This array must be freed by
the calling function using UF_free().
*/
);
/*****************************************************************************
This function is used to get specific force results from the analysis results
stored in the database. If this function is called when no results are in the
database, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_torque_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_force_results(
const tag_t motion_object, /*<I>
The tag of the object to get the results
for. This is usually a joint, constraint,
coupler, marker, or primitive.
*/
const UF_MOTION_vector_component_t component, /*<I>
The desired component of
the force (Example:
UF_MOTION_magnitude or
UF_MOTION_x_component).
*/
const UF_MOTION_reference_frame_t ref_frame, /*<I>
The reference frame that
the results will be
resolved in.
*/
int *number_of_results, /*<O>
The number of results returned in the next
argument. This will equal the number of
steps in the solution.
*/
double **results /*<OF>
The results requested. This array must be freed by
the calling function using UF_free().
*/
);
/*****************************************************************************
This function is used to get specific torque results from the analysis results
in the database. If this function is called when no results are in the
database, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_torque_results(
const tag_t motion_object, /*<I>
The tag of the object to get the results
for. This is usually a joint, constraint,
coupler, marker, or primitive.
*/
const UF_MOTION_vector_component_t component, /*<I>
The desired component of
the torque (Example:
UF_MOTION_magnitude or
UF_MOTION_x_component).
*/
const UF_MOTION_reference_frame_t ref_frame, /*<I>
The reference frame that
the results will be
resolved in.
*/
int *number_of_results, /*<O>
The number of results returned in the next
argument. This will equal the number of
steps in the solution.
*/
double **results /*<OF>
The results requested. This array must be freed by
the calling function using UF_free().
*/
);
/*****************************************************************************
This function is used to export motion animation to product vision.
This function creates a VFM file which is the ProductVision format for
motion data.
If this function is called when no results are in the
database, an error condition will be returned.To populate the results
into the database the motion model has to be solved.
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
History: Released in V18
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_export_to_product_vision(
const char *full_file_name, /* <I>
The full name of the VFM file to be
exported. The name should include
the directory where the newly created file
needs to be placed.
(e.g., /users/test/file_name
note: On windows use '\' instead of '/' )
If the length of the string is zero then the
scenario directory will be the default directory
and the scenario name will be the default file
name */
UF_MOTION_PV_export_type_t export_option /* <I>
The option to export VFM and JT file or
only the VFM file */
);
/*****************************************************************************
This function initializes the input link structure with standard default
values. It is highly recommended that all link structures get initialized
with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_link_mass_struct
UF_MOTION_init_link_velocity_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_link_struct
(
UF_MOTION_link_t *link_struct /* <I/O>
The link structure to be initialized. */
);
/*****************************************************************************
This function initializes the input link mass structure with standard default
values. It is highly recommended that all link mass structures get
initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_link_struct
UF_MOTION_init_link_velocity_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_link_mass_struct
(
UF_MOTION_link_mass_properties_t *link_mass_struct /* <O> The link mass
structure to be
initialized. */
);
/*****************************************************************************
This function initializes the input link initial velocity structure with
standard default values. It is highly recommended that all link initial
velocity structures get initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_link_struct
UF_MOTION_init_link_mass_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_link_velocity_struct
(
UF_MOTION_link_initial_velocity_t *link_velocity_struct /* <I/O>
The link
initial
velocity
structure
to be
initialized. */
);
/*****************************************************************************
This function creates a link in the Scenario for Motion+ database according to
the parameters passed in through the link structure. If successful, the tag
of the new link is returned. This function does not create initial velocities
or mass properties. To add initial velocities or mass properties to a link,
use UF_MOTION_set_link_initial_velocity and UF_MOTION_set_link_mass_properties
after creating the link with this function.
Environment: Internal and External
See Also: UF_MOTION_ask_link
UF_MOTION_set_link_mass_properties
UF_MOTION_set_link_initial_velocity
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_link
(
UF_MOTION_link_t *link_struct, /* <I>
The required parameters
to create the link.
*/
tag_t *link_tag /* <O>
The new link tag. This tag identifies the
link in the database.
*/
);
/*****************************************************************************
This function returns the link structure for an input link tag.
Environment: Internal and External
See Also: UF_MOTION_set_link
UF_MOTION_ask_link_mass_properties
UF_MOTION_ask_link_initial_velocity
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_link
(
const tag_t link_tag, /* <I>
The tag of the link to return.
This tag is the one returned from
the UF_MOTION_create_link function.
It can also be found using object
cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_link_t *link_struct /* <O>
The link structure for the input tag.
*/
);
/*****************************************************************************
This function sets the input link parameters to the input link tag.
Environment: Internal and External
See Also: UF_MOTION_ask_link
UF_MOTION_set_link_mass_properties
UF_MOTION_set_link_initial_velocity
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_link
(
const tag_t link_tag, /* <I>
The tag of the link to set.
This tag is the one returned from the
UF_MOTION_create_link function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_link_t *link_struct /* <I>
The link structure for the input tag.
*/
);
/*****************************************************************************
This function returns the link mass properties structure for an input link
tag. Default mass properties will be calculated for solid bodies if
UF_MOTION_set_link_mass_properties has been called previously. If the input
link tag has no solid bodies and no mass properties have been set on the link,
an error condition will be returned during solve.
Environment: Internal and External
See Also: UF_MOTION_ask_link
UF_MOTION_set_link_mass_properties
UF_MOTION_remove_link_mass_properties
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_link_mass_properties
(
const tag_t link_tag, /* <I>
The tag of the link to return mass properties.
This tag is the one returned from the
UF_MOTION_create_link function. It can also
be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_link_mass_properties_t *mass_prop_struct /* <O>
The link mass
property structure
for the input tag.
If the mass
properties have been
set by the user, or
default properties
were calculated,
they will be
returned here.
*/
);
/*****************************************************************************
This function sets the link mass properties to the input link tag. If the
link contains solid bodies, default mass properties are calculated. If there
are no solid bodies in the link, then this function must be used to set
valid mass properties before any dynamic analyses can be performed.
Any user defined mass properties passed through this function will overwrite
the default or existing mass properties.
Environment: Internal and External
See Also: UF_MOTION_set_link
UF_MOTION_ask_link_mass_properties
UF_MOTION_remove_link_mass_properties
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_link_mass_properties
(
const tag_t link_tag, /* <I>
The tag of the link to set mass properties.
This tag is the one returned from the
UF_MOTION_create_link function. It can also
be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_link_mass_properties_t *mass_prop_struct /* <I>
The link mass
propertiy
structure for
the input tag.
These mass
properties will
overwrite the
mass properties
that may have
been created
automatically
for the link.
*/
);
/*****************************************************************************
This function removes mass properties from the input link tag,
To revert to the default calculated mass properties for solid bodies,
another call must be made to UF_MOTION_set_link_mass_properties.
All of the non-solid geometry will be massless. If there are no mass
properties defined on the input link, an error condition will be returned
during solve time. To treat solid bodies as massless, use the mass
property toggle in the solver parameters structure.
Environment: Internal and External
See Also: UF_MOTION_set_link_mass_properties
UF_OBJ_delete_object
UF_MOTION_edit_solver_parameters
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_remove_link_mass_properties
(
const tag_t link_tag /* <I>
The tag of the link to remove the user
defined mass properties from.
*/
);
/*****************************************************************************
This function returns the link initial velocity for an input link tag.
All velocities are based on the work coordinate system of the model.
Environment: Internal and External
See Also: UF_MOTION_ask_link
UF_MOTION_ask_link_mass_properties
UF_MOTION_set_link_initial_velocity
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_link_initial_velocity
(
const tag_t link_tag, /* <I>
The tag of the link to return the initial
velocity of. This tag is the one returned
from the UF_MOTION_create_link function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_link_initial_velocity_t *init_vel_struct /* <O>
Data structure
containing the
initial velocities.
*/
);
/*****************************************************************************
This function sets the link initial velocities for the input link tag.
All velocities are based on the work coordinate system of the model.
Do not define more velocities than what is necessary to define the system.
There should never be more initial velocities than degrees of freedom.
Environment: Internal and External
See Also: UF_MOTION_set_link
UF_MOTION_ask_link_initial_velocity
UF_MOTION_remove_link_initial_velocity
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_link_initial_velocity
(
const tag_t link_tag, /* <I>
The tag of the link to set the initial
velocity. This tag is the one returned
from the UF_MOTION_create_link function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_link_initial_velocity_t *init_vel_struct /* <O>
Data structure
containing the
initial velocities
to be defined.
*/
);
/*****************************************************************************
This function removes all initial velocities from the input link tag.
Environment: Internal and External
See Also: UF_MOTION_set_link_initial_velocity
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_remove_link_initial_velocity
(
const tag_t link_tag /* <I>
The tag of the link to remove the initial
velocities from.
*/
);
/*****************************************************************************
This function initializes the input joint structure with standard default
values. It is highly recommended that all joint structures get initialized
with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_joint_limits_struct
UF_MOTION_init_joint_motion_input_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_joint_struct
(
UF_MOTION_joint_t *joint_struct /* <O>
The joint structure to be initialized.
*/
);
/*****************************************************************************
This function initializes the input joint limits structure with standard
default values. It is highly recommended that all joint limits structures
get initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_joint_struct
UF_MOTION_init_joint_motion_input_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_joint_limits_struct
(
UF_MOTION_joint_limits_t *joint_limits_struct /* <O>
The joint limits
structure to be
initialized.
*/
);
/*****************************************************************************
This function initializes the input joint motion input structure with standard
default values. It is highly recommended that all joint motion input
structures get initialized with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_joint_struct
UF_MOTION_init_joint_limits_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_joint_motion_input_struct
(
UF_MOTION_joint_motion_input_t *motion_input_struct /* <O>
The joint motion
input structure
to be initialized.
*/
);
/*****************************************************************************
This function creates a joint in the Scenario for Motion+ database according
to the parameters passed in through the joint structure. If successful, the
tag of the new joint is returned. This function does not allow joint limits
or joint motion input to be created at this point. To add these things to a
joint, use UF_MOTION_set_joint_limits and UF_MOTION_set_joint_motion_input after
creating the joint with this function.
Environment: Internal and External
See Also: UF_MOTION_ask_joint
UF_MOTION_set_joint_limits
UF_MOTION_set_joint_motion_input
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_joint
(
UF_MOTION_joint_t *joint_struct, /* <I>
The required parameters to
create the joint.
*/
tag_t *joint_tag /* <O>
The new joint tag. This tag identifies the
joint in the database.
*/
);
/*****************************************************************************
This function returns the joint structure for an input joint tag.
Environment: Internal and External
See Also: UF_MOTION_set_joint
UF_MOTION_ask_joint_limits
UF_MOTION_ask_joint_motion_input
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_joint
(
const tag_t joint_tag, /* <I>
The tag of the joint to return information
about. This tag is the one returned from the
UF_MOTION_create_joint function. It can also
be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_joint_t *joint_struct /* <O>
The joint structure for the input tag.
*/
);
/*****************************************************************************
This function sets the input joint parameters to the input joint tag.
Environment: Internal and External
See Also: UF_MOTION_ask_joint
UF_MOTION_set_joint_limits
UF_MOTION_set_joint_motion_input
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_joint
(
const tag_t joint_tag, /* <I>
The tag of the joint to set. This tag is the
one returned from the UF_MOTION_create_joint
function. It can also be found using object
cycle functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_joint_t *joint_struct /* <I>
The joint structure
for the input tag.
*/
);
/*****************************************************************************
This function returns the joint limits structure for an input joint tag. If
joint limits are not defined for the input joint tag, an error condition is
returned.
Environment: Internal and External
See Also: UF_MOTION_ask_joint
UF_MOTION_set_joint_limits
UF_MOTION_ask_joint_motion_input
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_joint_limits
(
const tag_t joint_tag, /* <I>
The tag of the joint to return the joint
limits of. This tag is the one returned
from the UF_MOTION_create_joint function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_joint_limits_t *joint_limits_struct /* <O>
The joint limits
structure for the
input tag. If joint
limits are not defined
for the input joint,
zeros will be returned
in the structure and
an error will be
returned from the
function.
*/
);
/*****************************************************************************
This function sets the joint limits for the input joint tag. By default,
joint limits are undefined for all joints. Joint limits can only be set for
revolute and slider joints. If the input tag is another type of joint, an
error condition is returned.
Environment: Internal and External
See Also: UF_MOTION_set_joint
UF_MOTION_ask_joint_limits
UF_MOTION_remove_joint_limits
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_joint_limits
(
const tag_t joint_tag, /* <I>
The tag of the joint to set the joint
limits on. This joint must be a revolute
or a slider. This tag is the one returned
from the UF_MOTION_create_joint function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_joint_limits_t *joint_limits_struct /* <I>
The joint limits
structure for the
input tag. The
maximum joint limit
must be greater
than zero and the
minimum must be
less than zero.
*/
);
/*****************************************************************************
This function removes the joint limits from the input joint tag. If the input
joint does not have joint limits defined, an error condition is returned.
Environment: Internal and External
See Also: UF_MOTION_set_joint_limits
UF_OBJ_delete_object
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_remove_joint_limits
(
const tag_t joint_tag /* <I>
The tag of the joint to remove the joint
limits from.
*/
);
/*****************************************************************************
This function returns the joint motion input structure for the input joint
tag. If motion input has not been defined for the joint, then an error
condition is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_joint
UF_MOTION_ask_joint_limits
UF_MOTION_set_joint_motion_input
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_joint_motion_input
(
const tag_t joint_tag, /* <I>
The tag of the joint to return the
motion input info of. This tag is the
one returned from the UF_MOTION_create_joint
function. It can also be found using
object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_joint_motion_input_t *motion_input_struct /* <O>
The joint motion
input structure
for the input
joint tag.
*/
);
/*****************************************************************************
This function sets the joint motion input to the input joint tag. By default
all joints are created without joint motion input defined. Joint motion input
can only be defined for revolute and slider joints. If another type of joint
tag is used, an error condition will be returned.
Environment: Internal and External
See Also: UF_MOTION_ask_joint
UF_MOTION_ask_joint_motion_input
UF_MOTION_remove_joint_motion_input
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_joint_motion_input
(
const tag_t joint_tag, /* <I>
The tag of the joint to set the motion
input info to. This tag must belong to
either a revolute or a slider joint.
This tag is the one returned from the
UF_MOTION_create_joint function. It can
also be found using object cycle
functions (eg. UF_OBJ_cycle_objs_by_type).
*/
const UF_MOTION_joint_motion_input_t *input_struct /* <I>
The joint motion
input structure
to be set on the
input joint tag.
*/
);
/*****************************************************************************
This function removes the joint motion input from the input joint tag. If
the input joint tag does not have a joint input defined, an error condition
is returned.
Environment: Internal and External
See Also: UF_MOTION_set_joint_motion_input
UF_OBJ_delete_object
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_remove_joint_motion_input
(
const tag_t joint_tag /* <I>
The tag to remove the joint motion inputs from.
*/
);
/*****************************************************************************
This function initializes the input coupler structure with standard default
values. It is highly recommended that all coupler structures get initialized
with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_link_struct
UF_MOTION_init_joint_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_joint_coupler_struct
(
UF_MOTION_joint_coupler_t *coupler_struct /* <O>
The coupler structure
to be initialized.
*/
);
/*****************************************************************************
This function creates a joint coupler in the Scenario for Motion+ database
according to the parameters passed in through the joint coupler structure.
If successful, the tag of the new joint coupler is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_joint_coupler
UF_MOTION_set_joint_coupler
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_joint_coupler
(
UF_MOTION_joint_coupler_t *coupler_struct, /* <I>
The required
parameters to
create the
joint coupler.
*/
tag_t *joint_coupler_tag /* <O>
The new joint coupler tag. This tag
identifies the joint coupler in the database.
*/
);
/*****************************************************************************
This function returns the joint coupler structure for an input joint coupler
tag.
Environment: Internal and External
See Also: UF_MOTION_set_joint_coupler
UF_MOTION_ask_joint
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_joint_coupler
(
const tag_t joint_coupler_tag, /* <I>
The tag of the joint coupler to return.
This tag is the one returned from the
UF_MOTION_create_joint_coupler function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_joint_coupler_t *coupler_struct /* <O>
The joint coupler
structure for the
input joint coupler tag.
*/
);
/*****************************************************************************
This function sets the input joint coupler parameters to the input joint
coupler tag.
Environment: Internal and External
See Also: UF_MOTION_ask_joint_coupler
UF_MOTION_create_joint_coupler
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_joint_coupler
(
const tag_t joint_coupler_tag, /* <I>
The tag of the joint coupler to set.
This tag is the one returned from the
UF_MOTION_create_joint_coupler function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_joint_coupler_t *coupler_struct /* <I>
The joint coupler structure
holding the parameters to
be set to the input tag.
*/
);
/*****************************************************************************
This function initializes the input marker structure with standard default
values. It is highly recommended that all marker structures get initialized
with this function before they are used.
Environment: Internal and External
See Also: UF_MOTION_init_link_struct
UF_MOTION_init_joint_struct
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_marker_struct
(
UF_MOTION_marker_t *marker_struct /* <O>
The marker structure to be
initialized.
*/
);
/*****************************************************************************
This function creates a marker in the Scenario for Motion+ database according
to the parameters passed in through the marker structure. This function is
used only for the creation of user defined markers. If successful, the tag
of the new marker is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_marker
UF_MOTION_set_marker
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_marker
(
UF_MOTION_marker_t *marker_struct, /* <I>
The required parameters
to create the marker.
*/
tag_t *marker_tag /* <O>
The new marker tag. This tag identifies
the marker in the database.
*/
);
/*****************************************************************************
This function returns the marker structure for an input marker tag.
Environment: Internal and External
See Also: UF_MOTION_set_marker
UF_MOTION_create_marker
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_marker
(
const tag_t marker_tag, /* <I>
The tag of the marker to return. This tag is
the one returned from UF_MOTION_create_marker.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_marker_t *marker_struct /* <O>
The marker structure of the
input tag.
*/
);
/*****************************************************************************
This function sets a new marker origin and a new orientation matrix
to the input marker tag.
Environment: Internal and External
See Also: UF_MOTION_ask_marker
UF_MOTION_set_marker
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_marker
(
const tag_t marker_tag, /* <I>
The tag of the marker to set. This tag is the
one returned from UF_MOTION_create_marker. It
can also be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_marker_t *marker_struct /* <I>
The marker structure for the
input tag.
*/
);
/*****************************************************************************
This function initializes the input spring/damper structure with
standard default values. It is highly recommended that all spring/damper
structures get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_spring_damper_struct
(
UF_MOTION_spring_damper_t *spring_damper_struct /* <O>
The spring/damper
data structure
to be initialized.
*/
);
/*****************************************************************************
This function creates a spring in the Scenario for Motion+ database
according to the parameters passed in through the spring structure.
If successful, the tag of the new spring is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_spring
UF_MOTION_set_spring
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_spring
(
UF_MOTION_spring_damper_t *spring_struct, /* <I>
The required parameters
to create the spring.
*/
tag_t *spring_tag /* <O>
The new spring tag. This tag identifies the
spring in the database.
*/
);
/*****************************************************************************
This function returns the spring structure for an input spring tag.
Environment: Internal and External
See Also: UF_MOTION_set_spring
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_spring
(
const tag_t spring_tag, /* <I>
The tag of the spring to return information
about. This tag is the one returned from the
UF_MOTION_create_spring function. It can
also be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_spring_damper_t *spring_struct /* <O>
The spring structure
for the input tag.
*/
);
/*****************************************************************************
This function sets the input spring parameters to the input spring tag.
The spring parameters that can be set are the rate, the free length (linear)
or free angle (rotational), and the link attachment points.
Environment: Internal and External
See Also: UF_MOTION_ask_spring
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_spring
(
const tag_t spring_tag, /* <I>
The tag of the spring to set. This tag is the
one returned from the UF_MOTION_create_spring
function. It can also be found using object
cycle functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_spring_damper_t *spring_struct /* <I>
The spring structure
for the input tag.
*/
);
/*****************************************************************************
This function creates a damper in the Scenario for Motion+ database
according to the parameters passed in through the damper structure.
If successful, the tag of the new damper is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_damper
UF_MOTION_set_damper
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_damper
(
UF_MOTION_spring_damper_t *damper_struct, /* <I>
The required parameters
to create the damper.
*/
tag_t *damper_tag /* <O>
The new damper tag. This tag identifies the
damper in the database.
*/
);
/*****************************************************************************
This function returns the damper structure for an input damper tag.
Environment: Internal and External
See Also: UF_MOTION_set_damper
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_damper
(
const tag_t damper_tag, /* <I>
The tag of the damper to return information
about. This tag is the one returned from the
UF_MOTION_create_damper function. It can
also be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_spring_damper_t *damper_struct /* <O>
The damper structure
for the input tag.
*/
);
/*****************************************************************************
This function sets the input damper parameters to the input damper tag.
The damper parameters that can be set are the damping rate and the
link attachment points.
Environment: Internal and External
See Also: UF_MOTION_ask_damper
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_damper
(
const tag_t damper_tag, /* <I>
The tag of the damper to set. This tag is the
one returned from the UF_MOTION_create_damper
function. It can also be found using object
cycle functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_spring_damper_t *damper_struct /* <I>
The damper structure
for the input tag.
*/
);
/*****************************************************************************
This function initializes the input general bushing structure with standard
default values. It is highly recommended that all general bushing structures
get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_general_bushing_struct
(
UF_MOTION_general_bushing_t *bushing_struct /* <O>
The bushing data
structure to be
initialized.
*/
);
/*****************************************************************************
This function creates a general bushing in the Scenario for Motion+ database
according to the parameters passed in through the general bushing structure.
If successful, the tag of the new general bushing is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_general_bushing
UF_MOTION_set_general_bushing
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_general_bushing
(
UF_MOTION_general_bushing_t *bushing_struct, /* <I>
The required
parameters to create
the general bushing.
*/
tag_t *bushing_tag /* <O>
The new bushing tag. This tag identifies
the general bushing in the database.
*/
);
/*****************************************************************************
This function returns the general bushing structure for an input bushing tag.
Environment: Internal and External
See Also: UF_MOTION_set_general_bushing
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_general_bushing
(
const tag_t bushing_tag, /* <I>
The tag of the general bushing to return
information about. This tag is the one
returned from the
UF_MOTION_create_general_bushing function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_general_bushing_t *bushing_struct /* <O>
The general bushing
structure for the
input tag.
*/
);
/*****************************************************************************
This function sets the input general bushing parameters to the input
general bushing tag.
Environment: Internal and External
See Also: UF_MOTION_ask_general_bushing
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_general_bushing
(
const tag_t bushing_tag, /* <I>
The tag of the general bushing to set.
This tag is the one returned from the
UF_MOTION_create_general_bushing function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_general_bushing_t *bushing_struct /* <I>
The general bushing
structure for the
input tag.
*/
);
/*****************************************************************************
This function initializes the input cylindrical bushing structure with
standard default values. It is highly recommended that all cylindrical
bushing structures get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_cylindrical_bushing_struct
(
UF_MOTION_cylindrical_bushing_t *bushing_struct /* <O>
The bushing data
structure to be
initialized.
*/
);
/*****************************************************************************
This function creates a cylindrical bushing in the Scenario for Motion+
database according to the parameters passed in through the cylindrical
bushing structure. If successful, the tag of the new cylindrical bushing
is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_cylindrical_bushing
UF_MOTION_set_cylindrical_bushing
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_cylindrical_bushing
(
UF_MOTION_cylindrical_bushing_t *bushing_struct, /* <I>
The required
parameters to
create the
cylindrical bushing.
*/
tag_t *bushing_tag /* <O>
The new bushing tag. This tag identifies
the cylindrical bushing in the database.
*/
);
/*****************************************************************************
This function returns the cylindrical bushing structure for an input
bushing tag.
Environment: Internal and External
See Also: UF_MOTION_set_cylindrical_bushing
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_cylindrical_bushing
(
const tag_t bushing_tag, /* <I>
The tag of the cylindrical bushing to
return information about. This tag is
the one returned from the
UF_MOTION_create_cylindrical_bushing
function. It can also be found using
object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_cylindrical_bushing_t *bushing_struct /* <O>
The cylindrical
bushing structure
for the input tag.
*/
);
/*****************************************************************************
This function sets the input cylindrical bushing parameters to the input
cylindrical bushing tag.
Environment: Internal and External
See Also: UF_MOTION_ask_cylindrical_bushing
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_cylindrical_bushing
(
const tag_t bushing_tag, /* <I>
The tag of the cylindrical bushing to set.
This tag is the one returned from the
UF_MOTION_create_cylindrical_bushing function.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_cylindrical_bushing_t *bushing_struct /* <I>
The cylindrical
bushing structure
for the input tag.
*/
);
/*****************************************************************************
This function initializes the input scalar force/torque structure with
standard default values. It is highly recommended that all scalar force/
torque structures get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_scalar_force_torque_struct
(
UF_MOTION_scalar_force_torque_t *scalar_struct /* <O>
The scalar force/torque
data structure
to be initialized.
*/
);
/*****************************************************************************
This function creates a scalar force in the Scenario for Motion+ database
according to the parameters passed in through the scalar force/torque
structure. If successful, the tag of the new scalar force is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_scalar_force
UF_MOTION_set_scalar_force
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_scalar_force
(
UF_MOTION_scalar_force_torque_t *force_struct, /* <I>
The required
parameters to
create the scalar
force.
*/
tag_t *force_tag /* <O>
The new scalar force tag. This tag identifies
the scalar force in the database.
*/
);
/*****************************************************************************
This function returns the scalar force structure for an input scalar force tag.
Environment: Internal and External
See Also: UF_MOTION_set_scalar_force
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_scalar_force
(
const tag_t force_tag, /* <I>
The tag of the scalar force to return
information about. This tag is the one
returned from UF_MOTION_create_scalar_force.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_scalar_force_torque_t *force_struct /* <O>
The scalar force
structure for the
input tag.
*/
);
/*****************************************************************************
This function sets the input scalar force parameters to the input force tag.
The parameters that can be set are the origin locations and the force
function.
Environment: Internal and External
See Also: UF_MOTION_ask_scalar_force
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_scalar_force
(
const tag_t force_tag, /* <I>
The tag of the scalar force to set.
This tag is the one returned from
UF_MOTION_create_scalar_force.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_scalar_force_torque_t *force_struct /* <I>
The scalar force
structure for
the input tag.
*/
);
/*****************************************************************************
This function creates a scalar torque in the Scenario for Motion+ database
according to the parameters passed in through the scalar force/torque
structure. If successful, the tag of the new scalar torque is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_scalar_torque
UF_MOTION_set_scalar_torque
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_scalar_torque
(
UF_MOTION_scalar_force_torque_t *torque_struct, /* <I>
The required
parameters to
create the scalar
torque.
*/
tag_t *torque_tag /* <O>
The new scalar torque tag. This tag identifies
the scalar torque in the database.
*/
);
/*****************************************************************************
This function returns the scalar torque structure for an input scalar
torque tag.
Environment: Internal and External
See Also: UF_MOTION_set_scalar_torque
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_scalar_torque
(
const tag_t torque_tag, /* <I>
The tag of the scalar torque to return
information about. This tag is the one
returned from UF_MOTION_create_scalar_torque.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_scalar_force_torque_t *torque_struct /* <O>
The scalar torque
structure for the
input tag.
*/
);
/*****************************************************************************
This function sets the input scalar torque parameters to the input torque tag.
The only parameter that can be set is the torque function.
Environment: Internal and External
See Also: UF_MOTION_ask_scalar_torque
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_scalar_torque
(
const tag_t torque_tag, /* <I>
The tag of the scalar torque to set.
This tag is the one returned from
UF_MOTION_create_scalar_torque.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
const UF_MOTION_scalar_force_torque_t *torque_struct /* <I>
The scalar torque
structure for
the input tag.
*/
);
/*****************************************************************************
This function initializes the input vector force/torque structure with
standard default values. It is highly recommended that all vector force/
torque structures get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_vector_force_torque_struct
(
UF_MOTION_vector_force_torque_t *vector_struct /* <O>
The vector force/torque
data structure
to be initialized.
*/
);
/*****************************************************************************
This function creates a vector force or torque in the Scenario for Motion+
database according to the parameters passed in through the vector
force/torque structure. If successful, the tag of the new vector force
or torque is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_vector_force_torque
UF_MOTION_set_vector_force_torque
History: Created in NX2.
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_vector_force_torque
(
UF_MOTION_vector_force_torque_t *vector_struct, /* <I>
The required
parameters to
create the vector
force or torque.
*/
tag_t *vobject_tag /* <O>
The new vector force or torque tag.
This tag identifies the vector force
or torque in the database.
*/
);
/*****************************************************************************
This function returns the vector force/torque structure for an input
vector force or torque tag.
Environment: Internal and External
See Also: UF_MOTION_set_vector_force_torque
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_vector_force_torque
(
const tag_t vobject_tag, /* <I>
The tag of the vector force or torque to
return information about. This tag is
the one returned from
UF_MOTION_create_vector_force_torque.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_vector_force_torque_t *vector_struct /* <O>
The vector force/
torque structure
for the input tag.
*/
);
/*****************************************************************************
This function sets the input vector force/torque parameters to the input
vector force or torque tag.
Environment: Internal and External
See Also: UF_MOTION_ask_vector_force_torque
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_vector_force_torque
(
const tag_t vobject_tag, /* <I>
The tag of the vector force or torque
to set. This tag is the one returned from
UF_MOTION_create_vector_force_torque.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_vector_force_torque_t *vector_struct /* <I>
The vector force/
torque structure
for the input tag.
*/
);
/*****************************************************************************
This function gets the total Gruebler count for the current mechanism.
Environment: Internal and External
See Also: UF_MOTION_ask_solver_dof_count
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_gruebler_count
(
int *gruebler_count /* <O>
The total Gruebler count.
*/
);
/*****************************************************************************
This function gets the total degree of freedom count as calculated by the
motion solver for the current mechanism.
Environment: Internal and External
See Also: UF_MOTION_ask_gruebler_count
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_solver_dof_count
(
int *dof_count /* <O>
The total degree of freedom count.
*/
);
/*****************************************************************************
This function create point curve constraint
Environment: Internal and External
See Also: UF_MOTION_ask_pt_crv_constraint
UF_MOTION_set_pt_crv_constraint
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_pt_crv_constraint
(
UF_MOTION_point_curve_constraint_t *pt_crv_data,/* <I>*/
tag_t *pt_crv_tag /* <O> created constraint */
);
/*****************************************************************************
This function initializes the input point curve structure with standard
default values. It is highly recommended that all point curve structures
get initialized with this function before they are used.
Environment: Internal and External
See Also:
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_pt_crv_struct
(
UF_MOTION_point_curve_constraint_t *pt_crv_struct
/* <I/O> The point curve structure to be initialized. */
);
/*****************************************************************************
This function returns the point curve structure for an input point
curve constraint tag.
Environment: Internal and External
See Also: UF_MOTION_set_pt_crv_constraint
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_pt_crv_constraint
(
const tag_t pt_crv_tag,/* <I>
The tag of the constraint to return.
This tag is the one returned from
the UF_MOTION_create_pt_crv_constraint
function. It can also be found using
object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_point_curve_constraint_t *pt_crv_struct
/* <O>
The point-curve structure for the input tag.
*/
);
/*****************************************************************************
This function edit point curve constraint
Environment: Internal and External
See Also: UF_MOTION_ask_pt_crv_constraint
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_pt_crv_constraint
(
tag_t pt_crv_tag, /* <I> tag of the constraint */
UF_MOTION_point_curve_constraint_t *pt_crv_data /* <I>
point curve
constraint data */
);
/*****************************************************************************
This function create curve curve constraint
Environment: Internal and External
See Also: UF_MOTION_ask_crv_crv_constraint
UF_MOTION_create_crv_crv_constraint
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_crv_crv_constraint
(
UF_MOTION_curve_curve_constraint_t *crv_crv_data, /* <I> input data */
tag_t *crv_crv_tag /* <O> created constraint */
);
/*****************************************************************************
This function initializes the input curve curve structure with standard
default values. It is highly recommended that all curve curve structures
get initialized with this function before they are used.
Environment: Internal and External
See Also:
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_crv_crv_struct
(
UF_MOTION_curve_curve_constraint_t *crv_crv_struct
/* <I/O> The curve curve structure to be initialized. */
);
/*****************************************************************************
This function returns the curve curve structure for an input curve
curve constraint tag.
Environment: Internal and External
See Also: UF_MOTION_create_crv_crv_constraint
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_crv_crv_constraint
(
const tag_t crv_crv_tag,/* <I>
The tag of the constraint to return.
This tag is the one returned from
the UF_MOTION_create_crv_crv_constraint
function. It can also be found using
object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_curve_curve_constraint_t *crv_crv_struct
/* <O>
The curve-curve structure for the input tag.
*/
);
/*****************************************************************************
This function initializes the input 3D contact structure with standard
default values. It is highly recommended that all 3D contact structures
get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_3D_contact_struct
(
UF_MOTION_3D_contact_t *contact_struct /* <O>
The 3D_contact structure to be
initialized.
*/
);
/*****************************************************************************
This function creates a 3D contact in the Scenario for Motion+ database
according to the parameters passed in through the 3D contact structure.
If successful, the tag of the new 3D contact is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_3D_contact
UF_MOTION_set_3D_contact
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_3D_contact
(
UF_MOTION_3D_contact_t *contact_struct, /* <I>
The required parameters
to create the 3D contact.
*/
tag_t *contact_tag /* <O>
The new 3D contact tag. This tag identifies
the 3D contact in the database.
*/
);
/*****************************************************************************
This function returns the 3D contact structure for an input 3D contact tag.
Environment: Internal and External
See Also: UF_MOTION_set_3D_contact
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_3D_contact
(
const tag_t contact_tag, /* <I>
The tag of the 3D contact to return.
This tag is the one returned from
UF_MOTION_create_3D_contact.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_3D_contact_t *contact_struct /* <O>
The 3D contact structure
of the input tag.
*/
);
/*****************************************************************************
This function sets 3D contact properties for the input 3D contact tag.
Environment: Internal and External
See Also: UF_MOTION_ask_3D_contact
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_3D_contact
(
const tag_t contact_tag, /* <I>
The tag of the 3D contact to set. This tag
is the one returned from
UF_MOTION_create_3D_contact. It can also
be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_3D_contact_t *contact_struct /* <I>
The 3D contact structure
for the input tag.
*/
);
/*****************************************************************************
This function initializes the input 2D contact structure with standard
default values. It is highly recommended that all 2D contact structures
get initialized with this function before they are used.
Environment: Internal and External
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_2D_contact_struct
(
UF_MOTION_2D_contact_t *contact_struct /* <O>
The 2D_contact structure to be
initialized.
*/
);
/*****************************************************************************
This function creates a 2D contact in the Scenario for Motion+ database
according to the parameters passed in through the 2D contact structure.
If successful, the tag of the new 2D contact is returned.
Environment: Internal and External
See Also: UF_MOTION_ask_2D_contact
UF_MOTION_set_2D_contact
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_2D_contact
(
UF_MOTION_2D_contact_t *contact_struct, /* <I>
The required parameters
to create the 2D contact.
*/
tag_t *contact_tag /* <O>
The new 2D contact tag. This tag identifies
the 2D contact in the database.
*/
);
/*****************************************************************************
This function returns the 2D contact structure for an input 2D contact tag.
Environment: Internal and External
See Also: UF_MOTION_set_2D_contact
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_2D_contact
(
const tag_t contact_tag, /* <I>
The tag of the 2D contact to return.
This tag is the one returned from
UF_MOTION_create_2D_contact.
It can also be found using object cycle
functions. (eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_2D_contact_t *contact_struct /* <O>
The 2D contact structure
of the input tag.
*/
);
/*****************************************************************************
This function sets 2D contact properties for the input 2D contact tag.
Environment: Internal and External
See Also: UF_MOTION_ask_2D_contact
History: Created in NX2
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_2D_contact
(
const tag_t contact_tag, /* <I>
The tag of the 2D contact to set. This tag
is the one returned from
UF_MOTION_create_2D_contact. It can also
be found using object cycle functions.
(eg. UF_OBJ_cycle_objs_by_type)
*/
UF_MOTION_2D_contact_t *contact_struct /* <I>
The 2D contact structure
for the input tag.
*/
);
/***************************************************************************
This function gets the information of motion objects and writes it out
to a file.
Environment: Internal and External
See Also: UF_MOTION_list_connections
History: Created in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_write_object_info
(
int num_objects, /* <I>
The number of motion objects in the tag array.
*/
tag_p_t object_tags, /* <I>
Tag array of motion objects to get info for.
*/
const char *info_file_name /* <I>
Name string (including full path) of
output file that object information
will be written to. This file should
be new and not yet exist.
*/
);
/****************************************************************************
Generate an ascii text file containing a listing of the Motion connections,
degrees of freedom, etc.
Environment: Internal and External
See Also: UF_MOTION_write_object_info
History: Released in NX3
******************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_list_connections
(
const char *output_file_with_path /* <I>
The full path to the file that the
listing should be written to. If
this file already exists it will
be overwritten.
*/
);
/*****************************************************************************
This function asks the mechanism parameters of the current mechanism in the
scenario part.
Environment: Internal and External
See Also: UF_MOTION_set_articulation_stop_tolerance
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_articulation_stop_tolerance
(
double *stop_tolerance /* <O> */
);
/*****************************************************************************
This function sets the articulation stop tolerance. This is used by Adams to
calculate the stop positions for stop events in Articulation.
Environment: Internal and External
See Also: UF_MOTION_ask_articulation_stop_tolerance
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_articulation_stop_tolerance
(
double stop_tolerance /* <I> */
);
/*****************************************************************************
This function sets whether trace/explosion objects will get exported to the
master
Environment: Internal and External
See Also: UF_MOTION_ask_trace_explosion_to_master
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_trace_explosion_to_master
(
logical to_master /* <I> TRUE or FALSE */
);
/*****************************************************************************
This function returns whether trace/explosion objects will get exported to the
master
Environment: Internal and External
See Also: UF_MOTION_set_trace_explosion_to_master
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_trace_explosion_to_master
(
logical *to_master /* <I> TRUE or FALSE */
);
/*****************************************************************************
This function sets the dislay of object names
Environment: Internal and External
See Also: UF_MOTION_ask_name_display
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_name_display
(
logical name_display /* <I> TRUE if names should be displayed.
FALSE if names should not be displayed. */
);
/*****************************************************************************
This function returns the dislay of object names
Environment: Internal and External
See Also: UF_MOTION_set_name_display
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_name_display
(
logical *name_display /* <O> TRUE if names should be displayed.
FALSE if names should not be displayed. */
);
/*****************************************************************************
This function sets the angular units for this mechanism
Environment: Internal and External
See Also: UF_MOTION_ask_angular_units
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_angular_units
(
UF_MOTION_angular_units_type_t angle_units /* <I> The new units */
);
/*****************************************************************************
This function return the angular units stored in this mechanism
Environment: Internal and External
See Also: UF_MOTION_set_angular_units
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_angular_units
(
UF_MOTION_angular_units_type_t *angle_units /* <O> The new units */
);
/*****************************************************************************
This function sets the graviational constants in this mechanism
Environment: Internal and External
See Also: UF_MOTION_ask_gravitational_constants
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_gravitational_constants
(
double gravitational_constants[3] /* <I> Vector defining gravitational
force */
);
/*****************************************************************************
This function return the graviational constants stored in this mechanism
Environment: Internal and External
See Also: sUF_MOTION_set_gravitational_constants
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_gravitational_constants
(
double gravitational_constants[3] /* <O> Vector defining gravitational
force */
);
/*****************************************************************************
This function sets the global icon scale.
Environment: Internal and External
See Also: UF_MOTION_ask_icon_scale_factor
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_icon_scale_factor
(
double scale /*<I> */
);
/*****************************************************************************
This function returns the global icon scale.
Environment: Internal and External
See Also: UF_MOTION_set_icon_scale_factor
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_icon_scale_factor
(
double *scale /*<I>*/
);
/*****************************************************************************
This function returns the motion objects of a specified type that are
attached to the input motion object. This function will check the
type/subtype requests for validity of attachment. For example, asking
for contacts attached to a joint is not valid. Note also, that the
subtype input is only needed for certain motion types, and is not
required for other motion types. See following table:
type requested subtype needed
===================== ==============
UF_mdm_mechanism_type NO
UF_mdm_link_type NO
UF_mdm_joint_type OPTIONAL - If subtype not defined, all
entities of this type will be returned.
UF_mdm_marker_type NO - UF_mdm_user_defined_marker_subtype
will be only subtype returned.
UF_mdm_spring_type NO
UF_mdm_damper_type NO
UF_mdm_force_type NO
UF_mdm_torque_type NO
UF_mdm_genforce_type YES - Subtype must be defined.
UF_mdm_curve_curve_contact_type NO
UF_mdm_contact_type NO
Environment: Internal and External
See Also:
History: Released in NX3
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_attachments_of_type
(
tag_t entity_tag, /* <I>
The motion entity to get attachments for.
*/
int type, /* <I>
The type of attachments to retrieve.
See uf_object_types.h for definition
of motion object types.
*/
int subtype, /* <I>
The subtype of attachments (if applicable)
to retrieve. See uf_object_types.h for
definition of motion object subtypes.
*/
int *num_attachments, /* <O>
The number of attachment objects.
*/
tag_p_t *attachments /* <OF>
The array of attached objects.
*/
);
/*************************************************************************
Initialize the UF_MOTION_stl_parameters_t structure with default values
in preparation to send to UF_MOTION_export_adams_anl_file.
Environment: Internal or External
See Also: UF_MOTION_export_adams_anl_file
History: Released in NX3
*************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_stl_parameters_struct
(
UF_MOTION_stl_parameters_t *stl_params /* <O>
The empty struct to retrieve the
default STL parameters.
*/
);
/*****************************************************************************************************************************
Exports the current Motion model as an ANL file which can then be read
into Adams or any other application which reads Adams ANL files.
Environment: Internal or External
See Also: UF_MOTION_init_stl_parameters_struct
UF_MOTION_solve_model
UF_MOTION_calculate_static_equilibrium
UF_MOTION_step_articulation
UF_MOTION_export_adams_res_file
History: Released in NX3
********************************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_export_adams_anl_file
(
const char *file_name, /* <I>
The filename of the .anl file to write. It
should include the entire path to the file.
The filename should end with .anl followed by a
terminating NULL character.
*/
UF_MOTION_anl_geometry_format_t geometry_format, /* <I>
The format to export the geometry.
*/
UF_MOTION_stl_parameters_p_t stl_params /* <I>
If geometry_format == UF_MOTION_stl, then
this arg contains the parameters to export
the geometry as STL data. Ignored if
geometry_format != UF_MOTION_stl.
*/
);
/*****************************************************************************************************************************************
This function initializes the structures of point on surface constraint
parameters with standard default values. It is highly recommended that all
point on surface parameters structures get initialized with this function
before they are used.
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_ask_point_on_surface_constraint
UF_MOTION_create_point_on_surface_constraint
UF_MOTION_set_point_on_surface_constraint
History: Created in NX3
*****************************************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_point_on_surface_constraint
(
UF_MOTION_point_on_surface_data_p_t point_on_surf_data /* <O>
The empty struct
to retrieve the
default Point on
surface
parameters.
*/
);
/*****************************************************************************************************************************************
This function asks the structures of point on surface constraint parameters
for a given point_on_surface_tag value.
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_init_point_on_surface_constraint
UF_MOTION_create_point_on_surface_constraint
UF_MOTION_set_point_on_surface_constraint
History: Created in NX3
*****************************************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_point_on_surface_constraint
(
tag_t point_on_surface_tag, /* <I>
tag of point on surface constraint
object to get the data for
*/
UF_MOTION_point_on_surface_data_p_t pt_on_surf_data /* <O>
The structure corresponding to the
input point on surface constraint tag
*/
);
/***************************************************************************************************************************************
This function creates the structure of point on surface constraint with provided
values and returns the corresponding tag_t pointer.
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_ask_point_on_surface_constraint
UF_MOTION_init_point_on_surface_constraint
UF_MOTION_set_point_on_surface_constraint
History: Created in NX3
****************************************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_point_on_surface_constraint
(
UF_MOTION_point_on_surface_data_p_t pt_on_surf_data, /* <I>
Input structures of point on surface
constraint data
*/
tag_p_t point_on_surface_tag /* <O>
tag of created point on surface
constraint
*/
);
/*******************************************************************************************************************************************
This function sets the structures represented by the tag_t with new point on
surface constraint values.
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_init_point_on_surface_constraint
UF_MOTION_create_point_on_surface_constraint
UF_MOTION_ask_point_on_surface_constraint
History: Created in NX3
*******************************************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_point_on_surface_constraint
(
tag_t point_on_surface_tag, /* <I>
tag of point on surface constraint
object
*/
UF_MOTION_point_on_surface_data_p_t pt_on_surf_data /* <I>
Structures of point on surface
constraint data
*/
);
/******************************************************************************************************************
This function asks the 3D contact method to be used.
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_set_3D_contact_method
History: Released in NX3
******************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_3D_contact_method
(
UF_MOTION_3d_contact_method_t *contact_method, /* <O>
the 3d contact method to be used
by Adams
*/
int *facet_contact_tolerance /* <O> ignored unless
contact_method == UF_MOTION_faceted_contact
Must be a value 1 to 100.
1 means Fast but may not be accurate
100 means Accurate but may not be Fast
*/
);
/******************************************************************************************************************
This function sets the 3D contact method to be used.
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_ask_3D_contact_method
History: Released in NX3
*******************************************************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_3D_contact_method
(
UF_MOTION_3d_contact_method_t contact_method, /* <I>
the 3d contact method to be used
by Adams
*/
int facet_contact_tolerance /* <I> ignored unless
contact_method == UF_MOTION_faceted_contact
Must be a value 1 to 100.
1 means Fast but may not be accurate
100 means accurate but may not be fast
*/
);
/*****************************************************************************
This function initializes the input function structure with standard default
values. It is highly recommended that all function structures get initialized
with this function before they are used.
Environment: Internal and External
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_init_function_struct
(
UF_MOTION_function_t *function_struct /* <O> The function structure to be
initialized. */
);
/*****************************************************************************
This function creates a function object in the Scenario for Motion+ database
according to the parameters passed in through the function structure.
If successful, the tag of the new function object is returned. It is highly
recommended that the function definition syntax is validated before
creating the function object.
Environment: Internal and External
See Also: UF_MOTION_ask_function
UF_MOTION_set_function
UF_MOTION_validate_function_syntax
UF_MOTION_get_object_derived_function
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_create_function
(
const UF_MOTION_function_t *function_struct, /* <I>
The required parameters
to create the function.
*/
tag_t *function_tag /* <O>
The new function tag. This tag identifies
the function object in the database.
*/
);
/*****************************************************************************
This function returns the function structure for an input function tag.
Environment: Internal and External
See Also: UF_MOTION_set_function
UF_MOTION_find_all_functions
UF_MOTION_ask_function_tag_from_name
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_function
(
const tag_t function_tag, /* <I>
The tag of the function to query.
This tag is the one returned from
UF_MOTION_create_function.
*/
UF_MOTION_function_t *function_struct /* <O>
The function structure for the
input function tag.
*/
);
/*****************************************************************************
This function sets the input function parameters to the input function tag.
Environment: Internal and External
See Also: UF_MOTION_ask_function
UF_MOTION_validate_function_syntax
UF_MOTION_get_object_derived_function
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_function
(
const tag_t function_tag, /* <I>
The tag of the function to set.
This tag is the one returned
from UF_MOTION_create_function.
*/
const UF_MOTION_function_t *function_struct /* <I>
The function structure
for the input tag.
*/
);
/*****************************************************************************
This function finds all the motion function objects in the current part.
Environment: Internal and External
See Also: UF_MOTION_ask_function_tag_from_name
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_find_all_functions
(
tag_t **function_tags, /* <OF>
Tag array of all function objects in
current part.
*/
int *num_functions /* <O>
Number of function tags.
*/
);
/*****************************************************************************
This function finds the motion function tag for a given function name.
Environment: Internal and External
See Also: UF_MOTION_find_all_functions
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_function_tag_from_name
(
char *function_name, /* <I>
Name string of function object to find.
*/
tag_t *function_tag /* <O>
Tag of function object for input name.
*/
);
/*****************************************************************************
This function deletes the motion function object from the database.
If the function object is still referenced by another motion object,
it will not be deleted and an error code will be returned.
Environment: Internal and External
See Also: UF_MOTION_ask_function_tag_from_name
UF_MOTION_find_all_functions
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_delete_function
(
const tag_t function_tag /* <I>
Tag of function object to delete.
*/
);
/*****************************************************************************
This function checks the syntax of a function definition string to verify
its validity.
Environment: Internal and External
See Also: UF_MOTION_get_object_derived_function
UF_MOTION_create_function
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_validate_function_syntax
(
char **function_string, /* <I>
Full string for a function definition.
*/
const int num_lines /* <I>
Number of lines of function string.
*/
);
/*****************************************************************************
This function returns the string of a derived function. A derived function
references a motion object for a particular result type. All motion objects
other than links are allowed for reference in a derived function.
Environment: Internal and External
See Also: UF_MOTION_validate_function_syntax
UF_MOTION_create_function
History: Released in NX2.0.5 and NX3.0.1
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_get_object_derived_function
(
const tag_t motion_obj_tag, /* <I>
The motion object being referenced
for the derived function.
*/
UF_MOTION_func_result_type_t func_type, /* <I>
The result type requested
for the derived function.
See uf_motion_types.h
*/
UF_MOTION_func_component_type_t func_comp, /* <I>
The result component
requested for the
derived function.
See uf_motion_types.h
*/
UF_MOTION_func_ref_frame_type_t ref_frame, /* <I>
The reference frame
for the derived function.
See uf_motion_types.h
*/
char **derived_func_string /* <OF>
Formulated string of a derived function.
*/
);
/*****************************************************************************
This function gets the number of frames for active solution.
Environment: Internal and External
See Also:
History: Released in NX801
******************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_number_of_animation_frames
(
int * numFrames /* <O> Number of frames for current active solution result */
);
/*****************************************************************************
This function gets the transform matrix of the specified link object in given frame
Environment: Internal and External
See Also:
History: Released in NX801
******************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_link_transfrom_for_given_frame
(
tag_t linkTag, /*<I> Motion link object tag*/
int frame, /*<I> The given frame*/
double transformMatrix[16] /*<O> The transform matrix 1X16*/
);
/*****************************************************************************
This function will set transformation matrix for given link object
Environment: Internal and External
See Also:
History: Released in NX801
******************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_link_transform
(
tag_t linkTag, /*<I> Motion link object tag*/
double transformMatrix[16] /*<I> The transform matrix 1X16*/
);
/*****************************************************************************
This function reviews the existing result file of the motion model. Prior to
calling this function the model must be analyzed at least once.
Inputs: Result file name (without path)
Outputs: None
Return: Zero for success, non-zero is error code
Environment: Internal and External
See Also: UF_MOTION_solve_model
UF_MOTION_step_articulation
UF_MOTION_calculate_static_equilibrium
UF_MOTION_export_adams_res_file
UF_MOTION_ask_velocity_results
UF_MOTION_ask_force_results
History: Created in NX801
*****************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_review_result_file
(
const char *res_file /*<I>
The filename should be *.rad for Recurdyn *.res for Adams.
The filename should end with .rad or .res followed by a
terminating NULL character..
*/
);
/*************************************************************************
Ask the active solution for current motion simulation
Environment: Internal or External
Onput : tag_t active_solution
Returns : 0 - Successful
else Unsuccessful
See Also:
History: Released in NX801
*************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_ask_active_solution
(
tag_t * active_solution /*<O> The active solution*/
);
/*************************************************************************
Set the active solution for current motion simulation
Environment: Internal or External
Input : tag_t active_solution
Returns : 0 - Successful
else Unsuccessful
See Also:
History: Released in NX801
*************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_set_active_solution
(
tag_t active_solution /*<I> The active solution*/
);
/*************************************************************************
Suppress warning messages for reparenting the master part when
open a scenario part.
Environment: Internal or External
Input : logical flag = true will turn off the warnings
Returns : 0 - Successful
else Unsuccessful
See Also:
History: Released in NX801
*************************************************************************/
extern UFUN_CAEEXPORT int UF_MOTION_file_suppress_warnings
(
logical flag /*<I> The suppress flag, true will turn off the warnings */
);
#undef EXPORTLIBRARY
#endif /* UF_MOTION_H_INCLUDED */