Package Documentation

Object: dropped-curve (The :surf Package)
Mixins: curve

Description

Creates a 3D curve which is the curve-in dropped normally to the surface.. The resulting 3D curve contains a uv-curve which is typically useful for trimming. NOTE: Change from 1577p027 and forward -- the dropped curve now is a 3D curve which can be drawn. It contains its uv representation on the surface. Previously, the uv-curve was the actual dropped-curve.


Input Slots (required)

curve-in gdl nurbs curve

The curve to be dropped to the surface.


surface gdl nurbs surface

The surface on which the curve-in is to be dropped.



Input Slots (optional)

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.


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


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


local-box [from base-object] 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.


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


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.


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)

tolerance [from curve] number

Approximation tolerance for display purposes. Defaults to the tolerance of the built-from curve, if one exists, otherwise defaults to the *display-tolerance*.



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.


height [from base-object] number

Z-axis dimension of the reference box. Defaults to zero.


length [from base-object] number

Y-axis dimension of the reference box. Defaults to zero.


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


width [from base-object] number

X-axis dimension of the reference box. Defaults to zero.



Computed Slots

built-from [from curve] gdl curve

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



Hidden Objects

uv-curve [from curve] gdl curve object

The corresponding UV curve for the primary surface on which this curve lies, if any. If this is not a surface-curve, this will return an error.


Examples

                  
 (in-package :surf)

 (define-object test-trimmed-from-dropped-2 (trimmed-surface)

   :computed-slots
   ((uv-inputs t)
    (holes (list (the hole uv-curve)))
    (island (the island-3d uv-curve))
    (reverse-island? t) (reverse-holes? t)
    (display-controls (list :color :blue :line-thickness 2)))
  
   :hidden-objects
   ((basis-surface :type 'test-fitted-surface
                   :display-controls (list :color :grey-light-very)
                   :grid-length 10 :grid-width 10 :grid-height 5)
   
    (island-3d :type 'dropped-curve
               :curve-in (the raised-island)
               :surface (the basis-surface))
   
    (hole :type 'dropped-curve
          :curve-in (the raised-hole)
          :surface (the basis-surface))
   
    (raised-hole :type 'b-spline-curve
                 :display-controls (list :color :grey-light-very)
                 :control-points (list (make-point 3.5 4.5 7) 
                                       (make-point 4.5 6 7) 
                                       (make-point 5.5 7 7) 
                                       (make-point 6 4.5 7) 
                                       (make-point 5.5 2 7) 
                                       (make-point 4.5 2 7) 
                                       (make-point 3.5 4.5 7)))
    
    (raised-island :type 'b-spline-curve
                   :display-controls (list :color :grey-light-very)
                   :control-points (list (make-point 3 5 7) 
                                         (make-point 5 8 7) 
                                         (make-point 7 10 7) 
                                         (make-point 8 5 7) 
                                         (make-point 7 0 7) 
                                         (make-point 5 0 7) 
                                         (make-point 3 5 7)))))

  (generate-sample-drawing 
   :objects (let ((self (make-object 'test-trimmed-from-dropped-2)))
              (list (the basis-surface) self (the raised-hole) 
                    (the raised-island)))
   :projection-direction :trimetric)

 

Package Documentation