Commit f6a39309 authored by Dave Cooper's avatar Dave Cooper
Browse files

working on assembly import

parent 9089981f
......@@ -47,12 +47,11 @@ temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
(overwrite? t)
(load-core-gdl-form `(progn (load ,(merge-pathnames "../../common/build"
(load-core-gdl-form `(progn (load ,(merge-pathnames "../build"
glisp:*genworks-source-home*))
(setf (symbol-value (read-from-string
"glisp:*genworks-source-home*")) nil)
(setf (symbol-value (read-from-string
"asdf:*central-registry*")) nil)))
(setf (symbol-value (read-from-string
"asdf:*central-registry*")) nil)))
(pre-load-form (the load-core-gdl-form))
......@@ -101,7 +100,8 @@ temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
(defun gdl ()
(let ((destination-directory
(let ((implementation-identifier (glisp:implementation-identifier))
(prefix (merge-pathnames "../../staging/" glisp:*genworks-source-home*)))
;;(prefix (merge-pathnames "../../staging/" glisp:*genworks-source-home*))
(prefix (merge-pathnames #+mswindows "e:/staging/" #-mswindows "~/share/staging/")))
(merge-pathnames
(make-pathname :directory
(list :relative
......@@ -110,6 +110,7 @@ temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
(app :application-name "gdl"
:application-class :development
:destination-directory destination-directory
:modules (list :agraph :ide)
:restart-init-function '(lambda()
(setq glisp:*gdl-home* (glisp:current-directory))
(setq glisp:*genworks-source-home* (merge-pathnames "src/" glisp:*gdl-home*))
......@@ -128,8 +129,10 @@ temporary directory, returned by <tt>(glisp:temporary-folder)</tt>."
(require :ftp)
(load (merge-pathnames "demos/gdl-demos.asd" glisp:*genworks-source-home*))
(asdf:load-system :gdl-demos)
(load (merge-pathnames "../downloads/gdl-downloads.asd"))
(asdf:load-system :gdl-downloads))
(load (merge-pathnames "../downloads/gdl-downloads.asd" glisp:*genworks-source-home*))
(asdf:load-system :gdl-downloads)
(setf (symbol-value (read-from-string
"glisp:*genworks-source-home*")) nil))
:destination-directory
(merge-pathnames "../../staging/site/" glisp:*genworks-source-home*)
:overwrite? t
......
......@@ -26,9 +26,9 @@
:input-slots
((overwrite? nil)
(staging-directory (merge-pathnames "../../staging/" glisp:*genworks-source-home*))
(staging-directory #+mswindows "e:/staging/" #-mswindows "~/share/staging/")
(release-directory (merge-pathnames "../../release/" glisp:*genworks-source-home*))
(release-directory #+mswindows "e:/release/" #-mswindows "~/share/staging/")
(release-name-mapping '(("acl-8.2m-linux-x86" . "gdl1581-linux")
("acl-8.2m-win-x86" . "gdl1581-windows")))
......@@ -129,12 +129,12 @@
;;
(ensure-directories-exist (merge-pathnames "SMLib8.18/" (the target-parent)))
(ensure-directories-exist (merge-pathnames "SMLib8.40/" (the target-parent)))
(let ((smlib-name (if (find-package :smlib) (funcall (read-from-string "glisp:smlib-name"))
(error "smlib-name not known (smlib module probably not loaded)."))))
(glisp:copy-file (merge-pathnames (format nil "../../common/SMLib8.18/~a" smlib-name)
(glisp:copy-file (merge-pathnames (format nil "../../common/SMLib8.40/~a" smlib-name)
glisp:*genworks-source-home*)
(merge-pathnames (format nil "SMLib8.18/~a" smlib-name)
(merge-pathnames (format nil "SMLib8.40/~a" smlib-name)
(the target-parent))))
;;
......
......@@ -81,7 +81,7 @@
#+allegro
(let ((app-name (getf args :application-name))
(target (getf args :destination-directory))
(modules (append (list :asdf :compftype :aserve :phtml)
(modules (append (list :asdf :compftype :aserve :phtml #+mswindows :winapi)
(getf args :modules)))
(args (normalize-generate-application-args args)))
(apply #'excl:generate-application app-name target modules args))
......
......@@ -98,36 +98,36 @@ Defaults to nil.
@noindent @b{Examples}
@smallexample
@cartouche
(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))
@cartouche
(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))
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/angular-dimension,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/angular-dimension,,4.2in}
......@@ -2,8 +2,8 @@
@b{Description}
A segment of a circle.
The start point is at the 3 o'clock position, and positive
A segment of a circle.
The start point is at the 3 o'clock position, and positive
angles are measured anti-clockwise.
@noindent @b{Required-input-slots}
......@@ -109,17 +109,17 @@ the start and end point of the arc.
@noindent @b{Examples}
@smallexample
@cartouche
(in-package :gdl-user)
(define-object arc-sample (arc)
:computed-slots ((radius 30) (end-angle (half pi/2))))
(generate-sample-drawing :objects (make-object 'arc-sample))
@cartouche
(in-package :gdl-user)
(define-object arc-sample (arc)
:computed-slots ((radius 30) (end-angle (half pi/2))))
(generate-sample-drawing :objects (make-object 'arc-sample))
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/arc,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/arc,,4.2in}
......@@ -2,15 +2,15 @@
@b{Description}
Generic container object for displaying one or more scaled
transformed views of geometric or text-based entities. The contained views are generally
of type @i{base-view}. In a GWL application-mixin, you can include one
object of this type in the ui-display-list-leaves.
For the PDF output-format, you can also use the cad-output output-function to write the
drawing as a PDF document.
Since base-drawing is inherently a 2D object, only the top view (getf *standard-views* :top)
Generic container object for displaying one or more scaled
transformed views of geometric or text-based entities. The contained views are generally
of type @i{base-view}. In a GWL application-mixin, you can include one
object of this type in the ui-display-list-leaves.
For the PDF output-format, you can also use the cad-output output-function to write the
drawing as a PDF document.
Since base-drawing is inherently a 2D object, only the top view (getf *standard-views* :top)
makes sense for viewing it.
@noindent @b{Optional-input-slots}
......@@ -63,23 +63,23 @@ The default is (* 8.5 72) points, or 8.5 inches, corresponding to US standard le
@noindent @b{Examples}
@smallexample
@cartouche
(in-package :gdl-user)
(define-object base-drawing-sample (base-drawing)
:objects
((main-view :type 'base-view
:projection-vector (getf *standard-views* :trimetric)
:object-roots (list (the surf)))
(surf :type 'surf::test-b-spline-surface
:hidden? t)))
(generate-sample-drawing :objects (make-object 'base-drawing-sample))
@cartouche
(in-package :gdl-user)
(define-object base-drawing-sample (base-drawing)
:objects
((main-view :type 'base-view
:projection-vector (getf *standard-views* :trimetric)
:object-roots (list (the surf)))
(surf :type 'surf::test-b-spline-surface
:hidden? t)))
(generate-sample-drawing :objects (make-object 'base-drawing-sample))
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/base-drawing,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/base-drawing,,4.2in}
......@@ -2,8 +2,8 @@
@b{Description}
Base-Object is a superclass of most of GDL's geometric primitives. It
provides an imaginary geometric reference box with a length, width, height, center,
Base-Object is a superclass of most of GDL's geometric primitives. It
provides an imaginary geometric reference box with a length, width, height, center,
and orientation.
@noindent @b{Optional-input-slots}
......@@ -300,64 +300,64 @@ based on the orientation and center of the object to which the local-to-global m
@noindent @b{Examples}
@smallexample
@cartouche
(in-package :gdl-user)
(define-object tower (base-object)
:input-slots
((number-of-blocks 50) (twist-per-block 1)
(block-height 1) (block-width 5) (block-length 7))
:objects
((blocks :type 'box
:sequence (:size (the number-of-blocks))
:center (translate (the center)
:up (* (the-child index)
(the-child height)))
:width (the block-width)
:height (the block-height)
:length (the block-length)
:orientation (alignment
:rear (if (the-child first?)
(rotate-vector-d (the (face-normal-vector :rear))
(the twist-per-block)
(the (face-normal-vector :top)))
(rotate-vector-d (the-child previous
(face-normal-vector :rear))
(the twist-per-block)
(the (face-normal-vector :top))))
:top (the (face-normal-vector :top))))))
;;
;;Test run
;;
#|
gdl-user(46): (setq self (make-object 'tower))
#&lt;tower (at) #x750666f2&gt;
gdl-user(47): (setq test-center (the (blocks 10) center))
#(0.0 0.0 10.0)
gdl-user(48): (the (blocks 10) (global-to-local test-center))
#(0.0 0.0 0.0)
gdl-user(49): (the (blocks 10) (local-to-global (the (blocks 10)
(global-to-local test-center))))
#(0.0 0.0 10.0)
gdl-user(50):
gdl-user(50): (setq test-vertex (the (blocks 10) (vertex :top :right :rear)))
#(1.7862364748012536 3.9127176305081863 10.5)
gdl-user(51): (the (blocks 10) (global-to-local test-vertex))
#(2.500000000000001 3.500000000000001 0.5)
gdl-user(52): (the (blocks 10) (local-to-global (the (blocks 10)
(global-to-local test-vertex))))
#(1.786236474801254 3.9127176305081877 10.5)
gdl-user(53):
|#
;;
;;
;;
@cartouche
(in-package :gdl-user)
(define-object tower (base-object)
:input-slots
((number-of-blocks 50) (twist-per-block 1)
(block-height 1) (block-width 5) (block-length 7))
:objects
((blocks :type 'box
:sequence (:size (the number-of-blocks))
:center (translate (the center)
:up (* (the-child index)
(the-child height)))
:width (the block-width)
:height (the block-height)
:length (the block-length)
:orientation (alignment
:rear (if (the-child first?)
(rotate-vector-d (the (face-normal-vector :rear))
(the twist-per-block)
(the (face-normal-vector :top)))
(rotate-vector-d (the-child previous
(face-normal-vector :rear))
(the twist-per-block)
(the (face-normal-vector :top))))
:top (the (face-normal-vector :top))))))
;;
;;Test run
;;
#|
gdl-user(46): (setq self (make-object 'tower))
#&lt;tower (at) #x750666f2&gt;
gdl-user(47): (setq test-center (the (blocks 10) center))
#(0.0 0.0 10.0)
gdl-user(48): (the (blocks 10) (global-to-local test-center))
#(0.0 0.0 0.0)
gdl-user(49): (the (blocks 10) (local-to-global (the (blocks 10)
(global-to-local test-center))))
#(0.0 0.0 10.0)
gdl-user(50):
gdl-user(50): (setq test-vertex (the (blocks 10) (vertex :top :right :rear)))
#(1.7862364748012536 3.9127176305081863 10.5)
gdl-user(51): (the (blocks 10) (global-to-local test-vertex))
#(2.500000000000001 3.500000000000001 0.5)
gdl-user(52): (the (blocks 10) (local-to-global (the (blocks 10)
(global-to-local test-vertex))))
#(1.786236474801254 3.9127176305081877 10.5)
gdl-user(53):
|#
;;
;;
;;
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/base-object,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/base-object,,4.2in}
......@@ -2,15 +2,15 @@
@b{Description}
Generic container object for displaying a scaled transformed view of geometric or
text-based objects. @i{Base-view} can be used by itself or as a child of a @i{base-drawing}
In a GWL application-mixin, you can include an object of this type in the ui-display-list-leaves.
For the PDF output-format, you can also use the cad-output output-function to write the
view as a PDF document.
Since base-view is inherently a 2D object, only the top view (getf *standard-views* :top)
Generic container object for displaying a scaled transformed view of geometric or
text-based objects. @i{Base-view} can be used by itself or as a child of a @i{base-drawing}
In a GWL application-mixin, you can include an object of this type in the ui-display-list-leaves.
For the PDF output-format, you can also use the cad-output output-function to write the
view as a PDF document.
Since base-view is inherently a 2D object, only the top view (getf *standard-views* :top)
makes sense for viewing it.
@noindent @b{Optional-input-slots}
......@@ -165,48 +165,48 @@ parameter. Defaults to (getf *standard-views* :top), which is the vector [0, 0,
@noindent @b{Examples}
@smallexample
@cartouche
(in-package :gdl-user)
(define-object box-with-two-viewed-drawing (base-object)
:objects
((drawing :type 'two-viewed-drawing
:objects (list (the box) (the length-dim)))
(length-dim :type 'horizontal-dimension
:hidden? t
:start-point (the box (vertex :rear :top :left))
:end-point (the box (vertex :rear :top :right)))
(box :type 'box
:hidden? t
:length 5 :width 10 :height 15)))
(define-object two-viewed-drawing (base-drawing)
:input-slots (objects)
:objects
((main-view :type 'base-view
:projection-vector (getf *standard-views* :trimetric)
:length (half (the length))
:center (translate (the center)
:rear (half (the-child length)))
:objects (the objects))
(top-view :type 'base-view
:projection-vector (getf *standard-views* :top)
:length (* 0.30 (the length))
:objects (the objects))))
(generate-sample-drawing :objects
(the-object (make-object 'box-with-two-viewed-drawing) drawing top-view))
@cartouche
(in-package :gdl-user)
(define-object box-with-two-viewed-drawing (base-object)
:objects
((drawing :type 'two-viewed-drawing
:objects (list (the box) (the length-dim)))
(length-dim :type 'horizontal-dimension
:hidden? t
:start-point (the box (vertex :rear :top :left))
:end-point (the box (vertex :rear :top :right)))
(box :type 'box
:hidden? t
:length 5 :width 10 :height 15)))
(define-object two-viewed-drawing (base-drawing)
:input-slots (objects)
:objects
((main-view :type 'base-view
:projection-vector (getf *standard-views* :trimetric)
:length (half (the length))
:center (translate (the center)
:rear (half (the-child length)))
:objects (the objects))
(top-view :type 'base-view
:projection-vector (getf *standard-views* :top)
:length (* 0.30 (the length))
:objects (the objects))))
(generate-sample-drawing :objects
(the-object (make-object 'box-with-two-viewed-drawing) drawing top-view))
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/base-view,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/base-view,,4.2in}
......@@ -2,12 +2,12 @@
@b{Description}
GDL currently supports third-degree Bezier curves, which are
defined using four 3D @i{control-points} . The Bezier curve always passes
through the first and last control points and lies within the convex hull of the control
points. At the start point (i.e. the first control point), the curve is tangent
to the vector pointing from the start point to the second control point.
At the end point (i.e. the last control point), the curve is tangent to the
GDL currently supports third-degree Bezier curves, which are
defined using four 3D @i{control-points} . The Bezier curve always passes
through the first and last control points and lies within the convex hull of the control
points. At the start point (i.e. the first control point), the curve is tangent
to the vector pointing from the start point to the second control point.
At the end point (i.e. the last control point), the curve is tangent to the
vector pointing from the end point to the third control point.
@noindent @b{Required-input-slots}
......@@ -83,23 +83,23 @@ segment.
@noindent @b{Examples}
@smallexample
@cartouche
(in-package :gdl-user)
(define-object bezier-sample (bezier-curve)
:computed-slots
((control-points (list (make-point 0 0 0)
(make-point 1 1 0)
(make-point 2 1 0)
(make-point 3 0 0))))
:objects
((points-display :type 'points-display
:points (the control-points))))
(generate-sample-drawing :objects (let ((self (make-object 'bezier-sample)))
(list self (the points-display))))
@cartouche
(in-package :gdl-user)
(define-object bezier-sample (bezier-curve)
:computed-slots
((control-points (list (make-point 0 0 0)
(make-point 1 1 0)
(make-point 2 1 0)
(make-point 3 0 0))))
:objects
((points-display :type 'points-display
:points (the control-points))))
(generate-sample-drawing :objects (let ((self (make-object 'bezier-sample)))
(list self (the points-display))))
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/bezier-curve,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/bezier-curve,,4.2in}
......@@ -2,7 +2,7 @@
@b{Description}
This represents a ``visible'' base-object -- a six-sided box with all the same
This represents a ``visible'' base-object -- a six-sided box with all the same
messages as base-object, which knows how to output itself in various formats.
@noindent @b{Computed-slots}
......@@ -20,20 +20,20 @@ messages as base-object, which knows how to output itself in various formats.
@noindent @b{Examples}
@smallexample
@cartouche
(in-package :gdl-user)
(define-object box-sample (box)
:computed-slots ((display-controls (list :color :blue-neon))
(length 10)
(width (* (the length) +phi+))
(height (* (the width) +phi+))))
(generate-sample-drawing :objects (make-object 'box-sample)
:projection-direction (getf *standard-views* :trimetric))
@cartouche
(in-package :gdl-user)
(define-object box-sample (box)
:computed-slots ((display-controls (list :color :blue-neon))
(length 10)
(width (* (the length) +phi+))
(height (* (the width) +phi+))))
(generate-sample-drawing :objects (make-object 'box-sample)
:projection-direction (getf *standard-views* :trimetric))
@end cartouche
@end smallexample
@center @image{/home/dcooper8/gdl-build/teodor-gelu/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/box,,4.2in}
@center @image{/home/dcooper8/gdl-build/dcooper8/genworks-gdl/documentation/unified-doc/yadd/geom-base/image/box,,4.2in}
......@@ -59,24 +59,24 @@ Provides a simple way to create a cylinder, by specifying a start point and an e
@noindent @b{Examples}
@