Package Documentation

Object: HORIZONTAL-DIMENSION (The :GEOM-BASE Package)
Mixins: LINEAR-DIMENSION, VANILLA-MIXIN

Description

Creates a dimension annotation along the horizontal axis.


Input Slots (required)

END-POINT [from LINEAR-DIMENSION] 3d point

Actual point where the dimension will stop measuring


START-POINT [from LINEAR-DIMENSION] 3d point

Actual point where the dimension will start measuring



Input Slots (optional)

ARROWHEAD-LENGTH [from LINEAR-DIMENSION] length (from tip to tail) of arrowhead glyph

Defaults to twice the arrowhead-width


ARROWHEAD-STYLE [from 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-2 [from LINEAR-DIMENSION] keyword symbol

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


ARROWHEAD-WIDTH [from LINEAR-DIMENSION] width of arrowhead glyph

Defaults to half the character-size.


BASE-PLANE-NORMAL [from LINEAR-DIMENSION]

Must be specified in the subclass except for angular


BOUNDING-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 the tree of geometric objects rooted at this object.


CHARACTER-SIZE [from LINEAR-DIMENSION] number

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


DIM-TEXT [from 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-BIAS [from 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-START 3d point

Determines where the text will start. Defaults to reasonable location for horizontal-dimension.


DIM-TEXT-START-OFFSET [from 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-VALUE [from LINEAR-DIMENSION] number

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


DXF-FONT [from LINEAR-DIMENSION] string

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


DXF-OFFSET [from LINEAR-DIMENSION] number

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


DXF-SIZE-RATIO [from LINEAR-DIMENSION] number

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


DXF-TEXT-X-SCALE [from LINEAR-DIMENSION] number in percentage

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


FLIP-LEADERS? [from 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


FONT [from LINEAR-DIMENSION] string naming a standard pdf font

Font for the label text. Defaults to "Helvetica"


FULL-LEADER-LINE-LENGTH [from 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.


HIDDEN? [from VANILLA-MIXIN*] boolean

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


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


JUSTIFICATION [from LINEAR-DIMENSION] keyword symbol, :left, :right, or :center

. For multi-line dim-text, this justification is applied.


LEADER-1? [from LINEAR-DIMENSION] boolean

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


LEADER-2? [from LINEAR-DIMENSION] boolean

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


LEADER-LINE-LENGTH [from LINEAR-DIMENSION] number

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


LEADER-LINE-LENGTH-2 [from LINEAR-DIMENSION] number

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


LEADER-TEXT-GAP [from 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.


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 support this functionality, e.g. SVG/Raphael and X3DOM.


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


OUTLINE-SHAPE-TYPE [from LINEAR-DIMENSION] keyword symbol

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


OUTSIDE-LEADERS-LENGTH-FACTOR [from LINEAR-DIMENSION] number

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


OUTSIDE-LEADERS? [from 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


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.


TEXT-ABOVE-LEADER? [from 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? [from LINEAR-DIMENSION] boolean

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


TEXT-X-SCALE [from LINEAR-DIMENSION] number in percentage

Adjusts the character width for the dimension-text and currently only applies only to PDF output


UNDERLINE? [from LINEAR-DIMENSION]

GDL


VIEW-REFERENCE-OBJECT [from LINEAR-DIMENSION] gdl object or nil

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


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.


WITNESS-LINE-2? [from LINEAR-DIMENSION] boolean

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


WITNESS-LINE-EXT [from LINEAR-DIMENSION] number

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


WITNESS-LINE-GAP [from LINEAR-DIMENSION] number

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


WITNESS-LINE-LENGTH [from LINEAR-DIMENSION] number

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


WITNESS-LINE? [from LINEAR-DIMENSION] boolean

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



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.


WIDTH [from BASE-OBJECT] number

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



Computed Slots

LEADER-DIRECTION-1-VECTOR [from LINEAR-DIMENSION]

Must be specified in the subclass except for angular


LEADER-DIRECTION-2-VECTOR [from LINEAR-DIMENSION]

Must be specified in the subclass except for angular


WITNESS-DIRECTION-VECTOR [from LINEAR-DIMENSION]

Must be specified in the subclass except for angular


Examples

          
 (in-package :gdl-user)

 (define-object  box-view (base-object)
   
   :objects
   ((box :type 'box
         :length 10 :width (* (the-child length) +phi+)
         :height (* (the-child :width) +phi+))
   
    (width-dimension :type 'horizontal-dimension
                     :character-size (/ (the box length) 20)
                     :arrowhead-width (/ (the-child character-size) 3)
                     :start-point (the box (vertex :top :left :rear))
                     :end-point (the box (vertex :top :right :rear)))))

 (generate-sample-drawing :object-roots (make-object 'box-view)) 

Package Documentation