Gendl Documentationstatic

angular-dimension

objectgeom-base
mixins: linear-dimensionvanilla-mixin

This dimensional object produces a clear and concise arc dimensional annotation.

Sample geometryfrom :examples (angular-dimension-test)

(the :sample :arc)(the :sample :dimension)(the :sample :explicit-dimension)(the :sample :dimension :witness-line-1)(the :sample :dimension :witness-line-2)(the :sample :explicit-dimension :witness-line-1)(the :sample :explicit-dimension :witness-line-2)90.050.0

Examples

 (in-package :gdl-user)

 (define-object angular-dimension-test (base-object) 
   
   :objects 
   ((arc :type 'arc
         :display-controls (list :color :green )
         :radius 30
         :end-angle (degrees-to-radians 90))
    
    
    (dimension :type 'angular-dimension
               :display-controls (list :color :blue )
               :leader-radius (+ (* 0.1 (the arc radius))(the arc radius))
               :arc-object (the arc))
    
    (explicit-dimension :type 'angular-dimension
                        :center-point (the arc center)
                        :start-point (the arc (point-on-arc (degrees-to-radians 10)))
                        :end-point (the arc (point-on-arc (degrees-to-radians 60))))))
 (generate-sample-drawing 
  :objects (list 
            (the-object (make-object 'angular-dimension-test) arc) 
            (the-object (make-object 'angular-dimension-test) dimension)
            (the-object (make-object 'angular-dimension-test) explicit-dimension))
  :projection-direction (getf *standard-views* :top))
 
  

Messages (119 documented, 201 total)

aggregatecomputed-slotfrom vanilla-mixin*

GDL Instance. In an element of a sequence, this is the container object which holds all elements.

all-mixinscomputed-slotfrom vanilla-mixin*

List of Symbols. Lists all the superclasses of the type of this object.

arc-objectrequired-input-slot

GDL object. The arc being measured.

arrowhead-lengthoptional-input-slotfrom linear-dimension

Length (from tip to tail) of arrowhead glyph. Defaults to twice the arrowhead-width

arrowhead-styleoptional-input-slotfrom linear-dimension

Keyword Symbol. Style for arrowhead on end of leader-line. Currently supported values are :none, :wedge (the Default), and :double-wedge.

arrowhead-style-2optional-input-slotfrom linear-dimension

Keyword Symbol. Style for arrowhead on end of leader-line. Currently supported values are :none (the Default), :wedge, and :double-wedge.

arrowhead-widthoptional-input-slotfrom linear-dimension

Width of arrowhead glyph. Defaults to half the character-size.

axis-vectorfunctionfrom base-object

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

base-plane-normalrequired-input-slotfrom linear-dimension

Must be specified in the subclass except for angular

bounding-bboxhidden-objectfrom base-object

GDL object of type Box. A box representing the bounding-box.

bounding-boxoptional-input-slotfrom base-object

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.

centerdefaulted-input-slotfrom base-object

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

center-pointoptional-input-slot

3D Point. The center of the arc being measured.

character-sizeoptional-input-slotfrom linear-dimension

Number. Size (glyph height) of the label text, in model units. Defaults to 1.

childrencomputed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists.

children-uncacheduncached-computed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists.

color-decimalcomputed-slotfrom base-object

Vector of three real numbers. The RBG color of this object specified in :display-controls. Defaults to the foreground color specified in *colors-default*. This message should not normally be overridden in user application code.

dim-textoptional-input-slotfrom linear-dimension

String. Determines the text which shows up as the dimension label. Defaults to the dim-value, which is computed specially in each specific dimension type.

dim-text-biasoptional-input-slotfrom linear-dimension

Keyword symbol, :start, :end, or :center. Indicates where to position the text in the case when outside-leaders? is non-nil. Defaults to :center

dim-text-startoptional-input-slot

3D Point. Determines where the text will start. Defaults to halfway along the arc, just beyond the radius.

dim-text-start-offsetoptional-input-slotfrom linear-dimension

3D Vector (normally only 2D are used). The dim-text-start is offset by this vector, in model space. Defaults to #(0.0 0.0 0.0)

dim-valuecomputed-slot

Number. 2D distance relative to the base-plane-normal. Can be over-ridden in the subclass

direct-mixinscomputed-slotfrom vanilla-mixin*

List of Symbols. Lists the direct superclasses of the type of this object.

display-controlsdefaulted-input-slotfrom 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.

documentationfunctionfrom vanilla-mixin*

Plist. Returns the :documentation plist which has been specified the specific part type of this instance.

dxf-fontoptional-input-slotfrom linear-dimension

String. This names the DXF font for this general-note. Defaults to (the font).

dxf-offsetoptional-input-slotfrom linear-dimension

Number. The start of text will be offset by this amount for DXF output. Default is 2.

dxf-size-ratiooptional-input-slotfrom linear-dimension

Number. The scale factor for DXF character size vs PDF character size. Default is 0.8

dxf-text-x-scaleoptional-input-slotfrom linear-dimension

Number in Percentage. Adjusts the character width for DXF output. Defaults to the text-x-scale.

edge-centerfunctionfrom base-object

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

end-pointoptional-input-slot

3D Point. The end point of the arc being measured.

face-centerfunctionfrom base-object

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

face-normal-vectorfunctionfrom base-object

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

face-verticesfunctionfrom base-object

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

first?computed-slotfrom vanilla-mixin*

Boolean. For elements of sequences, T iff there is no previous element.

flip-leaders?optional-input-slotfrom linear-dimension

Boolean. Indicates which direction the witness lines should take from the start and end points. The Default is NIL, which indicates :rear (i.e. "up") for horizontal-dimensions and :right for vertical-dimensions

follow-root-pathfunctionfrom vanilla-mixin*

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

fontoptional-input-slotfrom linear-dimension

String naming a standard PDF font. Font for the label text. Defaults to "Helvetica"

full-leader-line-lengthoptional-input-slotfrom linear-dimension

Number. Indicates the length of the full leader when outside-leaders? is nil. This defaults to nil, which indicates that the full-leader's length should be auto-computed based on the given start-point and end-point.

global-to-localfunctionfrom base-object

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.

heightdefaulted-input-slotfrom base-object

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

hidden-childrencomputed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :hidden-objects specification, including elements of sequences as flat lists.

hidden?optional-input-slotfrom vanilla-mixin*

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

image-fileoptional-input-slotfrom 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

in-face?functionfrom base-object

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

indexcomputed-slotfrom vanilla-mixin*

Integer. Sequential index number for elements of a sequence, NIL for singular objects.

justificationoptional-input-slotfrom linear-dimension

Keyword symbol, :left, :right, or :center. For multi-line dim-text, this justification is applied.

last?computed-slotfrom vanilla-mixin*

Boolean. For elements of sequences, T iff there is no next element.

leader-1?optional-input-slotfrom linear-dimension

Boolean. Indicates whether the first (or only) leader line should be displayed. The Default is T

leader-2?optional-input-slotfrom linear-dimension

Boolean. Indicates whether the second leader line should be displayed. The Default is T

leader-direction-1-vectorrequired-input-slotfrom linear-dimension

Must be specified in the subclass except for angular

leader-direction-2-vectorrequired-input-slotfrom linear-dimension

Must be specified in the subclass except for angular

leader-line-lengthoptional-input-slotfrom linear-dimension

Number. Indicates the length of the first leader for the case when outside-leaders? is non-NIL

leader-line-length-2optional-input-slotfrom linear-dimension

Number. Indicates the length of the second leader for the case when outside-leaders? is non-NIL

leader-radiusoptional-input-slot

Number. The radius for the leader-arc.

leader-text-gapoptional-input-slotfrom linear-dimension

Number. Amount of gap between leader lines and dimension text, when the dimension text is within the leader. Defaults to half the character-size.

leaf?computed-slotfrom vanilla-mixin*

Boolean. T if this object has no children, NIL otherwise.

leavescomputed-slotfrom vanilla-mixin*

List of GDL Objects. A Collection of the leaf nodes of the given object.

leaves-uncacheduncached-computed-slotfrom vanilla-mixin*

List of GDL Objects. A Collection of the leaf nodes of the given object.

lengthdefaulted-input-slotfrom base-object

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

line-intersection-pointsfunctionfrom base-object

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

local-bboxhidden-objectfrom base-object

GDL object of type Box. A box representing the local-box.

local-boxcomputed-slotfrom outline-specialization-mixin

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.

local-centercomputed-slotfrom base-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.

local-center*computed-slotfrom base-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.

local-orientationcomputed-slotfrom base-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.

local-to-globalfunctionfrom base-object

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.

message-documentationfunctionfrom vanilla-mixin*

String. This is synonymous with slot-documentation

message-listfunctionfrom vanilla-mixin*

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

mixinsfunctionfrom vanilla-mixin*

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

name-for-displaycomputed-slotfrom vanilla-mixin*

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.

nextcomputed-slotfrom vanilla-mixin*

GDL Instance. For elements of sequences, returns the next part in the sequence.

obliquenessoptional-input-slotfrom base-object

3x3 Orthonormal Matrix of Double-Float Numbers. This is synonymous with the orientation.

onclick-functionoptional-input-slotfrom 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).

orientationoptional-input-slotfrom linear-dimension

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

outline-shape-typeoptional-input-slotfrom linear-dimension

Keyword symbol. Currently can be :bubble, :rectangle, or :none. Default is :none.

outside-leaders-length-factoroptional-input-slotfrom linear-dimension

Number. Indicates the default length of the outside-leaders as a multiple of arrowhead-length. Defaults to 3.

outside-leaders?optional-input-slotfrom linear-dimension

Boolean. Indicates whether the leader line(s) should be inside or outside the interval between the start and end points. The default is NIL, which indicates that the leader line(s) should be inside the interval

parentcomputed-slotfrom vanilla-mixin*

GDL Instance. The parent of this object, or NIL if this is the root object.

previouscomputed-slotfrom vanilla-mixin*

GDL Instance. For elements of sequences, returns the previous part in the sequence.

restore-all-defaults!functionfrom vanilla-mixin*

Void. Restores all settable-slots in this instance to their default values.

restore-root!functionfrom vanilla-mixin*

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.

restore-slot-default!functionfrom vanilla-mixin*

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

restore-slot-defaults!functionfrom vanilla-mixin*

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

restore-tree!functionfrom vanilla-mixin*

Void. Restores all settable-slots in this instance, and recursively in all descendant instances, to their default values.

rootoptional-input-slotfrom vanilla-mixin*

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

root-pathcomputed-slotfrom vanilla-mixin*

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.

root-path-localcomputed-slotfrom vanilla-mixin*

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.

root?computed-slotfrom vanilla-mixin*

Boolean. T iff this part has NIL as its parent and therefore is the root node.

safe-childrenoptional-input-slotfrom 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

safe-hidden-childrencomputed-slotfrom vanilla-mixin*

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

set-slot!functionfrom vanilla-mixin*

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

set-slots!functionfrom vanilla-mixin*

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

slot-documentationfunctionfrom vanilla-mixin*

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

slot-sourcefunctionfrom vanilla-mixin*

Body of GDL code, in list form.

:arguments (slot "Keyword Symbol. Names the slot for which documentation is being requested.")

slot-statusfunctionfrom vanilla-mixin*

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.

start-pointoptional-input-slot

3D Point. The start point of the arc being measured.

strings-for-displayoptional-input-slotfrom 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.

text-above-leader?optional-input-slotfrom linear-dimension

Boolean. Indicates whether the text is to the right or above the leader line, rather than in-line with it. Default is T.

text-along-axis?optional-input-slotfrom linear-dimension

Boolean. Where applicable, determines whether text direction follows leader-line direction

text-along-leader-padding-factoroptional-input-slot

Number. Amount of padding above leader for text-along-leader? t. This is multiplied by the character-size to get the actual padding amount. Defaults to 1/3.

text-x-scaleoptional-input-slotfrom linear-dimension

Number in Percentage. Adjusts the character width for the dimension-text and currently only applies only to PDF output

toggle-slot!functionfrom vanilla-mixin*

Void. Sets giving slot to its boolean opposite. &args (slot "Keyword symbol. Name of the slot as a keyword symbol.")

typecomputed-slotfrom vanilla-mixin*

Symbol. The GDL Type of this object.

underline?optional-input-slotfrom linear-dimension

GDL

update!functionfrom vanilla-mixin*

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.

vertexfunctionfrom base-object

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

view-reference-objectoptional-input-slotfrom linear-dimension

GDL object or NIL. View object which will use this dimension. Defaults to NIL.

visible-childrenoptional-input-slotfrom 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.

widthdefaulted-input-slotfrom base-object

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

witness-1-to-center?optional-input-slot

Boolean. Determines whether a witness line extends all the way from the start-point to the center. Defaults to nil.

witness-2-to-center?optional-input-slot

Boolean. Determines whether a witness line extends all the way from the end-point to the center. Defaults to nil.

witness-direction-vectorrequired-input-slotfrom linear-dimension

Must be specified in the subclass except for angular

witness-line-2?optional-input-slotfrom linear-dimension

Boolean. Indicates whether to display a witness line coming off the end-point. Default is T

witness-line-extoptional-input-slotfrom linear-dimension

Number. Distance the witness line(s) extend beyond the leader line. Default is 0.3

witness-line-gapoptional-input-slotfrom linear-dimension

Number. Distance from the start-point and end-point to the start of each witness-line. Default is 0.1

witness-line-lengthoptional-input-slotfrom linear-dimension

Number. Length of the witness lines (or of the shorter witness line in case they are different lengths)

witness-line?optional-input-slotfrom linear-dimension

Boolean. Indicates whether to display a witness line coming off the start-point. Default is T

write-snapshotfunctionfrom vanilla-mixin*

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