united-solid
objectsurfGiven two brep solids, performs the union Boolean between the brep and the other-brep
Sample geometry
No sample shown: this object has no :examples sample definition, and it cannot be instantiated from its defaults alone -- it needs inputs which cannot be invented here (a reference curve or surface, an explicit point list, and so on).
Messages (132 documented, 214 total)
Number. This is the actual tolerance stored in the SMLib object.
GDL Instance. In an element of a sequence, this is the container object which holds all elements.
List of Symbols. Lists all the superclasses of the type of this object.
Boolean. If set to non-nil, throw warning but not error if any of the input breps has more than one non-infinite region. Defaults to boolean-allow-multiple-regions?, which itself defaults to nil.
Number. Defaults to angle-tolerance-radians-default.
Number. Defaults to 3d-approximation-tolerance-default if non-nil. If this value is nil, then this defaults to the approximation-tolerance-adaptive.
Number. Defaults to the minimum of the adaptive-tolerance of any of the input breps, multiplied by the approximation-tolerance-factor, rounded to nearest multiple of tenths (e.g. it will be 0.01, 0.001, 0.001), however if this evaluates as zerop, 3d-approximation-tolerance-default will be used instead.
Number. Defaults to approximation-tolerance-factor. This is multiplied by the minimum of the adaptive-tolerance of any of the input breps to produce the approximation-tolerance-adaptive.
Number. Area covered by the faces of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Area Moments of Inertia of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Area Products of Inertia of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Area Second Moment About Coordinate Axii of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Area Static Moments of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector. Returns the vector pointing in the positive direction of the specified axis of this object's reference box. :arguments (axis "Keyword. One of the standard axis keywords: :lateral, :longitudinal, :vertical.")
GDL object of type Box. A box representing the bounding-box.
List of two 3D points. The left front bottom and right rear top corners, in global coordinates, of the rectangular volume bounding the tree of geometric objects rooted at this object.
GDL Brep object or object containing a brep. First of the breps to be merged
Value nil or t. This function performs an intersection between this brep and another brep. The function returns a NIL value if no intersection is found and T if a intersection is found. :arguments (other-brep "GDL Brep. The brep with which to intersect.") :&key ((tolerance (the adaptive-tolerance)) "Number, Controls how precisely the intersection is computed." (angle-tolerance (radians-to-degrees angle-tolerance-radians-default)) "Number, in radians. The angle tolerance for intersection.")
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.
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)
3D Point. Indicates in global coordinates where the center of the reference box of this object should be located.
3D Point. Center of gravity of the mass of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists.
List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists.
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.
The composed edges contained within this brep, this is valid just if the brep does not contain holes
Number. The density per unit volume of the brep. Defaults to 1
List of Symbols. Lists the direct superclasses of the type of this 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.
Boolean. Determines whether the isoparametric curves of each face of the brep are used for wireframe display. The default is T.
Boolean. Determines whether the tessellation grid-lines of the brep are used for wireframe display. The default is NIL.
Plist. Returns the :documentation plist which has been specified the
specific part type of this instance.
3D Point. Returns the center of the requested edge of this object's reference box. :arguments (direction-1 "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom." direction-2 "Keyword. A standard direction keyword orthogonal to direction-1.")
Sequence of GDL Edge Objects. The Edges contained within this brep.
Sequence of GDL Edge Objects. The Edges contained within this brep aranged clockwise or anticlockwise, this is valid just if the brep does not contain holes
Boolean. If set to non-nil, we throw an error instead of a warning if the resulting brep does not pass the built-in validation test. If nil, we throw a warning but continue to return the resulting brep. Defaults to boolean-error-on-invalid-brep? which itself defaults to t.
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.
Sequence of GDL Brep objects. One brep for each face in the parent brep, containing only that face.
3D Point. Returns the center of the requested face (the
requested face with respect to the wrt argument if present, or self
if wrt is nil) of this object's reference box.
:arguments (direction "Keyword. One of the standard direction
keywords: :right, :left, :rear, :front, :top, :bottom.")
(wrt "GDL object instance. Reference object for axes")
3D Vector. Returns the vector pointing from this object's reference box center to its requested face-center. :arguments (direction "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom.")
List of four 3D points. Returns the vertices of the indicated face.
:arguments (direction "Direction keyword, e.g. :top, :bottom etc. Indicates for which face to return the vertices.")
Sequence of GDL Face Objects. The Faces contained within this brep.
Boolean. For elements of sequences, T iff there is no previous element.
GDL Instance. Using this instance as the root, follow the reference chain represented by the given path. :arguments (path "List of Symbols or Pairs of Symbol and Integer")
3D-point. This function returns the point given in global coordinates, into relative local coordinates, based on the orientation and center of the object to which the global-to-local message is sent.
:arguments (point "3D-point. The point to be converted to local coordinates")
:examples Please see the examples area.
Number. Z-axis dimension of the reference box. Defaults to zero.
List of GDL Instances. All objects from the :hidden-objects specification, including elements of sequences as flat lists.
Boolean. Indicates whether the object should effectively be a hidden-object even if specified in :objects. Default is nil.
Integer. Synonym for the layer.
Pathname or string. Points to a pre-existing image file to be displayed instead of actual geometry for this object. Defaults to nil
Boolean. Returns non-nil if the given point is in halfspace defined by the plane given a point and direction.
:arguments (point "3D point. a point in the plane" direction "3D vector. The normal of the plane")
Boolean. Returns t or nil depending on whether the point given is within the boundary of the brep (including faces).
:arguments (point "Point to check for")
Integer. Sequential index number for elements of a sequence, NIL for singular objects.
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.
Boolean. For elements of sequences, T iff there is no next element.
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.
Boolean. T if this object has no children, NIL otherwise.
List of GDL Objects. A Collection of the leaf nodes of the given object.
List of GDL Objects. A Collection of the leaf nodes of the given object.
Number. Y-axis dimension of the reference box. Defaults to zero.
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).
List of 3D points. Returns the points of intersection between given line and the reference box of this object.
:arguments (p-line "3D point. A point in the line" u-line "3D vector. The direction vector of the line")
GDL object of type Box. A box representing the local-box.
List of two 3D points. The left front bottom and right rear top corners, in global coordinates, of the rectangular volume bounding this geometric object.
3D Point. The center of this object, from the perspective of the parent. Starting from the parent's center and using the parent's orientation, this is the relative center of this object.
3D Point. The center of this object, from the perspective of the parent. Starting from the parent's center and using the parent's orientation, this is the relative center of this object.
3x3 Matrix of Double-Float Numbers. Indicates the local Rotation Matrix used to create the coordinate system of this object. This is the "local" orientation with respect to the parent. Multiplying the parent's orientation with this matrix will always result in the absolute orientation for this part.
:note An orientation of NIL indicates the 3x3 identity matrix.
3D-point. This function returns the point given in relative local coordinates, converted into global coordinates, based on the orientation and center of the object to which the local-to-global message is sent.
:arguments (point "3D-point. The local point to be converted to global coordinates")
:examples Please see the examples area.
Number. Mass represented by the brep, according to the density. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
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.
Number. Used for tessellations. Default comes from (the tessellation-parameters).
Number. Used for tessellations. Default comes from (the tessellation-parameters).
Number. Used for tessellations. Default comes from (the tessellation-parameters).
Number. Used for tessellations. Default comes from (the tessellation-parameters).
String. This is synonymous with slot-documentation
List of Keyword Symbols. Returns the messages (slots, objects, and functions) of this object, according to the filtering criteria as specified by the arguments.
:&key ((category :all) "Keyword. Either :all or the individual category of
messages to be returned. This can be one of:
:computed-slots
:settable-computed-slots
:required-input-slots
:optional-input-slots
:defaulted-input-slots
:query-slots
:functions
:objects
:quantified-objects
:hidden-objects
:quantified-hidden-objects
"
(message-type :global) "Keyword Symbol, :local or :global. Indicates whether to return messages
only from the local specific part type, or from all superclasses (mixins) as well."
(return-category? nil) "Boolean. Indicates whether or not the category of each message should be
returned before each message in the returned list."
(base-part-type nil) "Symbol naming a GDL Part Type. Indicates a "base" part from which no messages
should be returned, nor should messages be returned from superclasses (mixins) of this base part. If NIL (the default),
messages are considered from all superclasses."
(sort-order :unsorted) "Keyword Symbol. One of: :unsorted, :by-category, or
:by-name."
(filter :normal) "Function Object of two arguments or :normal. If a function object,
applies this function to each returned category and message keyword, and filters out all pairs for which
the function returns NIL. If :normal (the default), then no filtering is done.")
Number. Used for tessellations. Default comes from (the tessellation-parameters).
Number. Used for tessellations. Default comes from (the tessellation-parameters).
FLAG -- for debug testing only
Plist with :min-x :max-x :min-y :max-y :min-z :max-z. Returns the extreme points of the bounding-box of the brep in each direction. This will be updated to return points on the brep itself, not necessarily the bounding box.
Integer. Used for tessellations. Default comes from (the tessellation-parameters).
Number. Used for tessellations. Default comes from (the tessellation-parameters).
List of Symbols. Returns the names of the immediate superclasses of this object.
:&key ((local? t) "Boolean. Indicates whether to give only direct mixins or all mixins from the entire inheritance hierarchy.")
Plist. Returns the moments of the brep. The plist contains keys: :area-static-moments, :area-moments-of-inertia, :area-products-of-inertia, :area-second-moment-about-coordinate-axii, :volume-static-moments, :volume-moments-of-inertia, :volume-products-of-inertia, and :volume-second-moment-about-coordinate-axii.
:&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
Keyword symbol. The part's simple name, derived from its object specification in the parent or from the type name if this is the root instance.
GDL Instance. For elements of sequences, returns the next part in the sequence.
3x3 Orthonormal Matrix of Double-Float Numbers. This is synonymous with the orientation.
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).
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).
GDL Brep object or object containing a brep, or list of brep objects or object containing a brep. Second (or rest) of the breps to be merged into the given brep
GDL Instance. The parent of this object, or NIL if this is the root object.
Polygonal Brep Object. This brep represented as a Polygonal Brep
Boolean. Smooth results for poly-brep? Defaults to t.
Multiple values: Number, Number, Number, and Plist. Returns the area, volume, mass, and moments for the brep. The moments are labeled as: :area-static-moments, :area-moments-of-inertia, :area-products-of-inertia, :area-second-moment-about-coordinate-axii, :volume-static-moments, :volume-moments-of-inertia, :volume-products-of-inertia, and :volume-second-moment-about-coordinate-axii.
:&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
Plist with keys: :area, :volume, :mass, :moments. Returns the area, volume, mass, and moments for the brep. The moments are labeled as: :area-static-moments, :area-moments-of-inertia, :area-products-of-inertia, :area-second-moment-about-coordinate-axii, :volume-static-moments, :volume-moments-of-inertia, :volume-products-of-inertia, and :volume-second-moment-about-coordinate-axii.
:&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
GDL Instance. For elements of sequences, returns the previous part in the sequence.
Plist with keys: :area, :volume, :barycenter. Returns the approximate area, volume, and barycenter (center of mass) for the brep. These are computed with tessellation techniques, which may be less precise than the analytic techniques used in precise-properties, but should be faster to compute and exhibit more stability.
:&key ((edge-tess-tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed with respect to edge tessellation") ((face-tess-tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed with respect to face tessellation")
Sequence of GDL Region Objects. The Regions contained within this brep.
Void. Restores all settable-slots in this instance to their default values.
Multiple Values: Total root-paths affected and total slots
affected. Reverts any "remembered" bashed slots, starting from the
root, to their default values. Note that any call to set-slot! or
set-slots! or any use of web form-controls will result in
"remembered values". Note that there is a :remember? keyword
argument to set-slot! which defaults to t but if you specify it as
nil, you can bash values without having them "remembered" and such
slots would not be affected by this function.
NIL. Restores the value of the given slot to its default, thus "undoing" any forcibly set value in the slot. Any dependent slots in the tree will respond accordingly when they are next demanded. Note that the slot must be specified as a keyword symbol (i.e. prepended with a colon (":")), otherwise it will be evaluated as a variable according to normal Lisp functional evaluation rules. :arguments (slot "Keyword Symbol") :key (force? "Boolean. Specify as t if you want to force non-settable slots to recompute (e.g. reading from databases or external files). Defaults to nil.")
nil. Restores the value of the given slots to their defaults, thus "undoing" any forcibly set values in the slots. Any dependent slots in the tree will respond accordingly when they are next demanded. Note that the slots must be specified as keyword symbols (i.e. prepended with colons (":")), otherwise they will be evaluated as variables according to normal Lisp functional evaluation rules.
:arguments (slots "List of Keyword Symbols")
:&key ((force? force-restore-slot-default?) "Boolean. Indicates whether the slot values should be unbound, regardless of whether it had actually been bashed previously.")
Void. Restores all settable-slots in this instance, and recursively in all descendant instances, to their default values.
GDL Instance. The root-level node in this object's "tree" (instance hierarchy).
List of Symbols or of Pairs of Symbol and Integer. Indicates the path through
the instance hierarchy from the root to this object. Can be used in conjunction with
the follow-root-path GDL function to return the actual instance.
List of Symbols or of Pairs of Symbol and Integer. Indicates the path through
the instance hierarchy from the local root to this object. Can be used in conjunction with
the follow-root-path GDL function to return the actual instance.
Boolean. T iff this part has NIL as its parent and therefore is the root node.
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
List of GDL Instances. All objects from the :hidden-objects specification, including elements of sequences as flat lists. Any children which throw errors come back as a plist with error information
NIL. Forcibly sets the value of the given slot to the given value. The slot must be defined
as :settable for this to work properly. Any dependent slots in the tree will
respond accordingly when they are next demanded. Note that the slot must be specified as a keyword
symbol (i.e. prepended with a colon (":")), otherwise it will be evaluated as a variable according
to normal Lisp functional evaluation rules.
Note also that this must not be called (either directly or indirectly) from within the body of a Gendl computed-slot. The caching and dependency tracking mechanism in Gendl will not work properly if this is called from the body of a computed-slot, and furthermore a runtime error will be generated.
:arguments (slot "Keyword Symbol" value "Lisp Object. (e.g. Number, String, List, etc.)")
:&key ((remember? t) "Boolean. Determines whether to save in current version-tree." (warn-on-non-toplevel? t) "Boolean. Determines whether to warn if this is called from the body of a cached slot." )
NIL. Forcibly sets the value of the given slots to the given values. The slots must be defined
as :settable for this to work properly. Any dependent slots in the tree will
respond accordingly when they are next demanded. Note that the slots must be specified as a keyword
symbols (i.e. prepended with a colon (":")), otherwise they will be evaluated as variables according
to normal Lisp functional evaluation rules.
:arguments (slots-and-values "Plist. Contains alternating slots and values to which they are to be set."
warn-on-non-toplevel? "Boolean. Indicates whether a warning should be issued for calling from inside the body of a cached slot. Default is t.")
Boolean. Indicates whether we should try to sew and orient the resulting brep. This defaults to t for merge operation and nil otherwise.
Sequence of GDL Shell Objects. The Shells contained within this brep.
Plist of Symbols and Strings. Returns the part types and slot documentation which has been specified for the given slot, from most specific to least specific in the CLOS inheritance order. Note that the slot must be specified as a keyword symbol (i.e. prepended with a colon (":")), otherwise it will be evaluated as a variable according to normal Lisp functional evaluation rules. :arguments (slot "Keyword Symbol. Names the slot for which documentation is being requested.")
Body of GDL code, in list form.
:arguments (slot "Keyword Symbol. Names the slot for which documentation is being requested.")
Keyword symbol. Describes the current status of the requested slot:
:unbound: it has never been demanded.:invalidated: it was demanded at some point, but something it depends on has been modified since; it is currently unbound and will be re-evaluated on next demand.:evaluated: it has been demanded and it is currently bound to the default value based on the code.:set: (for :settable slots only, which includes all required :input-slots) it has been modified and is currently bound to the value to which it was explicitly set.:toplevel: (for root-level object only) its value was passed into the root-level object as a toplevel input at the time of object instantiation.
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.
Plist or list. Contains tessellation data for the brep based on the values of the keyword args. This is used to produce the value of (the triangle-data).
:&key ((min-number-of-segments (the min-number-of-segments)) "" (max-3d-edge (the max-3d-edge)) "" (min-parametric-ratio (the min-parametric-ratio)) "" (max-chord-height (the max-chord-height)) "" (max-angle-degrees (the max-angle-degrees)) "" (min-3d-edge (the min-3d-edge)) "" (min-edge-ratio-uv (the min-edge-ratio-uv)) "" (max-aspect-ratio (the max-aspect-ratio)) "" (in-memory? t) "")
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*)
Void. Sets giving slot to its boolean opposite. &args (slot "Keyword symbol. Name of the slot as a keyword symbol.")
List of Plists, one for each face, format still being determined. Contains triangle and connectivity data for the tessellation of this brep. Exact supported format will be documented here when ready.
Symbol. The GDL Type of this object.
Void. Uncaches all cached data in slots and objects throughout the instance tree from this node, forcing all code to run again the next time values are demanded. This is useful for updating an existing model or part of an existing model after making changes and recompiling/reloading the code of the underlying definitions. Any set (modified) slot values will, however, be preserved by the update.
3D Point. Returns the center of the requested vertex (corner) of this object's reference box. :arguments (direction-1 "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom." direction-2 "Keyword. A standard direction keyword orthogonal to direction-1." direction-3 "Keyword. A standard direction keyword orthogonal to direction-1 and direction-2.")
Sequence of GDL Vertex Objects. The Vertices contained within this brep.
List of GDL Instances. Additional objects to display in Tatu tree. Typically this would be a subset of hidden-children. Defaults to NIL.
Number. Volume enclosed by the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Volume Moments of Inertia of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Volume Products of Inertia of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Volume Second Moment about Coordinate Axii of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
3D Vector (i.e. 3D Point). Returns the Volume Static Moments of the brep. :&key ((tolerance (the adaptive-tolerance)) "Controls how precisely the properties are computed")
Number. X-axis dimension of the reference box. Defaults to zero.
Void. Writes a file containing the toplevel inputs and modified settable-slots starting from the root of the
current instance. Typically this file can be read back into the system using the read-snapshot function.
:&key ((filename "/tmp/snap.gdl") "String or pathname. The target file to be written." (root-paths-to-ignore nil) "List of root-paths or nil. Any objects with matching root-path will be ignored for the snapshot write." )