asm_db_get_next_patch_label | ( domessage, integerlabel, stringlabel ) |
Description: | ||
Get the next highest patch label from the database. | ||
Input: | ||
LOGICAL | domessage | Tells the routine to issue an error message if an error occurs. |
Output: | ||
INTEGER | integerlabel | The next highest curve label. |
STRING | stringlabel[] | The next highest curve label. |
INTEGER | <Return Value> | Success or an error code. |
db_count_surface | ( count ) |
Description: | ||
Counts all surfaces in the database. | ||
Input: | ||
none | ||
Output: | ||
INTEGER | count | The integer number of surfaces in the database. |
INTEGER | <Return Value> | Integer indicating success or failure of the routine. If the routine failed, this value contains an indication of the reason. |
db_get_max_surface_label | ( label ) |
Description: | ||
Gets the largest surface label from the database. | ||
Input: | ||
none | ||
Output: | ||
INTEGER | label | |
INTEGER | <Return Value> | Integer indicating success or failure of the routine. If the routine failed, this value contains an indication of the reason. |
db_get_min_surface_label | ( label ) |
Description: | ||
Gets the smallest surface label from the database. | ||
Input: | ||
none | ||
Output: | ||
INTEGER | label | Highest surface label used. |
INTEGER | <Return Value> | Integer indicating success or failure of the routine. If the routine failed, this value contains an indication of the reason. |
db_get_surface_coo_and_type | ( id, coo, type ) |
Description: | ||
Gets a geometric coo and type from the database given an id. | ||
Input: | ||
INTEGER | id | The unique internal surface id identifying the association of the information to be retrieved from the database. |
Output: | ||
INTEGER | coo | The geometric company of origin stored in the database. |
INTEGER | type | The geometric type of data stored in the database. |
INTEGER | <Return Value> | Integer indicating success or failure of the routine. If the routine failed, this value contains an indication of the reason. |
db_get_surface_id | ( label, id ) |
Description: | ||
Gets a surface id from the database given a surface label. | ||
Input: | ||
INTEGER | label | The unique external surface id identifying the surface to be retrieved from the database. |
Output: | ||
INTEGER | id | The unique internal surface id identifying the surface retrieved from the database. |
INTEGER | <Return Value> | Integer indicating success or failure of the routine. If the routine failed, this value contains an indication of the reason. |
db_get_surface_label | ( id, label ) |
Description: | ||
Gets a surface label from the database given a surface id. | ||
Input: | ||
INTEGER | id | The unique internal surface id identifying the surface to be retrieved from the database. |
Output: | ||
INTEGER | label | The unique external surface id identifying the surface to be retrieved from the database. |
INTEGER | <Return Value> | Integer indicating success or failure of the routine. If the routine failed, this value contains an indication of the reason. |
sgm_create_surface_composite_c | (output_labels, surface_list, flag, gap_tolerance, delete_cons, implicit_topology, created_labels) |
Description: | ||
This function creates composite trimmed surfaces. | ||
Input: | ||
STRING | output_labels[ ] | This value specifies the label of the surface to be created. |
STRING | surface_list[ ] | This value specifies the surfaces from which the composite will be created. |
INTEGER | flag | Inner Loop Options : 0 for All, 1 for None and 2 for Select Edge. |
REAL | gap_tolerance | This value specifies the gap distance for the surface builder. |
LOGICAL | delete_cons | This value specifies, when set to TRUE, that the surfaces in the input value surface_list be deleted after the composite trimmed surfaces are created. |
LOGICAL | implicit_topology | This value specifies, when set to TRUE, that the edges of the created surfaces are defined by the chain links. When this value is set to FALSE the chain link edges will be combined if there is slope continuity in the 2D segments. |
Output: | ||
STRING | created_labels[VIRTUAL] | This value returns the label of the composite surface created. |
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
See the Status Messages (Ch. 11) for information on any error values returned by this function. |
sgm_create_surface_comptrim_v1 | (output_ids, surface_list, outer_curve_list, inner_curve_list,gap_dist,delete_surface, outer_curve_delete, inner_curve_delete, implicit_topology, created_ids) |
Description: | ||
This function constructs a trimmed surface from a parent surface and/or outer and inner boundary curves with an option of how to define the edges of the trimmed surfaces. | ||
Input: | ||
STRING | output_ids[] | This value specifies the surface ID list. If this value is set to an empty string or to “#”, the function will automatically allocate and assign a sequential list of surface IDs. |
STRING | surface_list[] | This value specifies the parent surface to trim. |
STRING | outer_curve_list[] | This value specifies the outer boundary trim curves. |
STRING | inner_curve_list[] | This value specifies the inner boundary trim curves. |
REAL | gap_dist | The gap distance tolerance between the surfaces to be trimmed. |
LOGICAL | delete_surface | This value is set to TRUE if the parent surface is to be deleted after trimmed surface is created. |
LOGICAL | outer_curve_delete | This value is set to TRUE if the outer boundary trim curves are to be deleted after trimmed surface is created. |
LOGICAL | inner_curve_delete | This value is set to TRUE if the inner boundary trim curves are to be deleted after trimmed surface is created. |
LOGICAL | implicit_topology | This value is set to TRUE if the edges are defined from the chain links, or to FALSE if the edges are to be derived from the slope continuity in the 2D segments. |
Output: | ||
STRING | created_ids[VIRTUAL] | This value returns the created ID list. |
Error Conditions: | ||
See the Status Messages (Ch. 11) for information on any error values returned by this function. |
sgm_create_surface_from_elems1 | (output_ids, elem_list, preview, node_list, in_options, in_nodes, delete_original, s_option, corner_nodes, deleted_ids, created_ids) |
Description: | ||
This function constructs surface from any 2D element. | ||
Input: | ||
INTEGER | output_ids[] | This value specifies the surface ID list. If this value is set to an empty string or to “#”, the function will automatically allocate and assign a sequential list of surface IDs. |
STRING | elem_list[] | This value specifies the list of elements. |
INTEGER | preview | = 1 will return 4 corner nodes. |
STRING | node_list[] | List of nodes that represent vertices. |
INTEGER | in_options | Defines which loops to be preserved 0 = All, 1 = None, 3 = Selected Loops |
STRING | in_nodes | List of nodes on the loop that need to be preserved. |
LOGICAL | delete_original[] | FALSE will delete the original elements. |
INTEGER | s_option[] | Value for Smoother options. 0 = Fast 1 = Better Parametrization. |
INTEGER | corner_nodes() | Returns the array of corner nodes if preview = 1 |
STRING | deleted_ids[VIRTUAL] | Deleted items. |
Output: | ||
STRING | created_ids[VIRTUAL] | This value returns the created ID list. |
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
See the Status Messages (Ch. 11) for information on any error values returned by this function. |
sgm_db_get_num_loops_face | ( surfaceid, getedges, numloops, numedges, numegploop, status ) |
Description: | ||
Gets the number of loops for a surface, and the total number of edges and if desired, the number of edges per loop. | ||
Input: | ||
INTEGER | surfaceid | The ID of the surface. |
LOGICAL | getedges | TRUE if routine should get number of edges per loop. FALSE if not. |
Output: | ||
INTEGER | numloops | The number of loops. |
INTEGER | numedges | The total number of edges. |
INTEGER | numegploop ( ) | The number of edges per loop (dimension is numberLoops). |
INTEGER | status | Success or an error code. |
Comments: | ||
The usual way to use this routine is: 1. Call it to get the number of loops numberLoops with getEdges == False (0) 2. User allocates array numberEdgesPerLoop as (INT *) MemAlloc ( arg, numberLoops * sizeof(INT)). 3. User calls routine again with getEdges == True (1) to get the array of number of edges per loop for all loops (numberEdgesPerLoop). | ||
Error Conditions: | ||
1000025 | Error attempting to allocate virtual memory. |
sgm_db_get_surface | ( surfaceid, blobsize, blob, status ) |
Description: | ||
Get the geometric definition of a surface from the database. | ||
Input: | ||
INTEGER | surfaceid | The ID of the surface. |
INTEGER | blobsize | Size of the blob in words. |
REAL | blob ( ) | Array to be filled in with Geometric description of a surface as a blob. |
Output: | ||
REAL | blob ( ) | Geometric description of the surface. |
INTEGER | status | 0: no error. -1: database error. -2: insufficient array length for the blob. |
Error Conditions: | ||
38000001 | The allocated space for the blob is too small |
sgm_edit_surface_edge_match | (type_option, surface_list_1,surface_list_2, delete_flag, created_ids) |
Description: | ||
This function matches the edges for adjacent surfaces which have gaps inbetween. This is particularly relevant when surface models are imported. Such models tend to have gaps which require closing to avoid any errors regarding continuity with adjacent surfaces. This function works with topologically incongruent models and matches topology (edges and vertices). | ||
Input: | ||
INTEGER | type_option[] | The type of edge match to be done. 1 for surface-point 2 for surface-surface. |
STRING | surface_list_1[] | The first list of surfaces. |
STRING | surface_list_2[] | The second list of surfaces. |
LOGICAL | delete_flag | This value is set to TRUE if the original surfaces are to be deleted. |
Output: | ||
STRING | created_ids[] | This value returns the created ID list. |
INTEGER | <Return_value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
See the Status Messages (Ch. 11) for information on any error values returned by this function. |
sgm_edit_surface_sew | (surface_list, created_ids) |
Description: | ||
This function sews surfaces which have gaps inbetween. This is relevant when surface models are imported. Such models tend to have gaps which require closing to avoid any errors regarding continuity of the surfaces. This function will sew edges into a common boundary between surfaces. This function was introduced to handle cases and close up gaps not possible with just edge_match. | ||
Input: | ||
STRING | surface_list[] | The list of surfaces to be sewed. |
Output: | ||
STRING | created_ids[] | This value returns the created ID list. |
INTEGER | <Return_value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
See the Status Messages (Ch. 11) for information on any error values returned by this function. |
sgm_get_surface_area | ( surfid, area ) |
Description: | ||
Gets the area of a surface. | ||
Input: | ||
INTEGER | surfid | The ID of the surface. |
Output: | ||
REAL | area | The area of the surface. |
INTEGER | <Return Value> | SUCCESS or an error code. |
sgm_node_on_surface | ( geo_tolerance, number_surfaces, surface_list, number_nodes, init_flag, number_nodes_found, node_id_list, node_uv_list ) |
Description: | ||
This function will get the nodes close to the given surfaces within the geometric tolerance. | ||
Input: | ||
REAL | geo_tolerance | This value specifies the geometric tolerance. |
INTEGER | number_surfaces | This value specifies the number of offsets in the input value surface_list |
INTEGER | surface_list(number_nodes) | This value specifies a list of surface identifier values. |
INTEGER | number_nodes | This value specifies the number of offsets defined for the output values node_id_list and node_uv_list. |
INTEGER | init_flag | This value specifies when set to 0 that the initial call to get the number of nodes on the surfaces is being made. This value specifies, when set to 1 that the call to retrieve the list of nodes on the surfaces is being made. |
Output: | ||
INTEGER | number_nodes_found (1) | This value returns the number of the nodes found on the list of surfaces. |
INTEGER | node_id_list (number_nodes) | This value returns a list of the node identifiers found on the specified surfaces. |
REAL | node_uv_list (number_nodes * 2) | This value returns a list of parametric U and V values for the nodes specified by the return value node_id_list. The U and V values are listed in the order of U1,V1,U2,V2,U3,V3,.... |
INTEGER | <Return Value> | This function returns a value of 0 when executed successfully and a non zero value to indicate a change in status or an error. |
Error Conditions: | ||
This is only a partial list of the error values that can be returned by this function. | ||
9999 | See the remarks listed below. | |
1000025 | Error attempting to allocate virtual memory. | |
1000716 | Data for surface %I% not found. | |
1000707 | No surfaces were found to exist in the database as defined in the surface list. The surface list input was %A%. | |
1000025 | No Node found ! |
sgm_show_surface_normals | ( surflist, scaled, numsurf, segid, redflag, vecdens, veclen ) |
Description: | ||
Routine that calculates and shows the surface normals. | ||
Input: | ||
STRING | surflist[] | The list of surfaces. |
LOGICAL | scaled | TRUE if user wants to scale the normals to a percentage of the surface area, FALSE otherwise. |
INTEGER | numsurf | The number of surfaces (or segments). |
INTEGER | segid | The ID of the segment. |
INTEGER | redflag | 0 to show vectors on the interior and boundary, 1 to show vectors on the boundary only. |
INTEGER | vecdens | The number of vectors in the u and v directions. |
REAL | veclen | The length of the vectors if they are not scaled. |
Output: | ||
INTEGER | <Return Value> | 0 if successful, else returns error code. |
Error Conditions: | ||
14000010 | In the list being used, the current sublist does not match the sublist filter. | |
14000015 | LpSublistNext: End of current list has been reached. | |
1000025 | Error attempting to allocate virtual memory. | |
1000707 | No surfaces were found to exist in the database as defined in the surface list. The surface list input was %A%. |
sgm_surface_evaluate | (surface_data, ui, vi, derivative_use, surface_info, error_code ) |
Description: | ||
This function evaluates a surface, returning information that defines the characteristics of a surface. | ||
Input: | ||
REAL | surface_data() | This value specifies a surface data table or a blob. See the remarks below for more information. |
REAL | ui | This value specifies a parametric coordinate. |
REAL | vi | This value specifies a parametric coordinate. |
INTEGER | derivative_use | This value specifies the type of information that will be returned by this function. See below for more information. |
Output: | ||
REAL | surface_info(21) | This value returns the evaluated surface information. See the remarks below for information on how to interpret the values returned. |
INTEGER | error_code | This value returns an error code and will be set to 0 if the surface evaluation was successful and a non zero value to indicate an error. |
Error Conditions: | ||
This is only a partial list of the error values that can be returned by this function. | ||
1 | A malformed surface data table or blob has been found. This problem is most likely caused by an error in the input value surface_data. | |
2 | This value indicates that the input value drivative_use has been set to request normal information and that the current input values for ui and vi fall on an unresolvable singularity. All of the other return vectors are valid at this point. Only the normal vector is not to be used. |
derivative_use value | Information Returned |
0 | x, y, z |
1 | x,y,z,nx,ny,nz,xu,yu,zu,xv,yv,zv |
2 | x,y,z,nx,ny,nz,xu,yu,zu,xv,yv,zv,xuu,yuu,zuu, xvv,yvv,zvv |
3 | x,y,z,nx,ny,nz,xu,yu,zu,xv,yv,zv,xuu,yuu,zuu, xvv,yvv,zvv,xuv,yuv,zuv |