DeltaCAD         
is 2d only, but has a scripting language, under $100, works on VISTA as well as XP
DeltaCAD's main web page is
here
NASS DeltaCAD page is here
Carl Sabanski's DeltaCAD page is here
A DeltaCAD users group

FREE DIAL MACROS ~ The  benefit of DeltaCAD is its scripting. NASS has many scripts available, and here are some of mine for horizontal and vertical
dials for north/south latitudes with longitude correction, the meridian dial both east and west, a horizontal dial with calendar lines, and an equatorial
dial, N and S plates, calendar circles and sunrise/set lines, a polar dial, shepherd's dial, and the winged azimuth dial. Play with them and have fun,
their suffix is ".bas". ( Note: TurboCAD now has VBS as well as parametric scripts,
see here)

IMPORTANT NOTE ~ WHEN RUNNING THESE: If you double click the .BAS files themselves and thusly invoke DeltaCAD,  you may get the "error in basic
script" message, although the Win64/Vista seems better able to do this.  In Windows XP
always run DeltaCAD first, then MACRO, E, FILE OPEN, and
then run.  Similarly
do not use the file history in MACRO/E/FILE, instead always use the folder panel from MACRO/E/FILE/OPEN. A note is added in the
data input panel of each macro as a reminder.   These have been updated to work on Windows VISTA as well as on XP, there were some operational
as well as syntactical changes.

There is one single macro that does dial plates for all hour angle dial types, with analemmas and calendar curves, this is for Vista as well as XP
There is one set of macros that uses a parm file which you can override, this is for VISTA as well as XP
There is another set of macros with no parm file, you override built in defaults, this is for VISTA a well as XP

these macros have a default location either built in, or in a parm file; use a parameter file so you can customize your macro execution for a given
location (lat, long, ref long), they also allow the user to override the default dial location. The parameter file is included in the zip file for those that read a
parm file.

These are educational in design to show the transition from trig to code but they are not perfect software programs in that these are not glossy works of
art. Other people have done much better polishing work than me.. The hour line, SD and SH angles, and calendar curves are correct, although
sometimes the inclined decliner reverses the names of the hours, but then "inclined decliners are a problem entirely of the diallists own creation
[Drinkwater]". The techniques of the horizontal calendar dial show some methods and programming methodology of interest, the meridian dial shows
one method of constraining hour lines within calendar lines, and so on.  Some
notes on programming for DeltaCAD  cover printing large dial plates,
or portions of a dial plate
. The animation is also highly educational, if a dial macro is animated it says so in its input window, and you enter a 0 in
place of some key parameter which it identifies. As a rule, macros ending in "-a" have animation,  DO NOT RUN animation if you are epileptic.  By the
way, all these programs were used in both my small portable dials as well as the large garden outdoor dials, so they are fully functional.  

NOTE ~ I use my own abbreviations as I found no standard ones. h(horizontal), v(vertical), p(polar), m(meridian), z(azimuth), q(equatorial), etc
NEW SINGLE MACRO  ~ ~ ~    nomograms for  h, and v dials ~ full description is here
DIAL NOMOGRAMS FOR HORIZONTAL AND VERTICAL DIALS, NOTES, AND A DELTACAD MACRO FOR THEM,
also covered are the polar and meridian dial with calendar data, and for the vertical decliner, SD, SH and DL. Notes
show hot to use SH and DL for a surrogate horizontal dial, and thus avoid a much more complex nomogram that
would use the full vertical decliner hour line angle formula. Of not, SH and DL are used in the analemma DeltaCAD
macro for the vertical decliner hour line angles.  
Sept 14, 2009               

nomogram.bas

