Index
[back to top]
B.1 Introduction
This appendix provides details of the FG module interface functions designed for the management and evaluation of FG curves and surfaces. These functions are:
[back to top]
B.2 FGCRCU - Initialize a foreign curve
void
|
FGCRCU
|
|
|
|
(
|
|
|
|
|
|
|
/*
|
received arguments
|
*/
|
const char
|
*key,
|
/*
|
Curve key
|
*/
|
int
|
*keylen,
|
/*
|
Curve key length
|
*/
|
int
|
*n_kii,
|
/*
|
Number of integers passed
|
*/
|
int
|
ki_ints[],
|
/*
|
KI integer array
|
*/
|
int
|
*n_kir,
|
/*
|
Number of reals passed
|
*/
|
double
|
ki_reals[],
|
/*
|
KI real array
|
*/
|
int
|
*n_data,
|
/*
|
FG data length
|
*/
|
|
|
/*
|
returned arguments
|
*/
|
double
|
fg_data[],
|
/*
|
FG data array
|
*/
|
int
|
*ifail
|
/*
|
Failure indicator
|
*/
|
)
|
|
|
|
|
Specific errors
FGGEOM
|
Curve evaluator not available
|
FGDATA
|
Curve evaluator data not found
|
FGFILE
|
Curve evaluator data allocation fault
|
FGIERR
|
Curve evaluator integer data error
|
FGRERR
|
Curve evaluator real data error
|
(FGOPOK
|
Operation successful)
|
This function is called when an FG curve is requested by the KI function CRFGCU. The purpose of this function is to initialize any FG data that is required by the evaluator and to check that the real and integer data items meet the requirements of the requested evaluator.
A successful call to this function indicates to Parasolid that evaluations of this curve may now be requested.
[back to top]
B.3 FGCRSU - Initialize a foreign surface
void
|
FGCRSU
|
|
|
|
(
|
|
|
|
|
|
|
/*
|
received arguments
|
*/
|
const char
|
*key,
|
/*
|
Surface key
|
*/
|
int
|
*keylen,
|
/*
|
Surface key length
|
*/
|
int
|
*n_kii,
|
/*
|
Number of integers passed
|
*/
|
int
|
ki_ints[],
|
/*
|
KI integer array
|
*/
|
int
|
*n_kir,
|
/*
|
Number of reals passed
|
*/
|
double
|
ki_reals[],
|
/*
|
KI real array
|
*/
|
int
|
*n_data,
|
/*
|
FG data length
|
*/
|
|
|
/*
|
returned arguments
|
*/
|
double
|
fg_data[],
|
/*
|
FG data array
|
*/
|
int
|
*ifail
|
/*
|
Failure indicator
|
*/
|
)
|
|
|
|
|
Specific errors
FGGEOM
|
Surface evaluator not available
|
FGDATA
|
Surface evaluator data not found
|
FGFILE
|
Surface evaluator data allocation fault
|
FGIERR
|
Surface evaluator integer data error
|
FGRERR
|
Surface evaluator real data error
|
(FGOPOK
|
Operation successful)
|
This function is called when an FG surface is requested by the KI function CRFGSU. The purpose of this function is to initialize any FG data that is required by the evaluator. A successful call to this function indicates to Parasolid that evaluations of this surface may now be requested.
[back to top]
B.4 FGEVCU - Evaluate a foreign curve
void
|
FGEVCU
|
|
|
|
(
|
|
|
|
|
|
|
/*
|
received arguments
|
*/
|
int
|
ki_ints[],
|
/*
|
KI integer array
|
*/
|
double
|
ki_reals[],
|
/*
|
KI real array
|
*/
|
double
|
fg_data[],
|
/*
|
FG data array
|
*/
|
double
|
*t,
|
/*
|
Parameter value
|
*/
|
int
|
*nderiv,
|
/*
|
No. of derivatives requested
|
*/
|
|
|
/*
|
returned arguments
|
*/
|
double
|
results[],
|
/*
|
Evaluation results
|
*/
|
int
|
*ifail
|
/*
|
Failure indicator
|
*/
|
)
|
|
|
|
|
Specific errors
FGEVIN
|
Evaluation incomplete (not all derivatives requested may be returned)
|
FGOPFA
|
Evaluation failed
|
(FGOPOK
|
Operation successful)
|
This function is called when an evaluation of a foreign curve is required by Parasolid. The function should be capable of supplying position and up to second derivatives for a foreign curve which has previously been initialized by a call to FGCRCU.
The argument fg_data identifies the curve evaluator. The arguments ki_ints and ki_reals give the numerical data passed in through the KI when the curve was initialized.
[back to top]
B.5 FGEVSU - Evaluate a foreign surface
void
|
FGEVSU
|
|
|
|
(
|
|
|
|
|
|
|
/*
|
received arguments
|
*/
|
int
|
ki_ints[],
|
/*
|
KI integer array
|
*/
|
double
|
ki_reals[],
|
/*
|
KI real array
|
*/
|
double
|
fg_data[],
|
/*
|
FG data array
|
*/
|
double
|
*u,
|
/*
|
Parameter value
|
*/
|
double
|
*v,
|
/*
|
Parameter value
|
*/
|
int
|
*nu,
|
/*
|
No. of u derivatives requested
|
*/
|
int
|
*nv,
|
/*
|
No. of v derivatives requested
|
*/
|
int
|
*triang,
|
/*
|
Triangular array flag
|
*/
|
|
|
/*
|
returned arguments
|
*/
|
double
|
results[],
|
/*
|
Evaluation results
|
*/
|
int
|
*ifail
|
/*
|
Failure indicator
|
*/
|
)
|
|
|
|
|
Specific errors
FGEVIN
|
Evaluation incomplete (not all derivatives requested may be returned)
|
FGOPFA
|
Evaluation failed
|
(FGOPOK
|
Operation successful)
|
This function is called when an evaluation of a foreign surface is required by Parasolid. The function should be capable of supplying position and up to second derivatives for a foreign surface which has previously been initialized by a call to FGCRSU.
The argument fg_data identifies the surface evaluator. The arguments ki_ints and ki_reals give the numerical data passed in through the KI at surface initialization.
The triangular flag, triang, may take the value FGEVSQ (indicating a request for a rectangular array of derivatives) or FGEVTR (indicating a triangular array of derivatives request). The arguments nu, nv specify the number of u an v derivatives requested.
[back to top]
B.6 FGPRCU - Return foreign curve parametrization properties
void
|
FGPRCU
|
|
|
|
(
|
|
|
|
|
|
|
/*
|
received arguments
|
*/
|
int
|
ki_ints[],
|
/*
|
KI integer array
|
*/
|
double
|
ki_reals[],
|
/*
|
KI real array
|
*/
|
double
|
fg_data[],
|
/*
|
FG data array
|
*/
|
|
|
/*
|
returned arguments
|
*/
|
double
|
range[2],
|
/*
|
Parameter range
|
*/
|
int
|
*period,
|
/*
|
Periodicity flag:
FGPRBD => bounded (non- periodic)
FGPRPE => periodic (not currently allowed)
|
*/
|
int
|
*ifail
|
/*
|
Failure indicator
|
*/
|
)
|
|
|
|
|
Specific errors
FGOPFA
|
Operation failed
|
FGPROP
|
Use default properties
|
(FGOPOK
|
Operation successful)
|
This function is called, after FGCRCU has initialized the curve, to indicate to Parasolid some of the parametric properties of the curve. The function can specify the parameter range of the curve and indicate whether it is to be treated as periodic. If the ifail value is set to FGPROP then Parasolid uses default properties for the curve evaluator: there is no need to set the range and periodicity flag.
Default properties are parameter range [0, 1] and periodicity flag FGPRBD (i.e. non-periodic parametrization).
If the ifail value is set to FGOPOK then this function must set the parameter range and periodicity flag:
-
range[0] = lowest parameter value
-
range[1] = highest parameter value
-
*period = FGPRBD (must have non-periodic parametrization)
Note: For the current Parasolid version closed and periodic curves are NOT permitted. This function includes the periodic argument for upwards compatibility with future planned enhancements to FG capability.
[back to top]
B.7 FGPRSU - Return foreign surface parametrization properties
void
|
FGPRSU
|
|
|
|
(
|
|
|
|
|
|
|
/*
|
received arguments
|
*/
|
int
|
ki_ints[],
|
/*
|
KI integer array
|
*/
|
double
|
ki_reals[],
|
/*
|
KI real array
|
*/
|
double
|
fg_data[],
|
/*
|
FG data array
|
*/
|
|
|
/*
|
returned arguments
|
*/
|
double
|
range[4],
|
/*
|
Parameter ranges
|
*/
|
int
|
period[2],
|
/*
|
Periodicity flags - may take FGPRBD, FGPRPE for bounded and periodic parametrizations
|
*/
|
int
|
*ifail
|
/*
|
Failure indicator
|
*/
|
)
|
|
|
|
|
Specific errors
FGOPFA
|
Operation failed
|
FGPROP
|
Use default parameter properties
|
(FGOPOK
|
Operation successful)
|
This function is called, after FGCRSU has initialized the surface, to indicate to Parasolid some of the parametric properties of the surface. The function can specify the parameter ranges of the surface and indicate whether it is to be treated as periodic in u and/or v.
If the ifail value is set to FGPROP then Parasolid uses default properties for the surface evaluator: there is no need to set the range and periodicity flag. Default properties are parameter ranges [0, 1] for both u and v parameters and periodicity flags FGPRBD for both parameters (i.e. non-periodic parametrization).
If the ifail value is set to FGOPOK then this function must set the range array and the periodicity flags array.
-
range[0], range[1] are lower and upper u parameter values
-
range[2], range[3] are lower and upper v parameter values
-
period[0] is the u parameter periodicity flag (must be FGPRBD)
-
period[1] is the v parameter periodicity flag (must be FGPRBD)
Note: For the current Parasolid version closed and periodic surfaces are NOT permitted. This function includes the periodic argument for upwards compatibility with future planned enhancements to FG capability.
|
[back to top]