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

updated Manual, fixed CCL bug in cl-lite

parent 89a5b602
(asdf:defsystem #:gdl-tutorial
:description
"Auto-generated asdf defsys from Genworks GDL cl-lite."
:author
"Genworks and Dave Cooper unless otherwise indicated"
:license
"AGPL unless otherwise indicated"
:serial
t
:version
"2012121300"
:depends-on
(:gdl-dom)
:components
((:file "source/package") (:file "source/parameters")
(:file "source/introduction") (:file "source/installation")
(:file "source/basic-operation") (:file "source/upgrade-notes")
(:gdl "source/understanding-common-lisp")
(:gdl "source/understanding-gendl")
(:gdl "source/advanced-common-lisp")
(:gdl "source/advanced-gendl") (:file "source/assembly")
(:file "source/gendl-geometry")
(:file "source/tasty-environment")))
\ No newline at end of file
:description
"Auto-generated asdf defsys from Genworks GDL cl-lite."
:author
"Genworks and Dave Cooper unless otherwise indicated"
:license
"AGPL unless otherwise indicated"
:serial
t
:version
"2012122900"
:depends-on
(:gdl-dom)
:components
((:file "source/package") (:file "source/parameters")
(:file "source/introduction")
(:file "source/installation")
(:file "source/basic-operation")
(:file "source/upgrade-notes")
(:gdl "source/understanding-common-lisp")
(:gdl "source/understanding-gendl")
(:gdl "source/advanced-common-lisp")
(:gdl "source/advanced-gendl")
(:file "source/tasty-environment")
(:file "source/gendl-geometry")
(:file "source/assembly")))
\ No newline at end of file
......@@ -164,18 +164,16 @@
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{chap:thetastydevelopmentenvironment}{{6}{35}{The Tasty Development Environment\relax }{chapter.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6.1}The Tasty Interface}{35}{section.6.1}}
\newlabel{sec:thetastyinterface}{{6.1}{35}{The Tasty Interface\relax }{section.6.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces Web Browser address for Tasty development environment}}{35}{figure.6.1}}
\newlabel{fig:tasty-toplevel-url}{{6.1}{35}{Web Browser address for Tasty development environment\relax }{figure.6.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces Tasty start-up}}{36}{figure.6.2}}
\newlabel{fig:tasty-startup}{{6.2}{36}{Tasty start-up\relax }{figure.6.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}The Toolbars}{36}{subsection.6.1.1}}
\newlabel{subsec:thetoolbars}{{6.1.1}{36}{The Toolbars\relax }{subsection.6.1.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.0.1}The Toolbars}{36}{subsection.6.0.1}}
\newlabel{subsec:thetoolbars}{{6.0.1}{36}{The Toolbars\relax }{subsection.6.0.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Tasty Interface}}{37}{figure.6.3}}
\newlabel{fig:tastyshockabsorberpre}{{6.3}{37}{Tasty Interface\relax }{figure.6.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}View Frames}{39}{subsection.6.1.2}}
\newlabel{subsec:viewframes}{{6.1.2}{39}{View Frames\relax }{subsection.6.1.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.0.2}View Frames}{39}{subsection.6.0.2}}
\newlabel{subsec:viewframes}{{6.0.2}{39}{View Frames\relax }{subsection.6.0.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {6.4}{\ignorespaces Shock Absorber Assembly V0.1}}{41}{figure.6.4}}
\newlabel{fig:shockabsorberassemblyv01}{{6.4}{41}{Shock Absorber Assembly V0.1\relax }{figure.6.4}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Working with Geometry in Gendl}{43}{chapter.7}}
......
This is makeindex, version 2.15 [TeX Live 2011] (kpathsea + Thai support).
This is makeindex, version 2.15 [TeX Live 2012] (kpathsea + Thai support).
Scanning input file tutorial.idx....done (37 entries accepted, 0 rejected).
Sorting entries....done (208 comparisons).
Generating output file tutorial.ind....done (81 lines written, 0 warnings).
......
This diff is collapsed.
......@@ -49,9 +49,8 @@
\BOOKMARK [1][-]{section.5.5}{Sequences of Objects and Input-slots with a Default Expression}{chapter.5}% 49
\BOOKMARK [1][-]{section.5.6}{Summary}{chapter.5}% 50
\BOOKMARK [0][-]{chapter.6}{The Tasty Development Environment}{}% 51
\BOOKMARK [1][-]{section.6.1}{The Tasty Interface}{chapter.6}% 52
\BOOKMARK [2][-]{subsection.6.1.1}{The Toolbars}{section.6.1}% 53
\BOOKMARK [2][-]{subsection.6.1.2}{View Frames}{section.6.1}% 54
\BOOKMARK [0][-]{chapter.7}{Working with Geometry in Gendl}{}% 55
\BOOKMARK [0][-]{chapter.8}{More Common Lisp for Gendl}{}% 56
\BOOKMARK [0][-]{chapter.9}{Advanced Gendl}{}% 57
\BOOKMARK [1][-]{subsection.6.0.1}{The Toolbars}{chapter.6}% 52
\BOOKMARK [2][-]{subsection.6.0.2}{View Frames}{subsection.6.0.1}% 53
\BOOKMARK [0][-]{chapter.7}{Working with Geometry in Gendl}{}% 54
\BOOKMARK [0][-]{chapter.8}{More Common Lisp for Gendl}{}% 55
\BOOKMARK [0][-]{chapter.9}{Advanced Gendl}{}% 56
......@@ -1837,15 +1837,9 @@ they are required along the way.
\section{The Tasty Interface}
\label{sec:thetastyinterface}
\emph{Tasty}\footnote{``Tasty'' is a tortured acronym of acronyms - it stands for
TAtu with STYle (sheets), where tatu comes from Testing And Tracking
Utility.} is a web based testing and tracking utility. Note that Tasty is
\emph{Tasty}\footnote{``Tasty'' is an acronym of acronyms - it stands
for TAtu with STYle (sheets), where tatu comes from Testing And
Tracking Utility.} is a web based testing and tracking utility. Note that Tasty is
designed for developers of GenDL applications --- it is not intended
as an end-user application interface (see the
\ref{chap:userinterfacesingendl} section for the recommended steps to create end-user interfaces).
......@@ -1964,17 +1958,15 @@ GenDL reference documentation.
The second toolbar is designed to select various ``click modes'' for
objects and graphical viewing, and to customize the interface in other
ways. It hosts five menus: edit, tree, view, windows and
help@footnote{A File menu will be added in a future release, to
facilitate saving and restoring of instance ``snapshots'' -- at
help\footnote{A File menu will be added in a future release, to
facilitate saving and restoring of instance ``snapshots'' --- at
present, this can be done programmatically.}.
The
\textbf{tree menu} allows the user to customize the ``click mode'' of
the mouse (or ``tap mode'' for other pointing device) for objects in
any of the tree, inspector, or viewport frames. The behavior follows
the \emph{select-and-match} paradigm -- you first \emph{select} a mode of operation with one of the buttons or menu items,
The \emph{tree menu} allows the user to customize the ``click mode'' of the
mouse (or ``tap mode'' for other pointing device) for objects in the
tree, inspector, or viewport frames. The behavior follows the \emph{select-and-match} paradigm -- you first \emph{select} a mode of operation with one of the buttons or menu items,
then \emph{match} that mode to any object in the tree frame or inspector frame by
left-clicking (or tapping). These modes are as follows:
......@@ -2016,7 +2008,7 @@ Delete Leaves
Inspect (make the inspector frame to show the selected object).
\item [Set self to Object (B)]
Break on selected object.
Sets a global \texttt{self} variable to the selected object, so you can interact by sending messages to the object at the command prompt e.g. by typing \texttt{(the length)} or \texttt{(the children)}.
\item [Set Root to Object (SR)]
Set displayed root in Tasty tree to selected object.
......@@ -2085,7 +2077,9 @@ Sets the displayed format in the graphics viewport to
\item [X3DOM]
This experimental mode sets the displayed format in the graphics viewport to use the x3dom.js Javascript library,
which attempts to render X3D format directly in-browser without the need for plugins. This works best in WebGL-enabled
browsers such as a recent version of Google Chrome.
browsers such as a recent version of Google Chrome\footnote{Currently, it is necessary to ``Reload'' or
``Refresh'' the browser window to display the geometry in
this mode.}.
\item [SVG/VML]
Sets the displayed format in the graphics viewport to SVG/VML\footnote{For complex objects with many display curves,
......@@ -2130,22 +2124,22 @@ Allows the user to select an object from the graphics
Sets the displayed perspective in the graphics viewport to trimetric.
\item [Front]
Sets the displayed perspective in the graphics viewport to Front (-Y axis).
Sets the displayed perspective in the graphics viewport to Front (negative Y axis).
\item [Rear]
Sets the displayed perspective in the graphics viewport to Rear (+Y axis).
Sets the displayed perspective in the graphics viewport to Rear (positive Y axis).
\item [Left]
Sets the displayed perspective in the graphics viewport to Left (-X axis).
Sets the displayed perspective in the graphics viewport to Left (negative X axis).
\item [Right]
Sets the displayed perspective in the graphics viewport to Right (+X axis).
Sets the displayed perspective in the graphics viewport to Right (positive X axis).
\item [Top]
Sets the displayed perspective in the graphics viewport to Top (+Z axis).
Sets the displayed perspective in the graphics viewport to Top (positive Z axis).
\item [Bottom]
Sets the displayed perspective in the graphics viewport to Bottom (-Z axis).
Sets the displayed perspective in the graphics viewport to Bottom (negative Z axis).
\end{description}
......@@ -2155,7 +2149,7 @@ Sets the displayed perspective in the graphics viewport to Bottom (-Z axis).
Third toolbar hosts the most frequently used buttons. This
The third toolbar hosts the most frequently used buttons. This
buttons have tooltips which will pop up when you hover the mouse over
them. However, these buttons are found in the second toolbar too,
except line thickness and color buttons. The line thickness and color
......@@ -2172,95 +2166,39 @@ the graphics viewport.
@b{The tree frame} is a hierarchical representation of your defined object. For example for
the shock-absorber @b{assembly} this will be as depicted
in figure 8.
@sp 1
@center @image{images/tree-shock-absorber,,3.2in }
@center Figure 8: Tasty shock-absorber tree.
@sp 1
The \emph{tree frame} is a hierarchical representation of your defined
object. For example for the shock-absorber assembly this will be as
depicted in figure
\ref{fig:tree-shock-absorber}
To draw the graphics (geometry) for the shock-absorber leaf-level
objects, you can select the ``Add Leaves (AL)'' item from the Tree
menu, then click the desired leaf to be displayed from the tree or
select the @i{rapid} button from third toolbar which is symbolized by
a pencil @image{images/tbar\_pen,,0.2in}. Because this operation (draw
leaves) is frequently used, the tree leaves has this operation
directly available as a tooltip, which will pop up when you hover the
mouse over them. To perform this operation on the fly, you simply
have to click the pencil icon; it does not require a second click on
the leaf in the tre (see figure 8).
To draw the graphics (geometry) for the shock-absorber
leaf-level objects, you can select the ``Add Leaves (AL)'' item from
the Tree menu, then click the desired leaf to be displayed from the
tree. Alternatively, you can select the ``rapid'' button from third
toolbar which is symbolized by a pencil icon. Because this
operation (draw leaves) is frequently used, this operation is directly
available as a tooltip which will pop up when you hover the mouse over
any leaf or node in the tree.
The ``on the fly'' feature is available also for ``inspect
object''(second icon when you hover the mouse over a leaf) and
``highlight object'' (third icon when you hover the mouse over a
leaf). For safety reasons highlight object requires a second click on
the leaf (a confirmation that the user wants to remove that leaf from
the graphics viewport).
@b{The inspector frame} allows the user to inspect (and in some cases
modify) object instance being inspected. Following are some examples
of how the inspector frame may be used.
To prepare for the first example, we will modify the assembly
definition by adding a settable @b{input-slot} for the piston radius.
In GenDL, the @b{:input-slots} are made up of a list, each of whose
elements is either a symbol (for required inputs) or a list expression
beginning with a symbol (for optional inputs). In either case, the
symbol represents a value which can be supplied either:
\begin{itemize}
object,'' as the second icon when you hover the mouse over a leaf or
node.
\item into the toplevel object of an object hierarchy, when the object is instanted, or
\item into a child object, using a @b{:objects} specification by definition in the parent.
\end{itemize}
Inputs are specified in the definition either as a symbol by itself
(for required inputs), or as an expression whose @b{first} is a symbol
and whose @b{second} is an expression which returns a value which will
be the default value for the input slot.
Optionally, additional keywords can be supplied:
\begin{itemize}
\item the keyword @b{:defaulting}, which indicates that if a slot by this name is
contained in any ancestor object's list of
:trickle-down-slots@footnote{trickle-down slots will be introduced
later}, the value from the ancestor will take precedence over the
local default expression.
\item @item The keyword @b{:settable}, which indiates that the default value of
this slot can be ``bashed,'' or overridden, at runtime after the
object has been instantiated, using the special object function
@b{set-slot!}@footnote{Any other slots depending on settable slots (directly or
indirectly) will become unbound when the @b{:set-slot!} function is
called to change the slot's value, and these will be recomputed the
next time they are demanded.}.
\end{itemize}
The ``inspector'' frame allows the user to inspect (and in
some cases modify) the object instance being inspected.
For this example, we will supply piston-radius as an input symbol with
a default expression and with the optional keyword @b{:settable}. We
will also pass the piston-radius down into the child @b{piston}
object, rather than using a hard-coded value of 12 as previously. The
new assembly definition is now:
For example, let's make the \texttt{piston-radius} of the shock-absorber ``settable,'' by adding the keyword \texttt{:settable}after its default expression (please review Chapter
\ref{chap:advancedgendl} if you are not familiar or need a refresher on this GenDL
syntax). We will also pass the piston-radius down into the child \texttt{piston} object, rather than using a hard-coded value of 12 as
previously. The new assembly definition is now:
\begin{figure}
\begin{lrbox}{\boxedverb}
\begin{minipage}{\linewidth}
......@@ -2319,10 +2257,6 @@ new assembly definition is now:
:center (make-point 0 175 0)
:radius 2.5
:length 90))
:hidden-objects ()
:functions ()
:methods ())
\end{verbatim}}
\end{minipage}
\end{lrbox}
......@@ -2340,7 +2274,7 @@ new assembly definition is now:
In this new version ``V0.1'' of the assembly, the piston radius is a
settable slot, and its value can be modified (i.e. ``bashed'') as
desired, either programmatically from the command-line, in an end-user
application, or from @b{Tasty}.
application, or from the Tasty environment.
......@@ -2361,24 +2295,14 @@ application, or from @b{Tasty}.
To modify the value in Tasty: select ``Inspect'' mode from the Tree
menu, then select the root of the @b{assembly} tree to set the
inspector on that object (see figure 9). Once the inspector is set to
this object, it is possible to expand its settable slots by clicking
on the ``Show Settables!'' link. (use the ``X'' link to collapse the
settable slots view). When the settable slots area is open the user
may set the values as desired by inputting the new value and pressing
the OK button (see figure 10).
As it can be observed from Figure 10, there is no dependency between
the piston radius and the rest of the shock-absorber objects
(components). If such a dependency is desired, the definition has to
be modified to include it. For the moment the piston radius will be
considered as the leading parameter, the rod radius constant and the
piston Y position will be added as a settable input slot. In addition
to this dimensional dependency, two computed slots will be added to the
previous code in order to compute the volume A and B (see figure 5) as
follows:
inspector on that object (see Figure
\ref{fig:tasty-inspector}). Once the inspector is displaying this object, it is
possible to expand its settable slots by clicking on the ``Show
Settables!'' link. (use the ``X'' link to collapse the settable slots
view). When the settable slots area is open, the user may set the
values as desired by inputting the new value and pressing the OK
button (see Figure
\ref{fig:tasty-s-slots}).
......
......@@ -56,9 +56,8 @@
\contentsline {section}{\numberline {5.5}Sequences of Objects and Input-slots with a Default Expression}{33}{section.5.5}
\contentsline {section}{\numberline {5.6}Summary}{34}{section.5.6}
\contentsline {chapter}{\numberline {6}The Tasty Development Environment}{35}{chapter.6}
\contentsline {section}{\numberline {6.1}The Tasty Interface}{35}{section.6.1}
\contentsline {subsection}{\numberline {6.1.1}The Toolbars}{36}{subsection.6.1.1}
\contentsline {subsection}{\numberline {6.1.2}View Frames}{39}{subsection.6.1.2}
\contentsline {subsection}{\numberline {6.0.1}The Toolbars}{36}{subsection.6.0.1}
\contentsline {subsection}{\numberline {6.0.2}View Frames}{39}{subsection.6.0.2}
\contentsline {chapter}{\numberline {7}Working with Geometry in Gendl}{43}{chapter.7}
\contentsline {chapter}{\numberline {8}More Common Lisp for Gendl}{45}{chapter.8}
\contentsline {chapter}{\numberline {9}Advanced Gendl}{47}{chapter.9}
......@@ -20,4 +20,5 @@
;;
("package" "parameters" "introduction" "installation" "basic-operation" "upgrade-notes"
"understanding-common-lisp" "understanding-gendl" "advanced-common-lisp" "advanced-gendl")
\ No newline at end of file
"understanding-common-lisp" "understanding-gendl" "advanced-common-lisp" "advanced-gendl"
"tasty-environment" "gendl-geometry")
\ No newline at end of file
......@@ -48,7 +48,7 @@
#+allegro excl:*fasl-default-type*
#+lispworks compiler:*fasl-extension-string*
#+sbcl sb-fasl:*fasl-file-type*
#+ccl ccl:*.fasl-pathname*
#+ccl (namestring ccl:*.fasl-pathname*)
#+abcl "abcl"
#-(or allegro lispworks sbcl ccl abcl) (error "Need fasl extension string for the currently running lisp.~%"))
......@@ -144,7 +144,8 @@ and \"..\" entries."
(temporary-folder))))
(when create?
(with-open-file
(out file :direction :output :if-does-not-exist :create :if-exists :append)))
(out file :direction :output :if-does-not-exist :create :if-exists :append)
(declare (ignore out))))
;;
;; FLAG -- change this to return true pathname, fix code which uses it
;;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment