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 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 single macro called "cubeDials-hvm.bas" that does simple h, v, me dials and calendar curves, it is in this zip file.      
There is one set of macros that uses a parm file which you can override, this is for VISTA as well as XP
~ ~ ~ or ~ ~ ~
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. Only one sample program is included anymore that uses the parm file , extract the
code if you like it. The parameter file is included in the zip file for those the macros 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. 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.  
                

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:   a few DeltaCAD macros in WinZIP form (using the included parm file) works on XP as well as Vista win64 ~ shows
code for file handling. These are not as up to date as the macros NOT using the parameter file (see below), while the bugs
are fixed, some refinements may not be included. Also, not all the DeltaCAD macros are converted to handle the parameter
file, only a selection.

NOTE:   this is the most up to date set of macros, bugs fixed and with all refinements.  all DeltaCAD macros in WinZIP form
(does not use a paramater 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.
                                      cubicShadows.bas           has a 24 hour horizontal dial, equinox line, but true quadrant sensing  
 July 23, 2010
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.
                                      cubicShadows.bas         has a 24 hour vertical dial, true N or S, equinox line, and true quadrant
                                                                             sensing
July 23, 2010     

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.
DeltaCAD Astrolabe
DeltaCAD Cappucin plate
DeltaCAD h-dial animated
DeltaCAD Shepherd's dial
DeltaCAD winged azimuth
DeltaCAD vertical decliner
The infamous inclined decliner
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
MISC OPERATIONAL COMMENTS:-

BASIC SCRIPT ERROR ~
The cause of BASIC SCRIPT ERROR in a DeltaCAD macro was the use of the command STOP, used it in the DeltaCAD macros that
offer animation. The fix was to change STOP to EXIT FUNCTION if the code is in a function. I think I got all of them, but if I didn't, then change "
STOP" to "EXIT
FUNCTION
" and save.

TYPE MISMATCH ~ Version 7 of DeltaCAD always accepts " yy =  mycode(-xxx) " but Version 6 needs " yy = mycode( xxx*-1 ) "

DeltaCAD 7 ~ I have tested these macros on DeltaCAD version 7 using Windows VISTA, all works EXCEPT some dials which use the MIRROR function. The
MIRROR function in Version 7 of DeltaCAD also reverses the text which DeltaCAD 6 did not do, eg the East facing meridian dial.
I have made a partial
correction for text mirroring for the meridian dial.
The DeltaCAD authors point out that while "SELECT" and the "OPTIONS" tab on the right (not the top
bar) allows text itself not to be mirrored, this is lost when a macro is started, but, tthey will look at making this programmable in the next update.
July 23, 2010
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.  Case studies abound with associated
problems solved, and cover the infamous inclined decliner, as well as all the other kinds of outdoor dials.  
The printed book comes with a CD of booklets, spreadsheets, VRML/WRL files, templates, etc with the
printed book. The CD has all books and booklets and programs along with source code.  
You can get the
printed book and CD, just the CD, or an online download here.
         ~ ~ ~ DeltaCAD MACROS ~ ~ ~

SIMPLEST MOST COMMON DIALS MACRO
Download this ZIP file and use:-
            
cubicShadows.bas
for simplest horizontal, vertical, meridian dials,
calendar curves, EOT & decl info, and almanac.

MORE ADVANCED AND COMPLETE MACRO
Download this .ZIP file and use:-
            
analemma.bas
for the analemma program which handles
more involved horizontal, vertical, meridian
dials, decliners, and calendar curves.

THE ULTIMATE MACRO COLLECTION
Download this ZIP file for all other dial
variations,
or this one (which uses a
parameter file, included) to permanently
remember dial location.
For more details over and above the notes above, please read on.....