<<< Functional Enhancements | Chapters | Environment >>> |
This chapter describes changes that have been made to the PK interface for Parasolid V13.0. This information is structured as follows:
This section describes enhancements made to existing PK functions and typedefs since Parasolid V12.1, resulting in a change to the function interface or a change in behavior.
We recommend that you review the use of these functions in your applications.
If the operation PK_FACE_change_type_blend_c is requested in PK_FACE_change, you can now specify the radius of the blend when it is reapplied. If no blend radius is specified the radius used when the blend is reapplied is that of the original blend.
PK_FACE_change can now return the errors
If such an error is returned at least one of the requested operations has failed.
The new
update
option enables or disables some changes to the blending algorithms that might cause differences in model updates between different versions of Parasolid.
PK_BODY_make_curves_outline may return:
PK_BODY_boolean
PK_BODY_boolean_2
These functions now return PK_ERROR_invalid_match_region if the topologies in the matched region are not in the target or tools for the boolean operation.
PK_BODY_boolean_o_t
PK_FACE_boolean_o_t
PK_BODY_section_o_t
PK_FACE_section_o_t
There is a new
keep_target_edges
option that controls which edge survives when two edges are coincident in a boolean or section operation.
PK_TOPOL_clash has been modified to allow individual faces to be clashed together. Previously, it was only possible to clash entire bodies.
Previously, PK_EDGE_attach_curve_nmnl shared curves that were already attached to edges, fins or nominal geometry, and failed if sharing was not possible. This behavour has now changed, so that if sharing is not possible a copy of the curve is made and attached to the edge.
When making a body with PK_CURVE_make_wire_body_2, any input curves in a partition other than the current partition will be duplicated. The resultant body will always be in the current partition.
A new value, PK_knot_do_wraparound_c, allows you to create periodic B-curves using the same data as in the KI function CRBSPC.
Identification and removal of duplicate sheets within PK_BODY_sew_bodies has been extended. You can now use the
duplicate_removal
option to request that sheets are removed if they are duplicates to within the tolerance given as the
gap_width_bound
of the sewing operation.
PK_facet_degen_t
PK_TOPOL_facet_mesh_o_t
PK_facet_degen_t can now take the value PK_facet_degen_average_parms_c, which allows multiple vertices to be output at singularities in the same way as PK_facet_degen_multiple_vxs_c.
In this case when a facet vertex occurs at a degeneracy, the value of the degenerate parameter at the degenerate vertex is the average of the values of that parameter at the two facet vertices at the other ends of the facet edges which meet at the degenerate vertex. The normals and derivatives at the degenerate vertex are evaluated using this average value for the degenerate parameter.
You can now specify that change events to bodies should appear on the bulletin board. If this is specified in the PK_BB_sf_t argument to PK_BB_create, then the first change to a body after the bulletin board was created or emptied, will result in a change event on the bulletin board.
This section describes new PK functions and typedefs that have been added to Parasolid V13.0. These interface changes have been made to provide access to new functionality in Parasolid.
PK_FACE_make_blend_o_t
PK_blend_shape_t
PK_blend_xs_shape_t
PK_blend_xs_plane_t
The capabilities of face-face blending have been expanded so that you can now choose the cross-sectional shape of any blend directly.
Any face-face blend may now be a chamfer, a curvature continuous blend or a conic blend. This is controlled by setting
xs_shape
in the PK_blend_shape_t substructure of the option structure.
You can now create constant radius blends with disc and isoparameter cross-section planes, using the
xsection
option. Previously, these were only possible with rolling-ball cross-section planes.
PK_FACE_identify_blends_o_t
PK_FACE_identify_blends_r_f
PK_FACE_identify_blends_r_t
PK_comparison_t
It is now possible to identify any constant radius blend faces in a supplied array of faces, together with their radii and convexities.
PK_BODY_find_facesets_o_t
PK_BODY_find_facesets_r_t
PK_BODY_find_facesets_r_f
You can use PK_BODY_find_facesets to divide a body into a series of facesets bounded by a given array of edges.
PK_BODY_identify_details
PK_FACE_delete_facesets
PK_BODY_identify_details_o_t
PK_FACE_delete_facesets_o_t
PK_detail_t
PK_identify_details_r_t
PK_identify_details_r_f
You can use PK_BODY_identify_details to return facesets in a body that correspond to specified types of detail. You can use PK_FACE_delete_facesets to remove as many of its given facesets as possible. These two functions can be used in conjunction to provide a robust method of identifying and removing certain types of detail from a body.
Parasolid's tapering functionality has been extended to provide single-pass double-sided tapering of a body. This function is particularly useful for mold design applications that implement parted casting design.
Note: It is not currently possible to omit a chain of references either above or below a parting line. This will be made possible in a future release of V13. |
PK_BODY_offset_o_t
PK_FACE_offset_o_t
A new option,
offset_step
, has been added to these options structures. This option creates step faces along any smooth boundaries between offset and non-offset faces when calling PK_BODY_offset_2 or PK_FACE_offset_2.
PK_FACE_replace_surfs_o_t
PK_FACE_change_replace_o_t
It is now possible to replace the surfaces of multiple faces with a single surface by passing the replacement surface only once. Previously, it needed to be passed for every face being replaced.
A new datatype in PK_FACE_replace_surfs_o_t lets you control the required level of merging when adjacent faces become mergable as a result of a face replace operation. No merging is performed for edges for which replacement curves have been provided. Merging is recommended when adjacent faces are to acquire identical surfaces.
PK_BODY_fill_hole_o_t
PK_fill_hole_fault_t
PK_fill_hole_method_t
Parasolid can now generate suitable faces to fill a hole using PK_BODY_fill_hole, rather than require that your application supplies a suitable sheet body. The boundary of the hole is maintained, and the filling geometry meets the surrounding faces on the hole smoothly where possible.
A new PK_BODY_make_swept_body option has been introduced to allow internal improvement of "bad" sweep paths. This contains a single method that removes twists from regions of paths that have rapidly changing curvature.
You can now simplify the B-geometry for a supplied list of faces and their edges. Previously, it was only possible to simplify the B-geometry of an entire body.
Derivative constraints can now be applied to guide wires when constructing a lofted body using PK_BODY_make_lofted_body.
PK_TOPOL_render_line_o_t
PK_render_viewport_t
You can now use multiple viewports with PK_TOPOL_render_line. The existing single viewport functionality remains unchanged. An extra option is available to let you specify an array of multiple viewports.
You can now specify a tolerance on the smoothness between faces when rendering edges. This is specified using the new options
is_edge_smoothness_tol
and
edge_smoothness_tol
in PK_TOPOL_render_line_o_t. If the angle between the normals of the relevant faces is below
edge_smoothness_tol
, the edge is considered smooth and indicated as such.
PK_SESSION_ask_frustrum
PK_SESSION_register_frustrum
PK_SESSION_ask_applio
PK_SESSION_register_applio
PK_SESSION_ask_unicode
PK_SESSION_set_unicode
PK_UCOPRD_f_t
PK_UCOPWR_f_t
PK_SESSION_applio_t
Parasolid now supports part keys in 16-bit Unicode form as well as the native character set. To preserve runtime compatibility with older applications, the extra fields in various Frustrum structures must be explicitly enabled via PK_SESSION_set_unicode; otherwise the fields are ignored and the appropriate receive/transmit functions will fail.
To support embedding XT files in XML data, the new token PK_transmit_format_xml_c allows you to generate text part, partition, and session files in which the
<
and
&
characters are escaped with
<
and
&
respectively.
PK_MEMORY_ask_block_size
PK_MEMORY_set_block_size
A new function, PK_MEMORY_set_block_size, has been added which allows you to set the smallest block of contiguous space that Parasolid requests when acquiring workspace and modeling memory via FMALLO. PK_MEMORY_set_block_size lets you specify a minimum block size between 130,776 bytes (the default) and 16,736,280 bytes. It can be called at any time, whether or not the modeler is running.
PK_MEMORY_ask_block_size returns the current minimum block size.
The minimum block size can be returned to Parasolid's default by calling PK_MEMORY_set_block_size with an argument of zero. When the modeler is stopped the smallest block size is always returned to Parasolid's default block size.
Note: If the smallest block size is increased above the default of 130,776 bytes, then the amount of memory permanently retained by Parasolid increases accordingly. |
This section describes changes that may be made to Parasolid at any given release, but are not explicitly documented.
In addition to documentation covering the changes and additions to Parasolid functionality, the following changes have been made to the PK Interface documentation that do not affect any existing code.
Three new manuals have been added to the documentation set for Parasolid V13.0. These are:
These manuals are all available from the home page of the Parasolid HTML documentation set, and are available in PDF format by following the PDF files link on the home page.
The documentation for Parasolid's face-face blending functionality has been completely rewritten. For more information, see Chapter 33, "Face-Face Blending", of the Functional Description.
PK reference documentation is now available for all datatypes of the form PK_ CLASS_t and PK_ CLASS_array_t. This means you can now click on any Parasolid-typed function argument or option field in the HTML PK reference documentation to read more information.
Parasolid includes a number of PK_DEBUG functions that you can use to obtain additional information when debugging calls to PK functionality. Documentation for these functions is provided in the PK Interface Programming Reference Manual, but there is no description of functionality in the accompanying Functional Description.
Note: You should not include calls to any PK_DEBUG functions in a released product. |
The following functions are present within Parasolid to support applications with legacy code. We do not recommend the use of these functions and as such, the functions have not been included in the documentation.
To obtain the documentation or information regarding these functions, contact Parasolid Technical Support.
The following function is undocumented and should not be used in application code. It is provided only for backward compatibility.
<<< Functional Enhancements | Chapters | Environment >>> |