Capricorn: Dec.22-Jan.29 The Sundial Primer
created by Carl Sabanski
Capricorn: Dec.22-Jan.29

The Sundial Primer Index

Dialling with QBASIC - Mac Oglesby - Polar Monofilar Standard Time Sundial

"Today I'm sending information about my polar dial that can display civil time from sunrise to sunset (at my latitude). As you know, a "normal" polar dial is usually limited to 12 hours, and one only gets that with upturned ends. The dial face could have been calculated to include longitude offset, but I was thinking of drawing a "universal" (Northern Hemisphere) dial face. The longitude offset can be easily incorporated into the two stops which position the dial face for morning and afternoon hours.

As illustrated in the attached photo (DSCN7359xs.jpg - Figure 1), the dial is mounted with the shadow casting taut cord style parallel with the Earth's axis. In the morning, the dial face must be rotated around the style 45 degrees toward the east, plus or minus the longitude offset correction if desired. I envision an adjustable stop to make repositioning a simple matter. Daylight saving could be incorporated into the stop, if desired. For afternoon hours, the dial plate is rotated 90 degrees (from its morning position) to the west. Again, a stop will make the repositioning simple. Civil time is read where the shadow of the taut cord intersects the current date. The date lines run from April 1 to April 1 to avoid allowing the cord-supporting posts to cast shadows which might interfere with reading the time.

The file "pmstmerg.dc" shows the result after the text file into which the program "pmstmerg.bas" writes data has been processed by CNVXXXX.EXE, and the resultant dxf file has been opened in DeltaCad. The large cross marks 0,0 and the line next to it shows the height of the taut cord above the dial face.

NOTE: when the dxf file is first opened, the gnomon-height-line may not be close to the 0,0 location. Look for the gnomon height line above the dial face drawing. If, by accident, the gnomon height line is lost, use half the distance between the two parallel lines drawn perpendicular to the date lines.

Another curious feature of the program as listed here is that it creates a screen drawing with different proportions from what you see when the dxf file opens. You can fiddle with the drawing and screen plotting parameters by changing the values of drX, drY, scX, and scY.

The length of day is set by Be4 (morning) and Be5 (afternoon). For fractional hour lines set SPZ to .5 for half-hours, .25 for quarter-hours, etc."

Figure 1 shows an example of a sundial that can be made.

Figure 1: Polar Monofilar Standard Time Sundial

Figure 1: Polar Monofilar Standard Time Sundial

Polar Monofilar Standard Time Sundial - PmstMerg.bas

This program is called a "Polar Monofilar Sundial". Monofilar refers to the fact that a single piece of string is used for the shadow casting edge or style. The curved lines are the "unfolded" analemma and allow for the correction of the Equation of Time. The date lines indicate where to read the shadow to get the correct EoT correction. The hour lines can also be corrected for longitude.

You can get the QBASIC program as well as a DeltaCad file here.

Figure 2 shows the program when it is opened in QBASIC. Take the time to read through the comments. There are a few parameters you need to modify to have it design a sundial for a particular location. These are highlighted by the red rectangle and start on line 11 and continue for a total of 9 lines.

The first line defines the name of the text file and gives the location where it will be written.

filename$ = "c:\pmstmerg. txt"

"c:\pmstmerg.txt" can be changed to place the file in any directory and give it any name. "c:" defines the disk and is likely not going to change. The path is set to the root but should be changed to a more appropriate directory. Remember to use the backslash "\". The file name "pmstmerg" is appropriate unless you would like to give it another name.

The following lines, 12 to 19 (not including 1 comment statement), need to be modified to define the sundial parameters as follows:

PHI = 43 - 'latitude of the dial in decimal deg. (0 < latitude < 66.5)
LocLong = 0 - 'longitude of local meridian (decimal degrees, west +)
Meridian = 0 - 'longitude of standard time zone meridian (decimal deg.)
EoTyesno = 1 - 'Want Eot correction? (1=yes, 0=no)
STRT = 4 - '1st of which month to start (Jan=1,Feb=2,...Dec=12)
GnH = 200 - 'gnomon height in mm
SPZ = .25 - 'step size for hour lines (.5 draws half-hour lines)

All the values in red can be changed if required to meet your specific design requirements. Note that repeating decimals for "SPZ" may produce poor results.

Figure 2: Polar Monofilar Standard Time Sundial QBASIC Program

Figure 2: Polar Monofilar Standard Time Sundial QBASIC Program

"For latitudes greater than 0 and less than 66.5, this program draws a polar dial face which has date arcs and an 'unfolded' analemmas. Some hour lines are shared, for the dial plate is rotated 90 degrees around the polestyle between AM and PM.

Longitude and Equation of Time corrections may be included. To avoid any longitude correction, input same values for longitude and time zone. Input 0 for EoTyesno to turn off EoT correction.

Sundial lines appear on thee screen, and all data for dial lines are written to a .txt file. Fer de Vries' program CNVXXXX.EXE" may be used to create, from the .txt file, a .dxf file for use by a CAD program such as DeltaCad. Algorithms published by Fer de Vries are used to calculate EoT and solar declination."

When the program is run the second screen you will see is shown in Figure 3. The sundial configuration data is shown here and can be checked. If there is an error complete running the program and then start again to make any necessary changes.

Figure 3: Polar Monofilar Standard Time Sundial Configuration Screen

Figure 3: Polar Monofilar Standard Time Sundial Configuration Screen

After the program run is complete the sundial is drawn on the screen although it will not be complete. This is shown in Figure 4. The notes at the top of the screen are not saved in the text file and should be read before exiting.

Figure 4: Polar Monofilar Standard Time Sundial - QBASIC Screen Output

Figure 4: Polar Monofilar Standard Time Sundial - QBASIC Screen Output

After the text file is created use the program CNVxxxx to convert it to a DXF file. Figure 5 shows the sundial when the drawing is opened in DeltaCad. 

Figure 5: Polar Monofilar Standard Time Sundial DXF File Opened in DeltaCad

Figure 5: Polar Monofilar Standard Time Sundial DXF File Opened in DeltaCad

The above figures show the sundial drawn using the default values in Figure 3. To complete the sundial, the hour numbers and text has to be added. The large cross indicates where one end of the monofilar gnomon or "taut cord" is located. The second end is directly across the dial plate. The horizontal line next to the cross is used to determine the height of the cord above the dial plate. As stated above, if this line is missing measure the distance between the two vertical lines and use half this value for the height of the gnomon. The two curved lines that are not hour lines indicate the time of sunrise and sunset.

Read Mac's description at the beginning of this page and carefully study his photo to see how he completed the sundial and build a base that allows him to rotate the sundial to indicate the morning and afternoon hours. Perhaps you will come up with another idea.