Appendix B. Boundary Functions

The following boundary functions are available.


Note:  These functions are not supported in a distributed parallel environment.


FeatureDescriptionFunction
Improve surface meshImprove marked faces by splitting the longer edge.
  • Specify the face zones using a face-zone-id-list, face-zone-name-list, or face-zone-name-pattern*.

  • Specify the longer-edge-split-ratio (length ratio for the split created by projecting the opposite node onto the longer edge). The valid range is 0 to 0.5 and the recommended value is 0.25.

(tgapi-boundary-split-marked-faces '(face-zone-id-list) longer-edge-split-ratio)
(tgapi-boundary-split-marked-faces '(face-zone-name-list) longer-edge-split-ratio)
(tgapi-boundary-split-marked-faces "face-zone-name-pattern*" longer-edge-split-ratio)
Improve marked faces by collapsing face edges.
  • Specify the face zones using a face-zone-id-list, face-zone-name-list, or face-zone-name-pattern*.

  • Choose whether to preserve the boundary by setting preserve-boundary? to #t or #f.

    • If preserve-boundary? is enabled (#t), specify the boundary-corner-angle to be used for marking fixed nodes on the boundary. The recommended value is 20 degrees.

  • Set the max-collapsible-edge-ratio depending on the improve operation:

    • To improve general quality, specify a value between 0 to 0.5. A value of 0.5 is recommended.

    • To collapse sliver faces, specify a value of 0.1.


    Note:  A value of 0 will result in all marked faces being collapsed.



Tip:  Use this operation when the mesh skewness is greater than 0.7.

Also, it is recommended to mark faces and collapse faces by edge ratio incrementally. For example, first mark faces with skewness greater than 0.9 and then collapse marked faces using an edge ratio of 0.1. When the mesh quality is improved, next mark faces with skewness greater than 0.8 and then collapse marked faces using an edge ratio of 0.2; and so on.


(tgapi-boundary-collapse-marked-faces '(face-zone-id-list) preserve-boundary? boundary-corner-angle max-collapsible-edge-ratio)
(tgapi-boundary-collapse-marked-faces '(face-zone-name-list) preserve-boundary? boundary-corner-angle max-collapsible-edge-ratio)
(tgapi-boundary-collapse-marked-faces "face-zone-name-pattern*" preserve-boundary? boundary-corner-angle max-collapsible-edge-ratio)
Improve sliver faces by splitting and collapsing edges.
  • Specify the face zones using a face-zone-id-list, face-zone-name-list, or face-zone-name-pattern*.

  • Specify the height threshold for sliver face improvement. All faces with sliver-height less than the specified value will be marked for improvement. Sliver height is the shortest height of the triangular face - the distance between the location of the opposite node and its projection point on the longer edge.

  • Specify either "Skewness" or "Aspect Ratio" as the "sliver-quality-measure", and the sliver-quality threshold used for marking.

  • Specify the longer-edge-split-ratio (length ratio for the split created by projecting the opposite node onto the longer edge). The valid range is 0 to 0.5 and the recommended value is 0.25.

  • Choose whether to preserve the boundary by setting preserve-boundary? to #t or #f.

    • If preserve-boundary? is enabled (#t), specify the boundary-corner-angle to be used for marking fixed nodes on the boundary. The recommended value is 20 degrees.

(tgapi-boundary-split-and-collapse-sliver-faces '(face-zone-id-list) sliver-height "sliver-quality-measure" sliver-quality longer-edge-split-ratio preserve-boundary? boundary-corner-angle)
(tgapi-boundary-split-and-collapse-sliver-faces '(face-zone-name-list) sliver-height "sliver-quality-measure" sliver-quality longer-edge-split-ratio preserve-boundary? boundary-corner-angle)
(tgapi-boundary-split-and-collapse-sliver-faces "face-zone-name-pattern*" sliver-height "sliver-quality-measure" sliver-quality longer-edge-split-ratio preserve-boundary? boundary-corner-angle)
PatchCreate a planar surface to patch holes associated with free faces for the face zones specified. The free faces should be continuous for the planar patch to be created.
  • Specify the face zones with free faces using a face-zone-id-list, face-zone-name-list, or face-zone-name-pattern*.

  • Specify three coplanar points to define the plane (for example, (list '(-10 5 5) '(0 5 5) '(0 -5 5))).

  • Specify the tolerance value, and choose whether to use an absolute tolerance (set absolute-tolerance? to #t or #f). Nodes within the tolerance from the plane will be used to create the planar surface.

Note:  The patch surface is not connected to the original face zones.

(tgapi-boundary-fill-planar-holes-using-free-faces '(face-zone-id-list) plane tolerance absolute-tolerance?)
(tgapi-boundary-fill-planar-holes-using-free-faces '(face-zone-name-list) plane tolerance absolute-tolerance?)
(tgapi-boundary-fill-planar-holes-using-free-faces "face-zone-name-pattern*" plane tolerance absolute-tolerance?)
Create a planar surface to patch holes associated with free faces for the object and face zone labels specified. The free faces should be continuous for the planar patch to be created.
  • Specify the object and the face zone labels with free faces using a face-zone-label-list or face-zone-label-name-pattern*.

  • Specify three coplanar points to define the plane (for example, (list '(-10 5 5) '(0 5 5) '(0 -5 5))).

  • Specify the tolerance value, and choose whether to use an absolute tolerance (set absolute-tolerance? to #t or #f). Nodes within the tolerance from the plane will be used to create the planar surface.

  • Specify the new-label-name for the planar surface created. The patch surface is included in the object and a new face zone label is created.

(tgapi-boundary-fill-planar-holes-using-free-faces-in-object 'object '(face-zone-label-list) plane tolerance absolute-tolerance? "new-label-name")
(tgapi-boundary-fill-planar-holes-using-free-faces-in-object 'object "face-zone-label-name-pattern*" plane tolerance absolute-tolerance? "new-label-name")
(tgapi-boundary-fill-planar-holes-using-free-faces-in-object "object" '(face-zone-label-list) plane tolerance absolute-tolerance? "new-label-name")
(tgapi-boundary-fill-planar-holes-using-free-faces-in-object "object" "face-zone-label-name-pattern*" plane tolerance absolute-tolerance? "new-label-name")
Create a planar surface to patch holes using the free face edges for the edge zones specified. The edge zone should be continuous and free from intersections.
  • Specify the edge zones using an edge-zone-id-list, edge-zone-name-list, or edge-zone-name-pattern*.

  • Specify three coplanar points to define the plane (for example, (list '(-10 5 5) '(0 5 5) '(0 -5 5))).

  • Specify the tolerance value, and choose whether to use an absolute tolerance (set absolute-tolerance? to #t or #f). Nodes within the tolerance from the plane will be used to create the planar surface.

Note:  The patch surface is not connected to the original face zones.

(tgapi-boundary-create-planar-surface-using-edges '(edge-zone-id-list) plane tolerance absolute-tolerance?)
(tgapi-boundary-create-planar-surface-using-edges '(edge-zone-name-list) plane tolerance absolute-tolerance?)
(tgapi-boundary-create-planar-surface-using-edges "edge-zone-name-pattern*" plane tolerance absolute-tolerance?)
RemeshRemesh the marked faces.
  • Specify the face zones using a face-zone-id-list, face-zone-name-list, or face-zone-name-pattern*.

  • Specify the number of rings (n-rings).

  • Choose whether to preserve the shared zone boundary by setting preserve-shared-zone-boundary? to #t or #f (recommended).

  • Specify the feature-min-angle and feature-max-angle. The feature-min-angle and feature-max-angle are the limits for the feature angle. Recommended values are 40 and 180, respectively. If the mesh has false features like folds and overlaps, the feature-max-angle can be set to 155.

  • Specify the corner-angle. The corner-angle is the minimum angle between feature edges that will be preserved during remeshing. The recommended value is 20.

  • Select a "sizing-option" using "geometric", "constant", "geodesic" or "volumetric".

  • Specify values for constant-size (used when "sizing-option" is set to "constant"), min-size, max-size, and growth-rate (these are used when "sizing-option" is set to "geometric" or "geodesic").


    Note:  All four values must be provided regardless of the selected "sizing-option".

    A value of -1 can be used for the parameters that are not required for a particular sizing option.


(tgapi-boundary-remesh-marked-faces '(face-zone-id-list) n-rings preserve-shared-zone-boundary? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate)
(tgapi-boundary-remesh-marked-faces '(face-zone-name-list) n-rings preserve-shared-zone-boundary? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate)
(tgapi-boundary-remesh-marked-faces "face-zone-name-pattern*" n-rings preserve-shared-zone-boundary? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate)
Remesh face zones by separating them internally into patches and later merging them. The patches which fail to remesh using the advancing front (surfer) algorithm will be remeshed using explicit remeshing (split, improve, and coarsen). You can specify the number of attempts for the advancing front algorithm and also use explicit remeshing for the patches, if required.
  • Specify the face zones and edge zones using a face/edge zone list or by face/edge zone name pattern.

  • Choose whether to replace the original zones with the remeshed zones by setting replace-face-zones? to #t or #f (recommended).

  • Specify the feature-min-angle and feature-max-angle. The feature-min-angle and feature-max-angle limits are used to retain angle-based features. Recommended values are 40 and 180, respectively. If the mesh has false features like folds and overlaps, the feature-max-angle can be set to 155.

  • Specify the corner-angle. The corner-angle is the minimum angle between feature edges that will be preserved for corner nodes during remeshing. The recommended value is 20.

  • Select a "sizing-option" using "constant", "geodesic" or "volumetric".


    Note:  The "geometric" option is not supported.


  • Specify values for constant-size (used when "sizing-option" is set to "constant"), min-size, max-size, and growth-rate (these are used when "sizing-option" is set to "geodesic"). These values are not used when the "sizing-option" is set to "volumetric".


    Note:  All four values must be provided regardless of the selected "sizing-option".

    A value of -1 can be used for the parameters that are not required for a particular sizing option.


  • Specify the number of attempts to improve the failed patches using explicit remeshing (n-retries-on-failed) and whether to further improve the failed patches using explicit remeshing improve-failed? set to #t or #f.

  • Specify the front-intersection-tolerance for checking intersections. The value specified should be in the range 0 to 1. The recommended value is 0.0, which can be increased if the remeshed patch shows intersections.

(tgapi-boundary-remesh-face-zones '(face-zone-list) '(edge-zone-list) replace-face-zones? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-face-zones '(face-zone-list) "edge-zone-name-pattern*" replace-face-zones? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-face-zones "face-zone-name-pattern*" '(edge-zone-list) replace-face-zones? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-face-zones "face-zone-name-pattern*" "edge-zone-name-pattern*" replace-face-zones? feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
Remesh object face zone labels by separating them internally into patches and later merging them. The patches which fail to remesh using the surfer (advancing front) algorithm, will be remeshed using explicit remeshing (split, improve, and coarsen). You can specify the number of attempts for the surfer algorithm and also use explicit remeshing for the patches, if required.
  • Specify the object, face zone labels (face-zone-label-list or face-zone-label-pattern*), and edge zones (edge-zone-list or edge-zone-name-pattern*).

  • Specify the feature-min-angle and feature-max-angle. The feature-min-angle and feature-max-angle limits are used to retain angle-based features. Recommended values are 40 and 180, respectively. If the mesh has false features like folds and overlaps, the feature-max-angle can be set to 155.

  • Specify the corner-angle. The corner-angle is the minimum angle between feature edges that will be preserved for corner nodes during remeshing. The recommended value is 20.

  • Select a "sizing-option" using "constant", "geodesic" or "volumetric".


    Note:  The "geometric" option is not supported.


  • Specify values for constant-size (used when "sizing-option" is set to "constant"), min-size, max-size, and growth-rate (these are used when "sizing-option" is set to "geodesic"). These values are not used when the "sizing-option" is set to "volumetric".


    Note:  All four values must be provided regardless of the selected "sizing-option".

    A value of -1 can be used for the parameters that are not required for a particular sizing option.


  • Specify the number of attempts to improve the failed patches using explicit remeshing (n-retries-on-failed) and whether to further improve the failed patches using explicit remeshing improve-failed? set to #t or #f.

  • Specify the front-intersection-tolerance for checking intersections. The value specified should be in the range 0 to 1. The recommended value is 0.0, which can be increased if the remeshed patch shows intersections.

(tgapi-boundary-remesh-object-labels 'object-name '(face-zone-label-list) '(edge-zone-list) feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-object-labels 'object-name '(face-zone-label-list) "edge-zone-name-pattern*" feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-object-labels 'object-name "face-zone-label-pattern*" '(edge-zone-list) feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-object-labels "object-name" '(face-zone-label-list) '(edge-zone-list) feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-object-labels "object-name" '(face-zone-label-list) "edge-zone-name-pattern*" feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)
(tgapi-boundary-remesh-object-labels "object-name" "face-zone-label-pattern*" '(edge-zone-list) feature-min-angle feature-max-angle corner-angle "sizing-option" constant-size min-size max-size growth-rate n-retries-on-failed improve-failed? front-intersection-tolerance)