Package Documentation

Object: trimmed-surface (The :surf Package)
Mixins: face

Description

Creates a surface which is trimmed by outer trimming loop curves (the ``island''), and one or more hole curves within the outer trimming loop. The curves can be input either as u-v curves or 3D curves. If 3D curves are given, they must lie on the surface. If not, please use dropped-curve or projected-curve to ensure that the curves lie on the surface.

Note that this object mixes in face, which mixes in surface. So this object should answer all the messages of both face and surface. However, the local surface messages will operate on the basis, not on the trimmed representation. The messages for face will operate on the trimmed representation.

NOTE: the interface for this object is still under development so please stay apprised of any changes.


Input Slots (optional)

basis-surface gdl nurbs surface

The underlying surface to be trimmed.


brep-tolerance [from surface] number

Overall tolerance for the internal brep representation of this surface. Defaults to nil. Note that a value of nil indicates for SMLib a value of 1.0e-05 of the longest diagonal length of the brep.


built-from [from surface] gdl surface

Specify this if you want this surface to be a clone of an existing surface (note - this uses a shared underlying surface object, it does not make a copy)


color-decimal [from geometry-kernel-object-mixin] vector of three real numbers

The RGB color of this object as imported from an external format (e.g. IGES) or as specified in :display-controls. Defaults to the foreground color specified in *colors-default*. This message should not normally be overridden in user application code.


end-caps-on-brep? [from surface] boolean

Indicates whether to attempt automatic endcaps on conversion of this surface to a brep. Note that this might change in future to a keyword value for :min, :max, or :both to provide more control.


hidden? [from vanilla-mixin*] boolean

Indicates whether the object should effectively be a hidden-object even if specified in :objects. Default is nil.


holes list of gdl nurbs curves or list of lists of gdl nurbs curves

These curves make up zero or more holes within the outer trimming loop. Normally should be in clockwise orientation; if not, please specify reverse-holes? as non-NIL.


iges-level [from geometry-kernel-object-mixin] integer

Synonym for the layer.


image-file [from base-object] pathname or string

Points to a pre-existing image file to be displayed instead of actual geometry for this object. Defaults to nil


island single gdl nurbs curve or list of same

These curves make up the outer trimming loop. Normally should be in counter-clockwise orientation; if not, please specify reverse-island? as non-NIL.


layer [from geometry-kernel-object-mixin] integer

The primary IGES-compatible level (layer) on which this object resides. Defaults to the first of the levels. This slot can be overridden in user code to specify a new layer which will be written out when this object is exported with the IGES output-format.


levels [from geometry-kernel-object-mixin] list of integers

The IGES-compatible levels (layers) on which this object resides. GDL does not currently support writing out multiple levels (layers) through the IGES writer ; only the first of these will be output if the object is exported with the IGES output-format (please contact Genworks if you need all levels (layers) to be written out).


obliqueness [from base-object] 3x3 orthonormal matrix of double-float numbers

This is synonymous with the orientation.


onclick-function [from base-object] lambda function of zero arguments, or nil

If non-nil, this function gets invoked when the user clicks the object in graphics front-ends which may or may not support this functionality (see viewport-html-div).


rational? [from surface] boolean

Returns non-nil iff this surface is rational, i.e. all weights are not 1.


reverse-holes? boolean

Specify this as non-NIL if the holes are given in counter-clockwise orientation. Default is NIL.


reverse-island? boolean

Specify this as non-NIL if the island is given in clockwise orientation. Default is NIL.


root [from vanilla-mixin*] gdl instance

The root-level node in this object's ``tree'' (instance hierarchy).


safe-children [from vanilla-mixin*] list of gdl instances

All objects from the :objects specification, including elements of sequences as flat lists. Any children which throw errors come back as a plist with error information


sew-and-orient-brep? [from surface] boolean

Indicates whether brep representation should undergo a sew-and-orient operation. Defaults to nil.


strings-for-display [from vanilla-mixin*] string or list of strings

Determines how the name of objects of this type will be printed in most places. This defaults to the name-for-display (generally the part's name as specified in its parent), followed by an index number if the part is an element of a sequence.


tessellation-parameters [from surface] plist of keyword symbols and numbers

This controls tessellation for the brep of this surface. The keys are as follows:

  • :min-number-of-segments
  • :max-3d-edge-factor
  • :min-parametric-ratio
  • :max-chord-height
  • :max-angle-degrees
  • :min-3d-edge
  • :min-edge-ratio-uv
  • :max-aspect-ratio
and the defaults come from the following parameters:
   (list 
       :min-number-of-segments *tess-min-number-of-segments*
       :max-3d-edge-factor *tess-max-3d-edge-factor*
       :min-parametric-ratio *tess-min-parametric-ratio*
       :max-chord-height *tess-max-chord-height*
       :max-angle-degrees *tess-max-angle-degrees*
       :min-3d-edge *tess-min-3d-edge*
       :min-edge-ratio-uv *tess-min-edge-ratio-uv*
       :max-aspect-ratio *tess-max-aspect-ratio*)


tolerance [from surface] number

Approximation tolerance for display purposes.


uv-inputs boolean

NIL if feeding in 3D curves, non-NIL if feeding in UV curves.


visible-children [from vanilla-mixin*] list of gdl instances

Additional objects to display in Tatu tree. Typically this would be a subset of hidden-children. Defaults to NIL.



Input Slots (optional, defaulting)

center [from base-object] 3d point

Indicates in global coordinates where the center of the reference box of this object should be located.


display-controls [from base-object] plist

May contain keywords and values indicating display characteristics for this object. The following keywords are recognized currently:

:color
color keyword from the *color-table* parameter, or an HTML-style hexidecimal RGB string value, e.g. "#FFFFFF" for pure white. Defaults to :black.
:line-thickness
an integer, defaulting to 1, indicating relative line thickness for wireframe representations of this object.
:dash-pattern
(currently PDF/PNG/JPEG only). This is a list of two or three numbers which indicate the length, in pixels, of the dashes and blank spaces in a dashed line. The optional third number indicates how far into the line or curve to start the dash pattern.


isos [from surface] plist with keys :n-u and :n-v

The number of isoparametric curves to be displayed in each direction. This value comes from the value of :isos on the display-controls if that exists, and defaults to *isos-default* otherwise.


orientation [from base-object] 3x3 matrix of double-float numbers

Indicates the absolute Rotation Matrix used to create the coordinate system of this object. This matrix is given in absolute terms (i.e. with respect to the root's orientation), and is generally created with the alignment function. It should be an orthonormal matrix, meaning each row is a vector with a magnitude of one (1.0).



Computed Slots

result-holes list of gdl 3d nurbs curves or list of lists of gdl 3d nurbs curves

These make up the inner holes of the resultant trimmed surface. If you specified holes as an input-slot, normally these should be the same or very similar. If the trimmed surface was read in from an outside system through a translator such as IGES, the result-holes might return a non-NIL value while the island will always return NIL.


result-island single gdl 3d nurbs curve or list of gdl 3d nurbs curves

These make up the outer trimming loop of the resultant trimmed surface. If you specified island as an input-slot, normally these should be the same or very similar. If the trimmed surface was read in from an outside system through a translator such as IGES, the result-island should return a non-NIL value while the island will return NIL.



Hidden Objects

brep gdl brep object

The Brep containing the face corresponding to this trimmed surface.


Package Documentation