Very good notes on nomograms, however, the notes provided with Illustrating Time's Shadow are best.
ILLUSTRATING SHADOWS
(almanac data, bi-filar dial improvements, and construction alignment lines, DeltaCAD v TurboCAD comparisons, notes on programming DeltaCAD expanded, minor fix to azimuth
dial plate for some longitude deltas, azimuth dial plate can be winter or summer on outer scale, 7 calendar circles as opposed to just 3, v-dec and h-dial improvements also, and
many other updates)
NOTE:    Most dial programs are collected together so a main menu selects a sub program.  The notes are expanded to cover printing large dial
plates, and small selections of a displayed dial. These macros use a txt file (included) for parameters (which you can still override)(but read notes on
how to run the macros from DeltaCAD, on Windows XP especially,
always fun from DeltaCAD, MACRO/E/FILE/OPEN and never by double clicking in a
folder
and never by clicking the history of files when you do MACRO/E/FILE,historyname.  On Windows Vista this is less troublesome.    The
parameter file holds latitude, longitude, and reference longitude for legal time.
  

NOTE:   all DeltaCAD macros in WinZIP form (using the included parm file) works on XP as well as Vista win64
all DeltaCAD macros in WinZIP form (does not use a parm file)          works on XP as well as Vista win64

NOTE:   Many of the dials above including the Shepherd and Azimuth dials are animated ~  great education  tool to see how hour lines, shadows, and
calendar/declination lines move as latitude automatically steps up, or to see how the shadow follows a calendar curve. The vertical decliner will also
animate if dec set to 0, see how hour lines, SD, and SH vary with declination.
Do not use animation mode if you are epileptic.

NOTE:   The calendar curves program can be used to draw calendar lines for any hour angle dial. The design latitude for the "calendar curves" is the  
SH of the actual dial, and the "noon" line of the "calendar curve dial" is placed on the SD line of the actual dial. Pay attention to the SSL or GLH to make
sure you are using the correct distance. Pay attention to longitude correction, the best method is to use the calendar line points as angle from SD and
distance with no longitude correction, and transpose the results to the vertical dial's SD.  These are tools, and are a good blend of applying knowledge
using tools at the higher levels of learning, rather than doing things by rote.   

NOTE:   The JustBASIC page has the H, V and V-dec dials, the P and M dials, the declination curves, and the inclined meridian dial in BASIC that uses
JustBASIC which is free of charge. Also there is a Pascal, C, FORTRAN, java, Visual Basic, etc dial program collection, as well as links to their free
compilers, in their respective pages. For those links, see below at the bottom of this web page.

KEY POINT: DeltaCAD vs TurboCAD programming comparison: TurboCAD took the approach of using Microsoft's languages rather than the approach
taken by DeltaCAD which was to integrate a stable third party vendor's BASIC package. While this may have simplified TurboCAD's work, it must be
remembered that Microsoft dropped languages, which reduced the options available to the programmer when writing TurboCAD scripts. Then, the
languages themselves are not stable, they evolve as much as does JAVA, so features may become obsolete, making maintenance an issue for
someone programming scripts for TurboCAD. Finally, the programming option is only available in TurboCAD Professional, which costs much more
than the TurboCAD Deluxe variant. All these factors, combined with the ease of DeltaCAD stable BASIC programming platform have made DeltaCAD
the standard for the sundial community.  Additionally, while TurboCAD scripts allow 3d model construction, even the 2d scripts run slowly; this makes
DeltaCAD animation (which most Illustrating Shadows DeltaCAD macros offer) practical, whereas the slow speed makes animation by programming
in TurboCAD much less practical.   TurboCAD has added a "parametric part" which is interesting, and my TurboCAD page discusses it.

HOW TO PROGRAM DELTACAD MACROS ~ CLICK HERE for Notes on how to program DeltaCAD macros, a short extract from Illustrating More
Shadows. The book has more examples and methods of constraining lines within calendar curves (declination curves), and other techniques.
Illustrating More Shadows also has code for certain dials in other languages so you may compare programming languages, and techniques. Even
covers the legacy languages! But wait, there's more - even the legacy computers, with simulators I wrote that include assemblers, linkers, and
executors for the included sundial programs I also wrote for the IBM 1401 and IBM 360. My IBM 1401 and 360 simulators (written as GUI in Lazarus - a
Pascal open source implementation) I included tracing, core dumps, and instruction stepping, etc.     And a dial program for the IBM 7094 simulator
which someone else wrote.

BASIC SCRIPT ERROR ~ I finally figured out what causes the BASIC SCRIPT ERROR in a DeltaCAD macro. The command STOP causes it, and I use
it in the DeltaCAD macros that offer animation. So change STOP to EXIT FUNCTION if the code is in a function (as in ---
calendarDeclination.bas). I
think I got all of them, but if I didn't, then change "
STOP" to "EXIT FUNCTION" and save.
NOTE: DeltaCAD macros work on Windows VISTA as
well as XP.
OTHER SPECIAL PURPOSE MACROS  ~  HOUR ANGLE, ALTITUDE, AND AZIMUTH DIAL TYPES ~ full description is here

ALTITUDE DIALS

Cappucin dial                    alt-cappucin.bas               Cappucin dial       
planispheric astrolabe        alt-astrolabes.bas              the planispheric astrolabe generator  - and notes on formula derivation, depicted horizontally
                                                                   and also, the rete shown vertically aligned and clutter removed
shepherd's dial                   alt-shepherds.bas              Shepherd's dial using true declinations not fixed ones, animated, much better curves.  
                                                                   both single and dual gnomon (long for winter short for summer)
AZIMUTH DIALS

winged azimuth dial           azi-winged-azimuth.bas    Summer/equinox/winter hour lines [can animate hour lines w latitude, 7 month circles, dial plate options]


HOUR ANGLE DIALS

simple bi-filar h dial            MAIN-bifilar.bas                Bi filar dial (h-dial with hour angles of 15 degree separation) with a gnomon as two wires of differing heights

horizontal dial                     MAIN-h-dials.bas              Horizontal dial, longitude/latitude specific, and for north or south hemisphere, and calendar lines & gnomon
                                                                  based on  sub-style length [can animate hour-lines w latitude], and  sub style length is fixed - gnomon linear
                                                                  height varies.  And a horizontal dial whose shadow is animated using a given solar declination, thus can do
                                                                  calendar lines and curves for h-dials, and so on and on and on.  
  24 hour h-dial, Roman/Arabic. Ceiling dials.
                                                                  Analemmas. But see
this page for the best DeltaCAD analemma software.   
inclined decliner                 MAIN-inc-dec.bas            Inclined decliner dial plate design.
meridian dial                      MAIN-m-dials.bas             Meridian dial constrains the hour lines to the calendar lines
                                                                 meridian dial true east and west inclined dial
polar dial                            MAIN-p-dial.bas                with calendar lines and longitude adjusted  
equatorial dial                    MAIN-q-dial.bas                with calendar circles and sunrise/set lines longitude adjusted

vertical dial                         MAIN-v-dials.bas             Simple vertical dials, declining and non declining , both hemispheres, and
                                                                  vertical declining dial, and if you enter declination of 0 it is animated, north hemisphere only
                                                                  vertical decliner for north or south hemisphere, with declinations so the dial faces largely east or west
                                                                  vertical declining dial but facing the pole, not equator  
                                                                  vertical declining dial for mostly east or west alignments , and so on and on and on.  Roman/Arabic.
                                                                  vertical decliner with calendar curves and analemmas longitude corrected, matches the
analemma program.  
                                                                  March 8, 2010 More hours shown on DeltaCAD choice 4 (vdec) of the vertical dial macro.

MISC DIALLING AIDS

calendar lines/curves         MAIN-calendar-curves.bas  calendar curves for a V or H dial using SH, has notes about chapters to read in book 3, and also to use
                                                                   
analemma.bas       for analemmas on all dial kinds, see separate info box above.          
almanac and tables           MAIN-almanac-tables.bas  EOT (2 and 3 wave), Declination (small formula), as tables and graphs and other
                                                                   functions such as sunrise and sunset etc, and a daily almanac.  Also consider,
                                                                   
nomogram.bas       to build nomograms for some dialling functions, see separate info box above.
NOTE: Also, see some TurboCAD macros (vbs) slow
but work, for h and v-dec dials.
March 8, 2010
DeltaCAD Astrolabe
DeltaCAD Cappucin plate
DeltaCAD h-dial animated
DeltaCAD Shepherd's dial
DeltaCAD winged azimuth
DeltaCAD vertical decliner
The infamous inclined decliner
Illustrating Time's Shadow  
~  ISBN 0-9765286-8-1  plus  0-9765286-9-X
~  Lib Cong 2005900674  plus  2006930654

Merges Illustrating Shadows and Illustrating More Shadows, deletes duplicated material, and
techniques that are complex and replaced by easier methods, adds new material.

Hands on, empirical, geometric, trigonometric, CAD,  and spreadsheet dial design for small dials plus garden dials using common masonry supplies,
clay, and glass, with emphasis on many calendar line techniques, and inclined decliners, while providing details on the use of DeltaCAD programming
including the animation of many sheets as parameters vary.   
Get CD here.  Case studies abound with associated problems solved, and cover the
infamous inclined decliner, as well as all the other kinds of outdoor dials.  You get a free CD of booklets, spreadsheets, VRML/WRL files, templates,
etc with the book. The CD has all books and booklets and programs along with source code.            
PayPal here to buy.
A DeltaCAD horizontal dial with
calendar curves and with the
analemma - also have a vdial with
analemma
All these analemma specific
spreadsheets and DetaCAD files and
documentation
in one ZIP file.
The vertical decliner choice in
the analemma as well as the
vertical dial DeltaCAD macros.
NEW SINGLE MACRO  ~ ~ ~    HOUR ANGLE DIAL TYPES - a, q, p, m, h, v, and v-dec ~ full description is here
DIAL PLATES WITH ANALEMMAS, CALENDAR CURVES, AND LONGITUDE ADJUSTED HOURS ALL IN ONE MACRO

analemma.bas

Very good notes on analemmas, however, the notes provided with Illustrating Time's Shadow are best.

Analemma figures for both dial plates and gnomon
almost all dial types,
quick intro see this page      
also see
Excel and Open Office
this one zip file has all analemma material  
NOMOGRAM.BAS
ANALEMMA.BAS
NEW SINGLE MACRO  ~ ~ ~    calendar curves ~ full description is here
Like analemma.bas above except no analemmas, but much better control over calendar curve declinations.
calendarDeclination.bas

BASIC SCRIPT ERROR ~ I finally figured out what causes the BASIC SCRIPT ERROR in a DeltaCAD macro. The command STOP causes it, and I use it in the DeltaCAD macros that
offer animation. So change STOP to EXIT FUNCTION if the code is in a function (as in ---
calendarDeclination.bas). I think I got all of them, but if I didn't, then change "STOP" to "EXIT
FUNCTION
" and save. More found and fixed in the macro MAIN-v-dials.bas both with and without parm files. March 5, 2010