Package Documentation

Object: torus-solid (The :surf Package)
Mixins: torus, brep

Description

A donut shape represented as a brep solid. Contains the union of messages (e.g. input-slots, computed-slots, etc) from brep and torus.


Input Slots (required)

major-radius [from torus] number

Distance from center of donut hole to centerline of the torus.


minor-radius [from torus] number

Radius of the bent cylinder making up the torus.


radius [from arcoid-mixin] number

Distance from center to any point on the arc.



Input Slots (optional)

brep-tolerance [from brep] number

Overall tolerance for the created brep solid. Defaults to nil. Note that a value of nil indicates for SMLib to use value of 1.0e-05 of the longest diagonal length of the brep.


built-from [from brep] gdl brep object

Defaults to nil. Specify this if you want this brep to be a clone of an existing brep. (note - this uses a shared underlying brep 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.


draw-centerline-arc? [from torus] boolean

Indicates whether the bent cylinder's centerline arc should be rendered in some renderings.


end-angle [from arcoid-mixin] angle in radians

End angle of the arc. Defaults to twice pi.


end-caps? [from torus] boolean

Indicates whether to include end caps for a partial torus in some renderings. Defaults to T.


face-brep-colors [from brep] list of color keywords

These indicate the colors for the breps produced by (the face-breps). If the number of face-breps exceeds the length of this list, the colors will be repeated in order. Defaults to a list with keys:

  • :green
  • :red
  • :blue
  • :purple-dark
  • :violet
  • :cyan.


hidden? [from vanilla-mixin*] boolean

Indicates whether the object should effectively be a hidden-object even if specified in :objects. Default is 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


inner-minor-radius [from torus] number

Radius of the inner hollow part of the bent cylinder for a hollow torus. Defaults to NIL for a solid cylinder


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).


number-of-longitudinal-sections [from torus] integer

Indicates the number of arcs to be drawn on along ``surface'' of the torus in some wireframe renderings.


number-of-transverse-sections [from torus] integer

Indicates the number of circular cross-sections of the bent cylinder to show in some wireframe renderings.


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).


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


start-angle [from arcoid-mixin] angle in radians

Start angle of the arc. Defaults to zero.


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 brep] plist of keyword symbols and numbers

This controls tessellation for this brep. 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*)


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, settable)

density [from brep] number

The density per unit volume of the brep. Defaults to 1


display-iso-curves-wireframe? [from brep] boolean

Determines whether the isoparametric curves of each face of the brep are used for wireframe display. The default is T.


display-tessellation-lines-wireframe? [from brep] boolean

Determines whether the tessellation grid-lines of the brep are used for wireframe display. The default is NIL.


isos [from brep] 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.


max-3d-edge [from brep] number

Used for tessellations. Computed from (the max-extent) and (the max-3d-edge-factor). WARNING: Modify this value at your peril. Small values can cause intractable tessellations. It is better to tweak max-3d-edge-factor to a small value like 0.1, as this will be taken relative to the max-extent of the brep.


max-3d-edge-factor [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


max-angle-degrees [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


max-aspect-ratio [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


max-chord-height [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


min-3d-edge [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


min-edge-ratio-uv [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


min-number-of-segments [from brep] integer

Used for tessellations. Default comes from (the tessellation-parameters).


min-parametric-ratio [from brep] number

Used for tessellations. Default comes from (the tessellation-parameters).


poly-brep-smooth-results? [from brep] boolean

Smooth results for poly-brep? Defaults to t.



Input Slots (optional, defaulting)

arc [from torus] angle in radians

Indicates the end angle for the donut. Defaults to twice pi for a full-circle donut.


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.


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).


Examples

 (in-package :surf)

 (define-object test-torus-solid (torus-solid)
    :computed-slots ((major-radius 10) (minor-radius 3) (arc pi)))

 (generate-sample-drawing :objects (the-object (make-object 'test-torus-solid) )
                          :projection-direction (getf *standard-views* :trimetric))

Package Documentation