AL/CAD : a computer aided design system for log house... by Ray Spade Babcock

advertisement
AL/CAD : a computer aided design system for log house construction
by Ray Spade Babcock
A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in
Computer Science
Montana State University
© Copyright by Ray Spade Babcock (1987)
Abstract:
National Log Construction Company, a company created and run by Stephen D. Babcock in Thompson
Falls, Montana encouraged a study to determine the feasibility of using a computer to design log house
kits. This study was undertaken in two parts. A prototype system called Automatic Design System
(ADS) was developed during the time period 1972-1978. A final system called Air-Lock Computer
Aided Design (AL/CAD) was developed during the time period 1982-1987. The ADS system was
developed for a Prime multiuser computer system using a Tektronix 4006-1 storage display screen. The
AL/CAD system was developed for an IBM PC-AT clone machine running the MS-DOS operating
system. The AL/CAD system extensively uses windowing techniques to enhance user interaction. Both
of these systems are described. Examples of the earlier ADS command set and display techniques are
provided. The AL/CAD system is shown with its expanded data structure and windowing design. Both
systems are evaluated, and future growth is projected. A L/C A D : A CO M PU TER A IDED DESIGN
SYSTEM F O R LOG HOUSE C O N STR U CTIO N
by
R ay Spade Babcock
A thesis subm itted in p a rtia l fu lfillm e n t
of the requirem ents fo r the degree
of
Master of Science
in
.'
Computer Science
M ON TA N A STATE U N IV E R S IT Y
! Bozeman, M ontana
N ovem ber 1987
ii
A PPR O V A L
of a thesis subm itted by
R ay Spade Babcock
This thesis has been read by each member of the thesis committee and
has been fo u n d to be satisfactory regarding content, E nglish usage, form at,
citations, b ibliographic style, and consistency, and is read y fo r submission to
the College of G ra d u a te Studies.
D ate
Chairperson, G ra d u a te Committee
A pproved fo r the Major D epartm ent
m -7
W fr u D ate
H e a d /M a jo r D e p a rtm e n t
A pproved fo r the College of G rad u ate Studies
/ 2 D ate
^
G rad u ate D ean
<I
iii
STA TEM EN T OF PERMISSION TO USE
In presenting this thesis in p a rtia l f u lf illm e n t of the requirem ents f o r a
m a ste r’s degree at M ontana State U niversity, I agree th a t the L ibrary shall
m ake
it
av ailable
to
borrow ers
u n d er
the
rules
of
the
Library.
B rief
quotations fro m this thesis are allow able w ith o u t special permission, provided
th a t a cc u rate acknow ledgem ent of source is made.
Permission fo r extensive quotation fro m or rep ro d u ctio n of this thesis
m ay be g ran te d by my m ajor professor, or in h is /h e r absence, by the D ean
o f L ib raries when, in the opinion of either, the proposed use o f the m aterial
is f o r scholarly purposes.
Any copying or use of the m a te ria l in this thesis
f o r f in a n c ia l gain shall not be allowed w ith o u t my w ritten permission.
S ignature
D ate
/ \
/ V a V g
-7
iv
To my parents
Stephen a n d D aun
who inspired an d encouraged me.
V
TABLE OF CONTENTS
Page
A PP R O V A L PA G E ....................................................................................................................... ii
STA TEM EN T OF PERMISSION TO U S E ...................................................................... iii
D E D I C A T IO N ...............................................................................................................................iv
TABLE OF C O N T E N T S ...........................................................................................................v
LIST OF T A B L E S ................................................................................................... .... . . . vi
LIST OF F I G U R E S . ................................................................................................................ vii
A B S T R A C T ......................................
ix
1. I N T R O D U C T I O N .................................................................................................................... I
2. P R O T O T Y P E A U TO M A TIC DESIGN S Y S T E M ....................................................... I
A utom atic Design System U ser I n te r f a c e ................................................................7
A utom atic Design System D ata S t r u c t u r e . ..........................................................18
E v a lu atio n of A utom atic Design S y s te m ..................................
20
3. A L /C A D SYSTEM-................................................................................................................. 22
22
A L /C A D U ser I n t e r f a c e .......................................................
A L /C A D D a ta S t r u c t u r e ............................................................................................36
A L /C A D Boxing A lg o rith m ....................................................................................... 46
A L /C A D Splicing A l g o r i t h m ................................................................................... 48
4. C O N C L U S IO N S ...........................................................................................................
52
E v a lu atio n of M icrosoft W i n d o w s ...................................................
52
E v a lu atio n of M icrosoft Windows D evelopm ent Tool K it. . ....................... 53
E v alu atio n of A L / C A D ..................... ................................................... .... . . . . 54
B I B L I O G R A P H Y ...................................
56
vi
LIST OF TABLES
Page
1. ADS U ser Com m ands ..................................................................... ' ...............................9
2. ADS Commands For Sample House D e s i g n ................................................................ 15
3. Job R e c o r d .............................................................................................................................. 40
4. Plan R e c o r d .......................................................................................................................... 41
5. Miscellaneous R e c o r d .........................................................................................................41
6. Wall R ecord .......................................................................................................................... 42
7. O pening R e c o r d . ................................................................................................................. 42
8. Intersection R e c o r d ............................................................................................................. 43
9. Box R eco rd ..............................
43
10. Gable R e c o rd .......................................................................................................................... 43
11. Row R e c o r d .............................................................- ........................................................ 44
12. Piece R e c o r d .......................... .............................................................................................. 44
13. Cut R e c o rd ................................................................................................................ . . . 45
14. A L /C A D D a ta S tru ctu re M anipulation A l g o r i t h m s . ........................................... 45
Vii
LIST O F F IG U R E S
Page
1. An A ir-Lock Log H o u s e ................................................................................................... 2
2. Cross Section of an A ir-Lock L o g ..............................................................................2
3. ADS Screen L a y o u t ..................... ......................................................................................8
4. ADS Screen A fte r F our C om m ands..............................................................................10
5. Sample
ADS Design
of Four W a l l s ...................................................................... 13
6. Sample
ADS House
With O p e n in g s .....................................................................14
7. Sample
ADS House
A fte r L A Y O U T C o m m a n d ...........................................16
8. Sample ADS E levation V ie w .......................................................................................... 17
9. Sample
ADS House
With G able............................................................................. 18
10. Sample
ADS House
A fte r LAYUP C o m m a n d ................................................. 19
11. A L /C A D Screen L a y o u t .................................................................................................... 23
12. System M enu Being S e le c te d ...........................................................................................24
13. Selecting The Close Option . ........................................................................................ 25
14. A L /C A D Mode M e n u .........................................................................................................26
15. A L /C A D G rid M e n u .........................................................................................................26
16. A L /C A D C reate M e n u . .................................................................................................... 27
17. A L /C A D Phase Menu
18. A L /C A D Move M e n u ...............................................
27
.28
Viii
LIST OF FIG U R E S - C ontinued
Page
19. A L /C A D View M enu . . .
.............................. .... .
....................................... 28
20. A L /C A D Delete M enu.........................................................................................................28
21. A L /C A D E d it M e n u . ................. '........................ ............................................................29
22. A L /C A D File M e n u .........................................................................
29
23. A L /C A D U tility Menu . . . ........................................................................................ 30
24. A L /C A D Debug M enu....................................................! ..................... ......................... 30
25. Selecting C reate Wall O ption.........................................................................
31
26. C reating A V ertical W a l l ................................................................................................ 32
27. Positioning To A M iddle W a l l ........................................................................................33
28. A dding The M iddle W a l l ................................................................................................ 34
29. A dding A Window To A W a l l .......................................................
35
30. A L /C A D D ata S tru ctu re.................................................................................................... 38
31. A Wall R ecord A nd O pening L i s t ..............................
39
32. F our Boxes In An E levation ...................................................
47
33. Splicing One Box ...............................................
51
ix
ABSTRACT
N atio n al Log C onstruction Company, a company created and ru n by
Stephen D. Babcock in Thompson Falls, M ontana
encouraged a study to
d eterm in e the feasib ility of using a com puter to design log house kits. This
study was u n d e rta k e n in two parts.
A prototype system called A utom atic
D esign System (ADS) was developed d u rin g the time period 1972-1978. A fin a l
system called A ir-Lock Com puter A ided Design (A L/CA D ) was developed during
the time period 1982-1987. The ADS system was developed f o r a Prim e m u lti­
user com puter system using a T ek tro n ix 4006-1 storage display screen. The
A L /C A D system was developed fo r an IBM PC-AT clone m a chine run n in g the
MS-DOS operating system. The A L /C A D system extensively uses w indow ing
techniques to enhance user interaction. Both of these systems are described.
Exam ples of the earlier ADS command set a n d display techniques are provided.
T h e A L /C A D system is shown w ith its expanded data s tru c tu re and w indow ing
design. Both systems are evaluated, an d f u tu r e grow th is projected.
I
CHAPTER I
IN T R O D U C T IO N
Log house construction is a tra d itio n in America.
E veryone wants a
cab in in the hills, by a lake, near a stream or just out in the cool fresh
c o u n try aw ay fro m town.
C utting your own logs in the forest and carving
them into a house is a com plicated job.
In recent years, various log house
m a n u fa c tu r in g companies have been created to solve this problem fo r the
m a jo rity of log house customers.
I was privileged to be born into a fam ily
th a t ow ned and operated such a company.
On M arch 21, 1946, my fa th e r, Stephen D. Babcock, signed papers to
p u rchase a p a te n t fo r a new k in d of log house construction. He w ith three
other p artn e rs established a com pany called N ational Log C onstruction Company
in Thom pson Falls, M ontana, to m a n u fa c tu re this product.
T he m aterial used
f o r the houses was called "Air-Lock" logs! An example of an Air-Lock log
house is shown in F ig u re I.
This new k in d of construction m ethod involved the d rillin g of a three
.
inch dia m ete r hole dow n the length of a log th a t had been previously tu rn e d
to a constant diam eter of 6, 7, or 8 inches.
log is shown in F igure 2.
A cross section of an Air-Lock
2
Figure I. An Air-Lock Log House.
F igu re 2. C ross S e c tio n of an A ir-L ock Log
When a solid log dries it dries from
shrinks
more
quickly
than
the
inside
and
the outside only.
the
log
splits
The outside
open
in
long
lo ngitudinal cracks. The three inch hole in the Air-Lock process allows the
3
log to dry fro m
the inside as well as fro m the outside
com pletely dry log and a reduction in "checking" or cracking.
process
provides
for
a
well seasoned
log product of
thus assuring a
The "Air-Lock"
a high
dim ensional
stability.
In designing the plans fo r an "Air-Lock" log house, a set of floor plans is
d raw n fro m custom er supplied specifications. Wall elevations are then d raw n
and th e various pieces th a t
will be m a n u fa c tu re d are designed.
A list of
m a te ria l is used by the facto ry to m a n u fa c tu re the re q u ire d pieces fo r a
design.
T he pieces are m arked and shipped to the custom er site where they
are assembled into a log house.
T he design process is com plicated a n d tim e consuming.
It is desired to
speed-up this process and reduce the num ber of errors th a t occurred.
com puter system was proposed and developed.
A
This developm ent consisted of a
prototype system developed during the tim e period 1972-1978 called A utom atic
Design System or ADS.
This package was not successful a n d a newer system
developm ent project was begun d u rin g the time period 1982-1987.
The new er
system was called A ir-Lock Com puter A ided Design or A L/C A D .
A L /C A D is a highly
graphical user in te rfa c e to a set of design tools. It
is m ore successful th a n the ADS system and has produced usable results.
In
p rep arin g to develop the A L /C A D system, several system requirem ents were
im portant. These were: portability, a user frie n d ly in te rfa c e , development in a
program m ing language w ith dynam ic mem ory allocation, use of a window
environm ent, use of a pointing device, use of an o u tp u t device, speed of
design, an d waste reduction. These are described below.
In considering
various locations.
portability, the system needed to be portable between
T he IBM PC-AT was chosen as the ta rg e t machine.
A ny
4
IBM-AT or com patible clone having the follow ing characteristics would ru n the
package:
an 80286 cpu, 640 K bytes o f main memory w ith an EGA graphics
board and a m onochrom e or color m onitor, and a M icrosoft Mouse.
Since the users of this package were u n fa m ilia r w ith computers, the
f r ie n d ly n a tu re of a w indow ing system was chosen.
Due to the highly dynam ic
n a tu re of the data s tru c tu re chosen f o r A L /C A D , a program m ing language
supporting dynam ic m em ory allocation was needed.
In a d d itio n , the language
needed to be available on the IBM PC-AT or its clones.
M icrosoft’s version
4.0 of the C program m ing language was chosen.
O nly one w indow environm ent was available for the ta rg e t machine.
was M icrosoft Windows.
This
In order to develop an application fo r Windows, the
M icrosoft Windows D evelopm ent Tool-kit was obtained.
D ue to the highly graphic n a tu re of the A ir-Lock Log house design
system, a pointing device usable by a person not f a m ilia r w ith computers was
needed.
The mouse device was chosen.
To provide the highest possible
com patibility w ith M icrosoft Windows, the M icrosoft mouse was selected.
In the f ir s t release of the A L /C A D package, h a rd copy o u tp u t was not
needed.
However, it was fe lt th a t some fo rm of screen p r in t u tility was
needed.
A dot m a trix p rin te r w ith a graphics mode was chosen to allow the
user to m ake a copy of the screen at any time.
o u tp u t fo r a d igital plotter.
F u tu re versions will produce
This will allow complete f u ll sized plans to be
draw n.
T he norm al m a n u fa c tu rin g process f o r A ir-Lock logs has the potential to
produce a large am ount of very expensive waste m aterial in the form of raw
m a te ria l pieces of a length unused in the p a rtic u la r house being m a n u fa ctu red .
A f in a l goal of A L /C A D was to reduce this waste facto r.
Only a small
5
re d u c tio n would com pletely pay fo r the com puter system in one year.
The A L /C A D system allows a user to generate a com plete facto ry list of
m a teria l a n d cut-out guides from a simple floor plan sketch.
T here are fiv e
m ain phases to A L/C A D : the floor plan phase, the layout phase, the elevation
phase, the layup phase, and the list of m a teria l phase.
D uring the flo o r plan phase the flo o r plan is d ra w n to scale and the
w indow an d door openings are added.
D uring the layout phase all walls are
intersected a n d the intersection records are
the elevation phase the
m odified.
The
w indow
intersection is checked.
created in the d ata structure.
In
height and w id th of each elevation is checked a n d /o r
and
door
opening
heights
are
v e r if ie d
and
each
Gables, the sloped portion of a w all beneath the roof
and above the wall, can be added to the walls during this phase and blank row
records are a d d ed to the d a ta structure.
The layup phase is the most com plicated of all the phases.
phase, the walls are
boxed and spliced.
D uring this
Boxing is the process o f dividing an
elevation into separate boxes of wood m a te ria l th a t contains no openings. Since
the longest log m a n u fa c tu re d is 8 fe e t 3 inches, each row longer than this
must be spliced.
A splice is the joining of two logs at th e ir ends.
As the
walls are spliced, in d iv id u a l piece records are created and a d d e d to the d ata
structure.
The last phase is the list of m a te ria l phase.
In this phase the complete
fa c to ry cu ttin g in fo rm a tio n and custom er list of m aterials is generated.
The
list o f m a teria l shows the num ber and sizes of all log pieces in th e building.
T he A L /C A D system makes num erous checks d u rin g its various phases to
p rev en t missing piece errors in tro d u ced by the user.
Waste reduction tables
are m a in ta in e d to allow the splicing alg o rith m to re-use odd shaped left-overs
6
fro m previous log allocations.
lengths.
All other log
exam ple, if there is a
The raw m aterial is lim ited to 8 foot 3 inch
pieces must be less than or equal to this length.
For
5 foot 0 inch space between two w indow s, the obvious
solution is to provide a 5 foot 0. inch log to fill this space.
However, fo r
each 5 foot 0 inch piece cut, there is a 3 foot 3 inch piece le ft over.
If
an o th er area in the build in g does not m ake use of this piece, then it may go
to waste.
L ater, when splicing a 7 fo o t 0 inch length, th e system may choose
to use a 4 fo o t 0 inch
7 fo o t 0 inch length
m aterial.
length and a 3 fo o t 0 inch length r a th e r than cutting a
fro m an 8 foot 3 inch length
in order to conserve
H owever, since every splice weakens the wall, th e num ber of splices
needs to be kep t to a low.
The A L /C A D program attem p ts to balance the
need fo r splicing w ith the need fo r waste reduction.
7
CHAPTER 2
P R O T O T Y P E A U T O M A TIC DESIGN SYSTEM
T he f ir s t version of the Air-Lock Com puter Aided D esign System was
called A utom atic Design System or ADS.
period 1972-1974.
ADS was developed d u rin g the time
It consisted of over one h u n d re d subroutines w ritte n in the
F O R T R A N -66 program m ing language.
follow ing hardw are:
The ADS package was designed fo r the
a Prim e 300 cpu w ith 128 K Ram m em ory, a T ektronix
4006-1 storage tu b e graphics display, a T e k tro n ix 4662 f la t bed X-Y plotter, a
Pertec
IOMb rem ovable cartridge disk u n it, and a P erk in Elm er
1200 crt
term inal.
A utom atic Design System U ser In terfa ce
Since the m a in in teractio n w ith the user was to be via a storage tube
graphics device, the user in te rfa c e h ad
te rm in al to erase any
to allow fo r the in a b ility of the
one p art of its screen.
I f the screen was to be
changed, the entire screen h ad to be erased a n d completely redraw n.
F igure 3
shows the three separate areas on the face o f the terminal.
The m ain com m and input area was three lines at th e bottom of the ■
screen.
The erro r message output area was one line at the top of the screen.
T he rem a in d er of the screen was to be used to draw the graphics portion of
the data.
In order to provide for
enough commands a t the bottom of th e .
screen a special in p u t command parser was developed.
com m and was an open parenthesis
T he p ro m p t fo r a new
T he cursor was then moved to the
8
space to the rig h t of the parenthesis.
As each ch aracter o f a command was
typed by the user, the ch ara cter was evaluated by the com m and parser and
assembled into a valid command.
ERROR MESSAGE AREA
GRAPHICS AREA
COMMAND AREA
TEK4006-1
F igu re 3. ADS S creen L ayout.
If an incorrect c h ara cter was typed, a bell sounded and no character was
reflected to the screen.
If a correct ch ara c te r was typed, it was reflected to
the screen and the cursor was moved one space to the right.
the packing of m any commands on a single display line.
This allowed fo r
A f te r a command was
finished and the operator pressed the r e tu rn key, a closing parenthesis ")" was
reflected to the operator. The command was executed by o th e r routines w ithin
9
ADS and the parser was then called again.
A new open parenthesis was sent
to the screen to tell the operator th a t the system was read y fo r the next
command. Table I gives a list of the ADS commands.
T able I. ADS User Commands.
Comm and
D escription
MOVE
Move Pen.
UP
D e fin e A Wall In UP D irection.
DOWN
D e fin e A Wall In DOWN Direction.
LEFT
D efin e A Wall In L E F T D irection.
R IG H T
D efin e A Wall In R IG H T Direction.
ANGLE
D e fin e A Wall At An Angle.
DOOR
D e fin e A Door Opening.
WINDOW
D e fin e A Window Opening.
WALL
D efin e An Interior Wall.
OPEN
D e fin e A N on-Standard Opening.
DELETE
Delete A Feature.
DRAW
D raw The Design On The Screen.
PLO T
D raw T he Design On The Plotter.
Q U IT
E x it T he Design Process.
JOB
Load D a ta From An Existing Job File.
LIST
G en erate The List Of M aterial.
LAYOUT
Intersect All The Walls.
LAYUP
C alculate Log Splices.
ELEVATE
D raw T he Elevatidn View O f A Wall.
POV
Swap T he P oint O f View.
10
F igure 4 shows the screen a f te r f o u r commands d e fin in g a wall were
typed. Note in the command input area, the four com mands were packed
together on one line.
(U20-0) (B40-0) (D20-OML40-0)
TEK4006-1
F ig u re 4. ADS S cre en A fter Four C om m and s.
The com m and parser system allowed the user to see previous commands
th a t had been typed and provided a more "friendly" in te rp re ta tio n of each
keystroke as it was typed.
If any erro r occurred, an erro r message was
displayed at the top o f the screen.
When the operator took corrective action,
this message and all the inform ation on the screen was cleared by a screen
11
clear fu nction.
Then
the correct graphics d ata
was re d ra w n
and a new
com m and prom pt was sent to the screen.
In using ADS a special length code was chosen th a t was the same as the
length code used in m a n u fa ctu rin g .
p a rt
code
separated
by
dashes,
Each length was represented by a three
F-I-E.
The
first
nu m b e r
was
an
integer
representing the nu m b e r of feet, the second num ber was an integer from 0 to
11 representing the nu m b e r of inches, and the th ird n u m b e r was an integer
fro m 0 to 7 representing the num ber of eighths of an inch.
system
was
used
through-out
the
design
and
This m easuring
m a n u fa c tu rin g
process.
For
exam ple a log
m easuring 7 fe e t 6 an d 1/2 inches, was denoted by a length
code of 7-6-4.
A log m easuring 4 feet 11 and 1/8 inches was denoted by a
length code of 4-11-1.
The process fo r designing a house was as follows:
I.
D raw the log walls of the floor plan w ith ADS in the plan mode., 2. Add
w indow and door openings to the plan., 3. Intersect the walls a t each corner
w ith the L A Y O U T command., 4. Build each elevation record w ith the EL EV A TE
command., 5. Add any gables needed to the elevation views., 6. Splice the walls
w ith the LA Y U P command., and 7. G enerate the list of m aterials fo r the
factory.
To d e fin e
in d iv id u a l wall
an in d iv id u a l wall, one of the wall com m ands was given. The
com m and indicated the direction of the wall.
Starting at the
lower le ft of the screen the cursor was moved up or to th e right by the
operator.
If, fo r exam ple, the operator w ished to d ra w
a wall from the
c u rre n t location up to a new location, the UP com mand was used. The UP
com m and, a b b rev iated U, was follow ed by a length code representing the
desired length of the wall.
For example, if the operator w ished to d efin e a
12
w all of length 24 fe e t 6 inches in the u p w a rd direction, any of the following
com m ands w ould work:
U 24-6-0 or UP 24-6 or U 24-6
N ote th a t trailin g zeros in the length code could be om itted and th a t the
com m and nam e could be abbreviated.
A fte r this com m and was parsed and
evaluated, a rectangle d e fin in g the w all was d raw n to scale on the screen.
T he cursor was moved to the opposite end o f the wall fro m w hich the wall
was defined.
The o p erato r could then proceed to d efin e ad d itio n a l walls by
en terin g ad d itio n a l w all commands.
For example, to d e fin e an o th er wall going
to the rig h t th a t was 34 feet 6 and 1/2 inches long, the follow ing com mand
could have been entered:
R 34-6-4
This com m and would have been packed on the com m and in p u t line w ith the
previous com m and as follows:
(U 24-6)(R 34-6-4)
To d e fin e the rest of a rectangular house, two a d d itio n a l walls would have
re q u ire d d e fin itio n .
The fin a l graphics, screen representing f o u r walls would
have been as shown in F ig u re 5. Note th a t the com mand line now reads:
(U 24-6)(R 34-6-4)(D 24-6)(L 34-6-4)
F igure 6 shows a sim ilar illu stratio n w ith a set of openings defined.
T he set of ADS com m ands required f o r the layout of F ig u re 6 w ith a short
e x p lan atio n of each com m and is given in T able 2.
Note th a t the com m ands required th e operator to keep trac k of w here
he or she was on the diagram .
This was one of the most lim iting factors in
the im plem entation o f this package on the storage tube display term inal.
n e x t step w ould have been to in p u t the L A Y O U T command.
The
F igure 7 shows
13
the results of executing this command.
shown as intersecting one another.
Note that all the log walls were now
This was the norm al appearance of a log
wall in plan view.
(U24-6) (R34-6-4) (D24-6) (L34-6-4)
TEK4006-1
F ig u re 5. S am p le ADS D e sig n of Four W alls
The walls could then have been shown in "elevation" view by the use of
the E L E V A T E command.
Each wall was num bered as it was originally defined.
The elevate com mand re fe rre d to this num ber when d e fin in g the wall.
exam ple to elevate the firs t wall d efin e d the following com m and was used:
(E I)
This would have caused the screen to clear and Figure 8 to be displayed.
For
14
(U24-6)(R34-6-4)(D24-6)(L34-6-4)(MU10-3)(W I 4-0
4-0 3-0)(MU 10-3)(MR7)(WI4 4 3)(MR 12-6)(WI4
4 3)(MR7)(MD8-3)(WI6 4 3)(MD8-3)(ML15-9-2)(D
TEK4006-1
F ig u re 6. Sam ple ADS H o u se W ith O p e n in g s.
Note
th a t
the
opening
was
shown
containing
no
horizontal
lines.
This
indicated th a t no log m aterial was to be used for this area, thereby creating
an opening in the wall.
The solid wall was indicated by the horizontal lines
representing the in d iv id u a l log rows needed for of this p a rtic u la r elevation.
This com m and did not produce a spectacular draw ing, but it was extremely
im p o rta n t to the design of the building on the com puter.
It was w ith this
com m and th a t the row records of the original data stru ctu re were built.
15
T able 2. ADS Comm ands F or Sample House Design.
Com m and
A ction Taken
U 24-6
D raw a wall up 24 fe e t 6 inches.
R 34-6-4
D raw a wall right 40 fe e t 6 and 1/2 inches.
D 24-6
D raw a wall down 24 fe e t 6 inches.
L 34-6-4
D raw a wall le ft 34 fe e t 6 an d 1/2 inches.
M U 10-3
Move up 10 feet 3 inches. ■
WI 4-0 4-0 3-0
D efin e a w indow th a t is 4 fe e t 0 inches w ide by 4 feet 0
inches high and is 3 fe e t 0 inches from the floor.
M U 10-3
Move up 10 feet 3 inches.
M R 7
Move rig h t 7 feet 0 inches.
WI 4 4 3
D e fin e another window.
M R 12-6
Move rig h t 12 feet 6 inches.
WI 4 4 3
D efin e another window.
M R 7
Move rig h t 7 feet 0 inches.
M D 8-3
Move dow n 8 feet 3 inches.
WI 8 4 3
D efin e a w indow th a t is 8 fe e t 0 inches w ide by
4 feet 0 inches high and 3 fe e t 0 inches fro m the floor
M D 8-3
Move dow n 8 feet 3 inches.
M L 15-9-2
Move le ft 15 feet 9 and 1/4 inches.
D O O R 3-0 6-8
D efin e a door 3 feet 0 inches w ide by
6 fe e t 8 inches high.
16
—
—
Tl
a y o i JT )
TEK4006-1
F ig u re 7. S am p le ADS H o u se A fter
LAYOUT C om m and .
If a gable were to be added to this elevation, the GABLE command would
have been executed as follows:
GABLE 4-12 12-3 -4-12 12-3
This com mand indicated th a t a gable would have been built fro m the left rising
at a 4-12 pitch (4 feet high for each 12 feet in length) fo r a length of 12 feet
3 inches.
Then the gable would have dropped at the same pitch for another
12 fe e t 3 inches, com pleting the wall. F igure 9 shows the results of this gable
command.
17
(EL I)
TEK4006-1
F igu re 8. S am p le ADS E levation V ie w .
A fte r elevating all the walls, a LA Y U P command was typed and the
original attem p t at splicing took place.
F igure 10 shows wall one spliced as it
w ould have been by the normal splicing algorithm .
It was a f te r the splicing
was fin ish ed , th a t a list of in dividual logs could be created.
G enerating the list of materials and draw ing complete and dim ensioned
d raw in g s of the in d iv id u a l walls was in tended to provide the company with a
trem endous aid in designing log houses.
18
This e f f o r t when done by hand for a nominal sized house would take a
designer from two to seven days.
ADS should have reduced this time to less
than one day.
(EL 1MGABLE 4-12 12-3 -4-12 12-3)
TEK4006-1
F ig u re 9. S am p le ADS H o u se W ith G able.
A utom atic Design System D ata S tructure
ADS used
a p ro p rietary
file m anagem ent system developed
C om puter Inc. called MIDAS.
Scheme.
by Prime
This stood fo r M ultiple Indexed Data Access
The MIDAS system was extensive and provided high speed access to
each of the parts needed by ADS.
19
(LAYUPMEL I )
TEK4006-1
Figure 10. Sample ADS House After
LAYUP Command.
It was not portable, however, and added quite a bit of overhead to the entire
package.
Also, d u rin g the design of a new building, MIDAS put most of the
new records in overflow areas, and the indexing speed was not reduced until a
reorganization of the file took place by executing a com m and called REM A KE
for the file.
A fte r R E M A K E was completed, the file was accessed very quickly
and the in d iv id u a l records were stored in an effic ie n t fashion.
However, the
user would forget to execute the R EM A K E command and th e re fo re the system
continued to operate slowly.
20
MIDAS was a keyed file system.
E ach record had to have one prim ary
key d e fin e d and allowed any num ber of secondary keys.
These keys were used
to build separate indices fo r the in d iv id u a l records allowing access in a num ber
of d if f e r e n t ways.
The follow ing records were d e fin e d in the MIDAS im plem entation of
ADS: Wall Records, Row Records, Piece Records, and G able Records.
Wall
Records co n tain ed d ata about an in d iv id u a l wall including its length and
graphics position. Row Records contained d ata about an in d iv id u a l row on and
in d iv id u a l wall.
All of the row records fo r a wall were connected to the Wall
record fo r th a t wall.
Piece Records were generated by the design system.
This record co n tain ed d ata as to the length of the piece, w h ich row it was in,
an d any special cuts th a t were to be m ade in the piece.
Each gable in a
house was tre a te d as a separate entity in the MIDAS system and had its own
G able Record.
D a ta concerning the pitch and length of th e gable in add itio n
to its graphics location were included.
The MIDAS system allowed an in d iv id u a l house to h av e lots of rows w ith
a few walls or lots of walls w ith a few rows.
In any com bination, the space
used was just the space needed for the data.
E valuation of A utom atic Design System
T he ADS p rototype version was never successful f o r tw o main reasons.
T he f ir s t was because it never spliced correctly.
could
be
in te rp re te d
by
even
an
u n tr a in e d
It was alw ays m aking w hat
hum an
as
"crazy"
choices.
T h erefo re, the h u m a n designer was alw ays called upon to "clean up" a fte r the
21
com puter.
in terface.
T he
second
reason
th a t
this
system failed
was its poor user
T he com mands were h ard to remember, the results and the location
of the c u rre n t d raw in g position were h a rd to read.
22
CHAPTER 3
A L /C A D SYSTEM
The
A ir-Lock
developm ent
effort
Com puter
in
Aided
autom ating
the
Design
or
A ir-Lock
A L /C A D
was
log house
design
A L /C A D was developed during the tim e period 1982-1987.
m ajor new
design f o r
a linked
list d a ta
the .final
process.
It consisted of a
structure, a hew
user in te rfa c e
utilizin g a w indow ing environm ent, and a new set of com puter equipm ent.
The
A L /C A D system was designed fo r the follow ing hardw are: a M ultitec (IBM-AT
clone) com puter w ith
640 K bytes h ig h speed memory a n d an Extended
G raphics A d ap ter card, a monochrom e display, a 30Mb secondary storage disk
unit, a M icrosoft Mouse pointing device, a dot-m atrix p r in te r w ith graphics
capability, an d the M icrosoft versions o f the C program m ing language, the
Windows operating system, and the Windows Softw are D evelopm ent Tool K it.
T he A L /C A D system description th a t follows is divided into a discussion of the
user in terface, the d a ta structure, the boxing algorithm , the splicing algorithm ,
a n d an evaluation of th e developm ent tools and the resulting so ftw are package.
A L /C A D User In te rfa c e
An im p o rta n t re q u ire m en t for A L /C A D was th a t its user in te rfa c e needed
to be m uch m ore f r ie n d ly to the user.
w idely av ailable com puter system.
In a d d itio n A L /C A D h ad to ru n on a
T he IBM AT fam ily o f clone computers
using the MS-DOS o perating system was chosen as the com puter and various
w indow ing packages f o r this system w ere exam ined as a solution to the user
23
in te rfa c e
problem.
M icrosoft Windows in
Mouse was fin a lly selected for this purpose.
conjunction
w ith
the Microsoft
In addition, a M icrosoft Windows
Developm ent Tool K it was acquired to enable the developm ent of a customized
w indow s application.
How the A L /C A D package works on this system is now described.
A fter
in itia tin g the A L /C A D package the screen shown in Figure 11 is displayed.
Figure 11. AL/CAD Screen Layout.
T he title of the package is shown in the title bar area of the window.
"size" box is shown at the right hand top corner.
A
This size box can be
selected by the user (using the mouse) if it is desired to change the size of
24
the window.
A system menu box is displayed at the upper left corner.
system menu is shown in F igure 12.
The
(For details on the system menu box see
the M icrosoft Windows manual.) The CLOSE option will term inate the A L /C A D
application and re tu rn the user to the control of the window s package.
To
re tu rn to MSDOS, a CLOSE selection is made using the system menu in the
resulting MS-DOS window.
E
ate Phase Move View Delete Edit File Utility Debug
M ove
Ic o n
Zoom
C lo s e
A b o u t...
Figure 12. System Menu Being Selected.
Selections fro m the system menu are made by moving the mouse cursor
to the iconic or p ic tu re representation o f the system menu and pressing and
holding the le ft mouse button. At this point a "pop-up" menu is displayed on
25
the screen.
A pop-up menu is displayed tem porarily over the in fo rm atio n
below it on the screen.
A fter the selection is made, the w indow disappears
and the in fo rm atio n below the menu is displayed again.
While holding the
button and moving the mouse down through this menu, the d if f e r e n t selections
in the menu are highlighted.
the entry in reverse video.
The highlighting is accomplished by displaying
The user makes a selection by releasing the left
mouse button when the desired entry is highlighted.
F igure 13 shows the user
selecting the CLOSE option from the system menu.
IB l
S iz e
M ove
Ic o n
Zoom
A ir - L o c k /C A D
ate Phase Move View Delete Edit Rle Utility Debug
Figure 13. Selecting The Close Option.
EU
26
The pop-up menu selection technique is used for all pop-up menus in the
A L /C A D
system.
The
A L /C A D
high
level
menu
consists
selections shown just below the title line on the screen.
of
the
eleven
These selections are:
Mode, G rid, Create, Phase, Move, View, Delete, Edit, File, U tility , and Debug.
The pop-up menus th a t are displayed for each of these selections are shown in
Figures 14 through 24.
Grid Create Phase Move View Delete Edit File Utility Debug
V Plan M ode
E levation M ode
F igu re 14. AL/CAD M ode M enu.
Mode
■■■anaHEaeeeaeEii
Create Phase Move View Delete Edit File Utility Debug
V C rid On
Grid Off
Set Grid V alue
F ig u r e 15. A L /C A D G rid M e n u .
27
Phase Move View Delete Edit File Utility Debug
Create Wall
Add Wall To End
Add Wall To M iddle
Create
Create
Create
Create
D oor
W indow
O p en in g
Gable
Create Roof
Create Porch
F igu re 16. AL/CAD C reate M enu .
eh
I Mode Grid Create
Move View Delete Edit File Utility Debug
Layout
Layup
G enerate L/M
Redraw Screen
Draw Plans
F ig u r e 17. A L /C A D P h a se M e n u
28
Mode Grid Create Fhase
3 View Delete Biit file Utility Debug
M ove
M ove
M ove
M ove
A Wall
A D oor
A W ind ow
An O p en in g
F ig u re 18. AL/CAD M ove M enu.
!■ m
m
Mc)de Grid Create Phase Move
3 Delete Biit File Utility Debug
Swap Point Of V iew
Set Point Of V iew
F ig u re 19. AL/CAD V ie w M enu.
Mode Grid Create Phase Move View
Ba
■EH
Edh file UtiBty Debug
D elete
D elete
D elete
D elete
D elete
A Wall
A Door
A W indow
An O p en in g
A Cable
F ig u re 20. AL/CAD D e le te M enu
29
File Utility Debug
I Mode Grid Create Phase Move View Delete
JOB Record
PLAN R ecord
MISC R ecord
WALL R ecord
OPENING R ecord
INTERSECTION R ecord
BOX R ecord
GABLE R ecord
ROW R ecord
PIECE R ecord
CUT Record
F igu re 21. AL/CAD Edit M enu.
I Mode Grid Create Phase Move View Delete Edit
Utility Debug
D isplay Data F iles
Load Data File
Store Data File
F ig u r e 2 2 . A L /C A D F ile M e n u .
30
I Mode
Debug
Grid Create Phase Move View Delete Edit File
System User
D isplay Data
MS DOS
F ig u re 23. AL/CAD U tility M enu.
I Mode Grid Create Phase Move View Delete Edit Rle Utility
Set D eb u g Level
D isp lay On
D ebug D isp lay Off
VD ebug
F igu re 24. AL/CAD D eb u g M enu.
D uring the floor plan phase of A L /C A D , the user "draws" the various
walls th a t make up a house.
There are three methods th a t can be used:
C reate Wall, Add Wall To End, and A dd Wall To Middle.
to d raw a wall w ithout reference to any existing wall.
the C reate Wall option from the C reate Menu.
C reate Wall is used
The user first selects
Figure 25 shows the user
m aking this selection.
The user then selects the starting position by moving the mouse cursor to
the desired location on the screen and clicking (pressing and releasing) the
left mouse button.
The system begins a wall at this point and begins to
display the wall in "rubber band" mode.
This means th a t as the user moves
the mouse, the wall d raw in g expands and contracts to follow the cursor.
the upper left of the screen, another pop-up display shows the length of the
At
31
IB I_______
EU
A ir - L o c k /C A D
Phase
Move
View Delete Edit File Utility Debug
C itatc
I
C r e a t e W a ll
Add Wall To End
|a^
Add Wall To M iddle
Create
Create
Create
C reate
D oor
W indow
O p en in g
C able
Create Roof
Create Porch
F ig u re 25. S e le c tin g C reate W all O p tio n .
wall in feet, inches, and eighths of inch units.
and
the
wall
expands
constantly displayed.
and
contracts,
the
As the user moves the mouse,
cu rren t
length
of
the
wall
is
F igure 26 shows the user creating a wall in this way.
When the user has d raw n the wall to the desired length, the left mouse button
is again clicked to te rm in ate the creation of the new wall.
A fte r the wall has been draw n, the wall data is added to the data
stru c tu re and the complete data stru ctu re is displayed.
If a m istake is made,
the user can select the Delete Wall option from the Delete menu to delete the
wall just created.
I f a wall needs to be moved to a new location, the user
can select the Move Wall option from the Move menu.
The Add Wall To End selection is used to add a new wall to the end of
an existing wall.
This is the normal location to add a new wall.
selecting Add Wall To E nd, the user positions the cursor n ear the end of an
A fter
32
Air-Lock/CAD
m
Modg Grid Create Phase Move Vtov Delete Edit File Utility Debug
!Create WalH !CANCEL I
F igu re 26. C rea tin g A V e r tic a l W all.
existing wall.
The user clicks the left mouse button and a gravity field
algorithm draw s the cursor to the nearest existing end o f a wall.
wall is then assumed to be at right angles to the existing wall.
The new
The user uses
the ru b b er band display and the pop-up length display to help in selecting the
length of the added wall.
The Add Wall To M iddle selection is used to add a wall to the in terio r
area of an existing wall.
A fter moving the cursor near an existing wall, the
user clicks the left mouse button. A g rav ity field algorithm then draws the
cursor w ith in the confines of the nearest existing wall. A position display
33
F ig u re 27. P o s itio n in g To A M id d le W all.
showing the length between the c u rren t location of the cursor and the end of
the existing wall helps the user determ ine the proper location to add the wall
(See F igure 27).
designed
The le ft mouse button is clicked again, and the new wall is
in the same fashion
as the create wall method
F igure 28 shows the added wall in rubber band mode.
described above.
The user continues in
this fashion until all the walls for the house have been draw n.
is to add the
fro m
w indow and door openings to the building.
The next step
Windows are chosen
a set of s ta n d a rd sizes made by various m a n u fa c tu re rs.
A specific
m a n u f a c tu r e r ’s set of w indow s is stored in a supporting disk file. The user
34
F ig u re 28. A d d in g T he M id d le W all.
selects a m a n u fa c tu r e r
to get a display of possible w indow
sizes.
Upon
selecting a specific w indow , the needed rough opening sizes are provided to
the A L /C A D package.
These sizes are used to draw the iconic representation
of a w indow for the user.
wall.
The w indow can be positioned n e a r an appropriate
As the w indow nears a wall, a position display sim ilar to the Add Wall
To M iddle system is provided.
If the user moves the
w indow away from one
wall and n ear an o th er wall, the position display follows.
When the user is
satisfied w ith the location of the window , the left mouse button is clicked.
The w indow is d raw n at the ap p ro p ria te location in the flo o r plan and the
w indow opening record is added to the A L /C A D data structure.
V ertical
positioning of the w indow is adjusted d u rin g the elevation mode of operation.
35
F igure 29 shows a window being added to an existing wall in plan view.
A
sim ilar process is used to add any ad d itio n al window or door openings.
'
A ir - L o c k /C A D
Mode Grid Create Phase Move View Delete Edit File Utility Debug
.
10-6-0
#»
7-6-0
C ode
A6030
W idth
6 00
B
F igu re 29. A d d in g A W in d o w To A W all.
A t this point, the next phase is in itia ted
command.
by selecting the LA Y O U T
This command will cause all existing walls to be intersected and
intersection records to be added to the data structure.
to cover the normal corner extensions and
elevation mode.
The walls are extended
preparations are made for the
Elevation mode is selected to prepare for the fin a l two phases
of design. These are LA Y U P and List of M aterial generation.
most complex phase of AL/CA D .
Layup is the
To begin the layup phase the LAYUP
36
com m and is selected.
The A L /C A D system begins by ru n n in g w h a t is called a
"boxing" algorithm on each of the elevated walls. The boxing algorithm divides
the w all into separate boxes of log m aterial.
shape a n d contain no openings.
f o r in tra-b o x constraints.
These boxes are rectan g u lar in
The boxes can be spliced separately allowing
A set of rules is used to splice each box.
A fte r
splicing is complete, the box records, row records, piece records, and any
necessary cut records are added to the d ata structure.
D u rin g the splicing algorithm , w aste lists are m a in ta in e d by A L /C A D to
reduce the waste m aterial generated.
The preferred m ethod is to choose a
p a rtic u la r log length fro m the waste list.
The List of M aterials system is
in itia te d by selecting the L /M command. The L /M algorithm gathers and sorts
all the piece and cut records.
m a teria l is generated.
Id en tical pieces are counted and a list of
T he other com m ands provided by the user in terface are
used to enhance the design process.
A L /C A D D a ta Structure
The d a ta s tru c tu re used fo r A L /C A D needed to be extrem ely flexible in
order to h an d le the w ide range of house designs.
Some houses have m any
walls w ith a few openings, and some houses have many openings w ith a few
walls.
In order to conserve high speed memory, a complex linked-list d ata
s tru c tu re is used. The general high level stru c tu re is shown in F ig u re 30.
The highest level stru ctu re is a simple linked list o f job records.
The
job records contain d ata about the jobs currently being stored in the d ata
structure.
Each job record contains th e pointers to three sep arate linked lists
fo r P lan records. Miscellaneous records, an d Wall records. P lan records are
37
included fo r f u tu r e expansion into a u x ilia ry processing o f fo u n d a tio n plans,
m ain floor plans, second floor plans, ro o f plans, plum bing plans, electrical and
heating plans, an d other plan view data.
Miscellaneous records are used to
store any d a ta of a job specific n a tu re b u t global in scope.
T he wall records
contain the p e rtin e n t data fo r the design of walls w ith in a specific job.
wall record contains pointers to fiv e lin k ed lists.
records,
intersection
records, box records,
Each
These lists contain opening
gable records, a n d
row
records.
F ig u re 31 shows an in d iv id u a l wall record w ith the head a n d ta il pointers to
an opening lin k ed list.
These pointers allow the system to add and delete
records very quickly by positioning d irec tly to the end o f the list.
records
contain
d a ta
for
door,
w indow ,
fireplace
and
other
Opening
openings.
Intersection records contain d ata about every intersection betw een the current
wall a n d other walls.
splicing algorithm .
Box records co n tain data about the boxes used by the
G able records co n tain d ata on any gables (norm ally just
one) th a t exist on the c u rre n t wall.
R ow records contain d a ta on each row of
logs in the c u rre n t wall.
Each row record contains pointers to a linked list of piece records which
contain d a ta on each in d iv id u al piece of log material.
E ach piece record
contains pointers to a linked list o f cut records which co n tain d ata on any
special cuts w ith in the cu rre n t piece.
The purpose of this complex d a ta s tru ctu re is to p ro v id e an extremely
ad ap tab le structure.
This means th a t the m inim um high speed memory is
consum ed fo r each job.
I f a p a rtic u la r job has a lot of sh o rt ,walls w ith few
rows' an d few openings or if it contains a few long walls w ith m any rows and
m any openings, the stru c tu re will adapt. By storing all the d a ta f o r a current
38
START
Li
JOB REC t
I>
II
it
II
JOB REC n
REC 2
I
II
II
I P LA N
-I RECORD
I np
I P LA N
] RECORD
I
PLAN
MISC
RECORD
I
MI SC
RECORD
2
OPENING
RECORD
I
OPENING
RECORD
2
INTERSECT
RECORD
I
INTERSECT
RECORD
2
BOX
RECORD
I
RECORD
2
2
•••
! o p e n in g
' RECORD
no
• • •
BOX
GABLE
RECORD
I
•
PCE REC.I
( in t e r se c t
• RECORD
nl
BOX
* RECORD
mb
(g a b l e
IG A B L E
RECORD
2
^ R O W RECJ
J r q w rec .i
IM I S C
• RECORD
nm
> RECORD
I
ee—
ROW REC.k
• • • -►
pVAU.
ITW
CUT
RECORD
I
/
Z
PCE REC.]
PCE RECJ
<1
REC
"fl
CUT
r ec o r d
2
F ig u re 30. AL/CAD Data S tru ctu re.
Z
/
/
/
/
/
/
!
7
39
job in high speed memory, the response time to the user d u rin g m odifications
can be minimized.
Data Fields
Head Pointer
Tail P ointer
OPENING Record
WALL R ecord
OPENING Record
Parent P ointer
OPENING Record
F igu re 31. A W all R eco rd A nd O p e n in g List.
40
A t the highest level are job records.
reco rd are shown in T able 3.
s tru c tu re
records are
gathered
The in tern al fields o f the job
The algorithm s th a t m anipulate these data
into one place to allow
easy m odification
w ith o u t hazardous side effects.
T able 3. Job Record.
N am e
id num ber
job_name
job date
n e x t_job
w all head
w a ll_tail
p la n _head
plan tail
misc_head
misc_tail
Type
D escription
integer
string
3 integers
pointer
pointer
pointer
pointer
pointer
pointer
pointer
Job R ecord Id e n tific a tio n N um ber
Job Name
Date of the C u rren t Job
Points to the next job record
Points to the head of the wall list
Points to the tail of the wall list
Points to the head of the plan list
Points to the tail of the plan list
Points to the head of the misc. list
Points to the tail of the misc. list
A plan record is shown in Table 4 an d a miscellaneous record is shown
in T able 5.
A wall record is shown in T able 6.
extensive record in the d a ta structure.
The wall record is the most
A w all record contains d ata concerning
both the graphical location in screen coordinates and the actu a l location in
logical coordinates f o r the separate fe a tu re s of the wall.
T he size (diam eter)
of the logs, the n u m ber of rows, and the height and w id th of the wall are
stored.
The w all
record
contains a p o in ter
to its p a re n t job record
f a c ilita te gathering c u rre n t job d ata w hile processing a w all record.
to
The wall
record contains the heads and tails of fiv e other lists: openings, intersections,
boxes, gables, and rows.
An opening record is shown in T able 7.
contains d a ta about a specific log opening in the c u rre n t wall.
This record
A log opening
is used fo r a door, w indow , fireplace, pass-through, arch or f o r any other need
in th e house.
The w id th and height of the opening and the distance fro m the
4]
flo o r are provided.
O pening d ata is used m inim ally in d raw in g floor plans.
The opening d ata is used extensively in draw in g elevations, an d in generating
row records, box records, and piece records.
T able 4. P lan Record.
N am e
id _num ber
job _p aren t
n e x t_plan
Type
D escription
integer
pointer
pointer
Plan R ecord Id e n tific a tio n N um ber
Points to the Job p aren t record
Points to the next Plan record
T able 5. Miscellaneous Record.
N am e
id _num ber
job _p aren t
n e x t_misc
Type
integer
pointer
' pointer
D escription
Misc R ecord Id e n tific a tio n N um ber
Points to the Job p aren t record
Points to the next Misc record
An in d iv id u a l intersection record shown in Table 8 contains this w all’s
view of an intersection between this w all and an o th er wall.
The height in
feet, inches, an d eighths of inch as well as the top and bottom row numbers
are stored.
A box record is shown in Table 9.
This record contains in fo rm atio n
a b o u t the "box" generated by the boxing algorithm d u rin g the layup phase.
T h e "box" is a re c ta n g u la r piece of the w all th a t has no openings in it. The
location of the box on this wall is also stored.
T able. 10.
A gable record is shown in
42
T able 6. Wall Record.
N am e
id _num ber
nam e
g_origin
g_endw all
direction
g_scale
origin
endw all
w id th
height
num row
logsize
job_p aren t
n e x t_wall
box_head
box tail
in te r head
in te r_tail
open_head
open_tail
gable_head
gable_tail
row _head
row _tail
Type
D escription
integer
string
2 integers
2 integers
integer
2 integers
3 integers
3 integers
integer
integer
integer
integer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
Wall Record Id e n tific a tio n N um ber
Wall nam e (e.g. "ab")
O rigin of wall in screen coordinates.
E nd of wall in screen coordinates
Wall direction
G raphics scale
O rigin of wall in logical coordinates
End of wall in logical coordinates
Width of wall in logical coordinates
H eight of wall in logical coordinates
N um ber of rows in wall
D iam eter of logs
Points to the Job p aren t record
Points to the next Wall record
Points to the head of the box list
Points to the tail of the box list
Points to the head of the intersection list
Points to the tail of the intersection list
Points to the head of the opening list
Points to the tail of the opening list
Points to the head of the gable list
Points to the tail of the gable list
Points to the head of the row list
Points to the tail of the row list
T able 7. O pening Record.
N am e
id num ber
g _ o r ig i n
g_w id th
g _ h eig h t
g_to_floor
origin
w id th
height
to_floor
w all_p a re n t
n e x t_open
Type
D escription
integer
2 integers
integer
integer
integer
3 integers
integer
integer
integer
pointer
pointer
Opening Record Id e n tific a tio n N um ber
O rigin of opening in screen coordinates
Width of opening in screen coordinates
H eight of opening in screen coordinates
Distance fr o m opening to flo o r
O rigin of opening in logical coordinates
Width of "opening in logical coordinates
H eight of opening in logical coordinates
Distance fro m opening to flo o r
Points to the Wall p aren t record
Points to the next Opening record
43
T able 8. Intersection Record.
N am e
id _nu m b e r
g_center
bot_row
top_row
height
center
w all_p aren t
n e x t_in te r
Type
D escription
integer
2 integers
integer
integer
integer
integer
pointer
pointer
Intersection Record Id e n tific a tio n N um ber
Location of center bottom o f intersection
Bottom row num ber
Top row num ber
H eight of intersection
Location of center bottom
Points to the Wall p aren t record
Points to the next Intersection record
T ab le 9. Box Record.
N am e
id num ber
g_origin
g_w id th
g_height
w id th
height
box_status
w all_p a re n t
n e x t_box
Type
D escription
integer
2 integers
integer
integer
integer
integer
integer
pointer
pointer
Box R ecord Id e n tific a tio n N um ber
O rigin o f box in screen coordinates
Width of box in screen coordinates
H eight of box in screen coordinates
Width of box in logical coordinates
H eight of box in logical coordinates
Box status
Points to the Wall p aren t record
Points to the next Box record
T able 10. Gable Record.
N am e
id _num ber
g_origin
g_w id th
g _ h eig h t
origin
pitch
w all_p aren t
n e x t_gable
Type
D escription
integer
2 integers
integer
integer
3 integers
integer
pointer
pointer
G able R ecord Id e n tific a tio n N um ber
O rigin of gable in screen coordinates
Width of gable in screen coordinates
H eight of gable in screen coordinates
O rigin of gable in logical coordinates
Pitch nu m b e r (4 fo r 4-12, 3 f o r 3-12, etc.)
Points to the Wall p aren t record
Points to the next Gable record
This record contains d ata fo r the gable on this wall if needed.
In very
special cases, there may be more th a n one gable associated w ith one wall.
In
44
this case, th e re would be more th a n one gable record joined together into a
linked list.
A row record is shown in T able 11.
This record contains d ata th a t is
specific to a p a rtic u la r row of pieces in this wall.
The length of the row and
the size of the row in graphical coordinates are stored.
R ow records contain
the heads an d tail f o r a linked list of piece records.
A piece record is shown in T able 12.
This is where the actu al data fo r a
specific log piece is stored.
Table 11. R ow Record.
N am e
id num ber
g_w id th
g_height
g_origin
w id th
height
origin
w all_p aren t
n ext row
piece_head
piece_tail
Type
D escription
integer
integer
integer
2 integers
integer
integer
3 integers
pointer
pointer
pointer
pointer
Row R eco rd Id en tifica tio n N u m b er
Width of row in screen coordinates
H eight of row in screen coordinates
O rigin o f row in screen coordinates
Width of row in logical coordinates
H eight o f row in logical coordinates
O rigin o f row in logical coordinates
Points to Wall parent record
Points to next Row record
Points to the head of the Piece list
Points to the tail of the Piece list
T able 12. Piece Record.
N am e
id num ber
g_origin
g_w id th
g _ h eig h t
origin
length
a u x _length
style
row _p a re n t
n e x t_piece
cut head
c u t_tail
Type
D escription
integer
2 integers
integer
integer
3 integers
integer
integer
string
pointer
pointer
pointer
pointer
Piece R ecord Id en tifica tio n N u m b er
O rigin of piece in screen coordinates
Width of piece in screen coordinates
H eight of piece in screen coordinates
O rigin o f piece in logical coordinates
Length of piece in logical coordinates
Length of auxiliary cut
Style code (e.g. "c" for corner)
Points to the Row p aren t record
Points to the next piece record
Points to th e head of the c u t list
Points to the tail of the c u t list
45
The list of m aterials portion of A L /C A D gathers the piece records and
counts the nu m b e r of pieces th a t are identical.
The style o f the piece and
any norm al cut lengths are stored in the piece record.
I f a piece contains
more th a n one cut, these are stored in the linked list o f cut records attached
to this piece.
These special cuts occur in almost every job b u t the num ber of
these special logs is usually quite small.
A cut record is shown in Table 13.
This record contains d a ta fo r a special cut in the cu rre n t log piece.
T able 13. C ut Record.
N am e
id _num ber
g _ le n g th
length
c_style
piece_p aren t
n e x t_cut
Type
D escription
integer
integer
integer
string
pointer
pointer
C ut R ecord Id e n tific a tio n N u m b er
Length o f cut in screen coordinates
Length o f cut in logical coordinates
Style code f o r cut
Points to the Piece p aren t record
Points to the next cut record
The d a ta stru c tu re described above is complex but w orks 'very well.
results
c o n firm
the
design
goal
of
fast
com bination o f walls, openings, and rows.
set o f algorithm s w ere developed.
d ata
access
to
a
F or each type of record described above,
T able 14. A L /C A D D ata Structure M an ip u latio n Algorithms.
M akeRecord
In itR eco rd
D isplayR ecord
F ileInR ecord
F ileO u tR eco rd
A ddR ecord
D eleteR ecord
C hangeR ecord
ranging
To m anipulate the d ata structure, a
the set of algorithm s shown in Table 14 was w ritten.
A lgorithm
w ide
The
D escription
Create the record.
In itialize the fields of the record.
D isplay the record on the screen.
R ead the data for a record fro m a file.
Write a copy of the d a ta fro m a record to a file.
A dd the record to the d a ta structure.
Delete the record fro m the d ata structure.
E d it a record in the d ata structure.
46
The M akeR ecord algorithm requests a correctly sized m em ory segment
fro m the mem ory m anager.
d a ta fields to zero.
NULL.
The In itR eco rd algorithm initializes all the integer
T he head, tail, and p a r e n t pointer fields are initia lize d to
A ny string fields are initialized to blanks and then the end of string
in d ic a to r (a null) is placed at the firs t location.
generates a dialogue w indow type of display.
The D isplayR ecord algorithm
(For in fo rm a tio n on the w indow
system see the M icrosoft Windows D evelopm ent Tool K it M anual.)
The various
fields in the record are id e n tifie d and th e ir c u rre n t values are displayed.
The
F ile In R eco rd an d F ileO utR ecord algorithm s perm it the system to save and
restore a d a ta file in a text fo rm at th a t contains the d a ta structure.
This
allows f o r the backup of a c u rren t d a ta s tru c tu re or fo r saving a s tru ctu re to
w ork on at a la ter time.
The A ddR ecord algorithm adds a record to the tail
of the correct linked list.
If the list is em pty, it starts a new linked list.
The D eleteR ecord alg o rith m deletes a record fro m the d a ta structure.
C hangeR ecord
a lg o rith m
generates
a n o th e r
dialogue
w indow
allowing
The
the
operator to change any fields w ith in a record.
A L /C A D Boxing A lgorithm
Each w all w hen shown in elevation view will contain fr o m zero to any
nu m b e r of openings a n d two or more intersections w ith other walls.
boxing algorithm separates the wall into one or more boxes.
The
A box is a p a rt
of the wall th a t is solid wood and contains either no in tersections or a p a rt
o f an intersection.
e n tire wall.
boxes.
I f the wall contained no openings, the box w ould be the
I f the w all contained one w indow , the algorithm w ould fin d fo u r
F igure 32 shows such a w all separated into the f o u r boxes by the
47
boxing algorithm . The data for these boxes is stored in the box records of the
d ata structure.
ED
|9 |
A ir- L o c k Z C A D
Mode Grid Create Phase Move View Delete Edit File UHBty Debug
B oi I
B oi 2
B oi 3
B oi 4
H
F ig u re 32. Four B o x es In An E lev a tio n .
The boxing algorithm starts at the lower left of a wall and moves to the
right u n til reaching either an end of wall or the left edge o f an opening. This
defines the horizontal dim ension of the box. The horizontal dim ension would be
along the X or Y axis depending on the direction of the wall in plan view.
H orizontal walls in plan view are placed along the X axis in elevation view.
V ertical walls in plan view are placed along the Y axis in
elevation view.
Two lines are projected up (in the positive Z axis) until they reach the top of
48
the wall.
T he d a ta on all openings contained completely or p a rtia lly between
these two lines are g ath ered into a list and sorted to f in d the lowest (in the
Z axis) bottom of opening.
This locates the top of the box.
The values
calculated are then stored in a new box record.
The algorithm then checks to see i f the rig h t han d edge o f this box is an
end o f a wall or the le ft edge of an opening.
I f it is the le ft edge of an
opening, the nex t box origin is started at the bottom rig h t of th a t opening,
a n d the operation described above is repeated. This process continues until the
rig h t edge o f the w all is reached.
The algorithm then moves to the top le ft
of the f ir s t box on this wall and repeats its operation.
scan is repeated u n til all the boxes are found.
boxes com pletely covers the length o f the
This le ft to right
When the top of one or more
wall at its top, the algorithm
term inates.
T he splicing algorithm th a t is described in the next section depends on
th e boxing
alg o rith m
to divide the e n tire
elevation into
small boxes, an
exam ple of a d ivide a n d conquer technique.
A L /C A D Splicing A lgorithm
T here are num erous types of logs p roduced by the A ir-Lock m a n u fa c tu rin g
process.
Some o f these are standard logs, corner logs, h a l f cope logs, and
s ta n d a r d crossover logs.
Standard logs are hollow com pletely through th e ir
length and have a vertical groove cut in each end to fa c ilita te splicing.
C orner logs are solid on one end and have a cope cut n e a r the solid end.
This cope cut is a h a lf ro u n d notch c u t to allow the logs to interlock at the
corner intersection betw een two walls.
H a lf cope logs are sim ilar to a corner
49
log th a t was cut o f f exactly h a lf way th ro u g h the cope.
b lin d intersection betw een one wall and another.
This cut allows fo r a
S tandard crossover logs are
sim ilar to s ta n d a rd logs b u t have a cope cut somewhere along th e ir length to
allow the corner log of an intersecting wall to pass over.
These are only fo u r
o f the twelve d if f e r e n t styles produced by the A ir-Lock factory.
The A L /C A D
splicing algorithm calculates the style a n d length of every log piece needed to
fill an in d iv id u a l box.
Splices w eaken the s tru ctu re of a log wall.
The tongue cut longitudinally
in the bottom of a log an d the groove cu t longitudinally in the top of a log
m ake up fo r the loss of s tru ctu re by spanning the splice in a row both above
and below the splice.
strong
construction.
followed.
Also, the in terlocking corners provide an extremely
However,
in splicing
a wall
various
rules
For instance, no splices may be m ade over an opening.
must be
No splice
m ay be m ade in one row th a t is directly beneath a splice in the row above it.
No splice may be m ade w ith in an intersection.
T he box d eterm in e d by the boxing alg o rith m is passed to the splicing
algorithm .
Since th e re can be an in te rfa c e between two boxes, constraints
concerning splices m ust be passed fro m one box to another.
T he splicing
alg o rith m m ain tain s a list o f these co nstraints u n til all the boxes fro m a wall
h av e been processed.
D a ta on waste is also m aintained.
Waste is d efin e d as
th a t portion of an 8-3-0 raw m aterial log le ft over a f te r a piece is removed.
F or example, if the splicing algorithm needs a piece th a t is 6-3-0 in length,
then the waste w ould be 2-0-0.
T he r a w m aterial processed by the fin a l
cu ttin g machines in the A ir-Lock fa c to ry is very expensive.
desired to reduce the f in a l am ount of waste.
T h erefo re, it is
50
As the splicing algorithm processes boxes, it uses a set of strategy tables,
a set of rules, and the waste data to m ake the choices required.
For example,
if the box is less th a n 8-3-0 long and if there are no intersections in the wall
a n d i f the le ft and rig h t edges of the box are constrained by openings, then
s ta n d a rd logs are d e fin e d of a length equal to the box w idth.
However, if the
box is constrained on the le ft by the beginning of a wall and constrained on
the rig h t by an opening, and if there is only one intersection in the box, and
if the intersection is 1-0-0 fro m the le ft edge of the box, a n d if the box is
less th a n 8-3-0 in w idth, then simple corner logs are d e fin e d of a length equal
to the box w idth.
F or boxes longer th a n 8-3-0 the process is com plicated by splices.
A
ru le stated above requires th a t no splices be in adjoining rows at the same
location.
This produces w h at is sometimes called the zipper effect.
of rows are d efin e d th a t interleave one another.
Two sets
F igure 33 shows a box of
this type a f te r the splicing algorithm is finished.
The strategy tables a n d waste d ata are then used to m ake choices as to
splice location.
T hey
contain
The strategy tables produce a set of rules to use for splicing.
various
length
values
fo r
d if f e r e n t
box
lengths
constraints. Each strategy has associated w ith it a p rio rity value.
and
box
All possible
strategies are gathered a n d sorted by p rio rity and the highest prio rity is
selected.
When equal priorities are fo u n d , the contention is resolved using the
w aste data.
The splicing alg o rith m continues w ith all the boxes of one w all until th a t
wall is finished.
It then continues w ith the boxes of all o th e r walls until all
the boxes in a house are finished.
T he splicing algorithm w ill always be u n d er
51
f u r th e r
developm ent since the constant
need
to reduce waste will prom pt
con tin u al adjustm ents in the rules, strategy tables, and waste algorithms.
I
I
I
I 3-6-0 C
I
I
I
I 3-6-0 C
I
I
I
I 3-6-0 C
I
I
3-6-0 C I
6-00 C
6-0-0 C
3-6-0 C
6-0-0 C
6-0-0 C
6-0-0 C
3-6-0 C
6-0-0 C
6-0-0 C
3-6-0 C
9-6-0
F ig u re 33. S p lic in g O n e B ox.
I
I
I
I
I
I
I
I
I
I
I
I
I
52
CHAPTER 4
CONCLUSIONS
The m ajor goal of this thesis project was to d eterm in e the possibility of
using a com puter to design A ir-Lock log houses.
This goal was achieved.
A
design package was developed w hich dem onstrated th a t the in te ra c tiv e n atu re
of
a
w indow ing
program .
system
greatly
enhances
the
frien d lin ess
of
a com puter
The mouse pointing device allowed even an u n in itia te d user to
quickly m aster the developm ent process.
The sections th a t follow describe
in d iv id u a l conclusions about Windows, the Windows D evelopm ent Tool K it, and
the A L /C A D developm ent system.
E valu atio n of M icrosoft Windows
M icrosoft Windows w orked exceedingly well during my project.
Windows
is essentially a m ulti-tasking operating system w ith a h ig h ly graphics user
in terface.
The screen representations w ere clear and
easy to use.
The
response tim e was very fa s t and the mouse track in g was sure a n d positive.
I
was able to copy files betw een sub directories and m a n ip u late ru n images w ith
ease.
T he
docum entation
supplied was clear and complete.
The sample
packages were easy to ru n and dem onstrated the m ain f e a tu r e s of Windows
well.
This package w ould be a very reasonably priced a d d itio n to any IBM-PC
■
or clone.
I'
53
E v alu atio n of Windows D evelopm ent Tool K it
The w indow s tool k it used was M icro so ft Windows D evelopm ent Tool K it
V ersion 1.04.
it.
I fo u n d this package w orked well as soon as I was able to learn
A f te r over 24 years o f experience w ith com puter h a rd w a re and softw are, I
am able to u n d e rs ta n d most softw are or h a rd w a re docu m en tatio n and make use
of new products w ith a m inim um of referen c e to the docum entation.
k it package was d iffe re n t.
This tool
It took over one h u n d red a n d tw enty hours of
study before I was able to begin to utilize this package effectively.
I f I had
not been com m itted so strongly to IBM com patibility, I w ould have not used
this package.
T h ere were th ree complete m anuals of docum entation and six complete
sample applications delivered w ith the tool kit.
the exam ples w ith o u t any problems.
I was able to compile and ru n
H owever, in try in g to develop my own
application, I began to ru n in to .m a n y problems. The docum entation was poorly
organized and it was extrem ely d if f i c u lt to f in d w here the item you needed
was located.
scratch.
T here was no good tu to ria l section th a t helped you start fro m
L im itations w ith using C began to appear.
F or exam ple, you cannot
use the C lib ra ry f u n c tio n fscanf. the m ain in p u t fu n ctio n , w ith MS Windows.
T he am ount of source code needed to do even a simple application
w indow was extensive.
I had problems w ith the various m em ory models in C
needed by the 80286 cpu system.
I was never able to get the large memory
model version of A L /C A D run n in g and h av e only been successful because the
A L /C A D package c u rre n tly fits in a small memory model.
Since MS Windows has control of the keyboard and screen, debugging was
d if f ic u lt.
A separate term inal was connected to the a u x ilia ry port on the
54
com puter and a simple symbolic debugger was used. However, I was never able
to a rra n g e the c o n fig u ra tio n of the system so th a t I could enter commands
fro m this separate term inal.
The only d a ta I had d u rin g the m any initial
crashes w ere the names of the fu n ctio n s th a t were on the ru n tim e stack at
the
tim e
of
the
hexadecim al code.
manuals.
crash.
E rror
messages
produced
w ere
a
fo u r
digit
This code was then in te rp re te d by re fe re n c e to one of the
H owever, a few of the codes presented on the te rm in al were not
listed in the m a n u al and I had to use other means to determ ine my error.
On the positive side, the docum entation was mostly correct.
I fo u n d th a t
the fu n ctio n s w orked as described an d param eters were correctly listed.
large
problem
was
fin d in g
the
correct
section
of
the
m anual.
If
The
the
docu m en tatio n w ere b etter organized, a n d a tutorial section were added, I
could recom m end this package.
It did save me time at the end of the project
w hen I was redesigning the screen display.
However, the tim e saved has not
yet m ade up f o r the tim e lost in learning th e package.
E valuation of A L /C A D
T he prototype ADS system proved th a t a com puter p ro g ram could be
w ritte n to do log house design.
project.
This was the major objective of the thesis
H owever, the prototype ADS user in te rfa c e was not very easy to use.
T he T e k tro n ix 4006-1 storage screen te rm in a l was dim an d h a rd to read in
norm al o ffic e light.
The user com m ands were understood well by a person
f a m ilia r w ith com puters, but the avera g e o ffice w orker d id not have the
necessary b ack ground to utilize the package effectively.
Since it was so h ard
to use the com m ands and so h ard to read the screen, th e o ffic e d raftsm a n
n ever
spent
enough
time
to
adeq u a tely
learn
the
package.
The
boxing
55
algorithm failed approxim ately ten per-cent of the time leaving large portions
of the house design unspliced.
This w ould leave m any needed pieces of log
m a te ria l out of the f in a l list of materials.
The f in a l A L /C A D im plem entation alleviated all of the problems w ith the
prototype.
T he screen was now b rig h t an d easy to read.
T he pop-up menus
an d the mouse m ade com m and selection very easy for the o f f ic e staff.
There
is still a need to u n d e rs ta n d the A ir-Lock log m a n u fa c tu rin g process, but
anyone who does know the A ir-Lock system can learn to use the A L /C A D
system in a few days.
The m ajor d isad v an tag e of t h e . A L /C A D
package is in handling the
"special cases" th a t alw ays occur in the design of a real log house.
The
A L /C A D package does not allow f o r easy m odifications o f specific splices.
This f e a tu r e is pla n n ed f o r a f u tu r e release of the package.
The list of m a te ria l generated by A L /C A D agreed fa v o r a b ly w ith w hat a
hu m a n w ould generate.
The waste red u ctio n results were ad eq u a te, but f u r th e r
developm ent in this area is indicated.
A L /C A D proved the applicability of
using com puter technology in designing log homes.
56
SELECTED BIB LIO G R A PH Y
P rogram m ing R efere n ce M anuals
"CodeV iew an d C L anguage R eferen ce M anual." M ICROSO FT C COM PILER.
M icroso ft C orp o ratio n . 1986.
"MS-DOS U ser’s R eference." HP9000 SERIES300. H ew lett P a c k a rd C orporation.
1987.
"P rogram m er’s R eference." M ICROSOFT WINDOWS SOFTW ARE D EV ELO PM ENT
K IT . M icrosoft C o rp o ratio n . 1986.
"Q uick R e fere n ce/P ro g ram m in g G u id e/A p p lic a tio n Style G uide." M ICROSOFT
WINDOWS SOFTW ARE D EV ELO PM EN T K IT . M icrosoft C o rp o ratio n . 1986.
"R un-T im e L ib ra ry R e fe re n c e M anual." M ICRO SO FT C C O M PILER. M icrosoft
C orporatio n . 1986.
"U p d a te/P ro g ram m er’s U tility Guide." M ICROSO FT
D EV ELO PM EN T K IT . M icrosoft C orporation. 1986.
WINDOWS SOFTWARE
"U ser’s Guide." M IC R O SO FT MACRO ASSEMBLER. M icrosoft C orporation. 1986.
"U ser’s Guide." M IC R O SO FT MOUSE. M icrosoft C orporation. 1986.
"U ser’s Guide." M IC R O SO FT WINDOWS, D ESK TO P A PPLIC A TIO N S, WRITE, AND '
P A IN T . M icrosoft C orp o ratio n . 1987.
"Users M anual." M IC R O SO FT C COM PILER. M icrosoft C o rp o ratio n . 1986.
"U sing th e DOS Coprocessor." HP9000 SERIES300. H ew lett P a c k a rd C orporation.
1987.
B irns, P eter; Brow n, P atric k ; and M uster, Jo h n C. "U nix F o r People." P ren ticeH all, Inc., 1985.
C h ristian , K aare. "The U n ix O perating System." John Wiley & Sons, 1983.
G eary, M ichael. "M icrosoft Windows 2.0: M ajor E n h an cem en ts
Control." M IC R O SO FT SYSTEMS JO U R N A L . (July 1987) 19-36.
H oughton, R aym ond C. Jr. "Online H elp Systems: A Conspectus",
CO M M U NICA TIO N S O F TH E ACM. (F eb ru ary .1984) 126-133.
O ffe r More
57
Jam sa, K ris. "DOS T he C om plete R eference." O sborne M cG raw -H ill. 1987.
K e rn ig h a n , B rian W. an d R itch ie, D ennis M. "The C P rogram m ing Language."
P ren tice-H all, Inc. 1978.
K elley, Al. an d Pohl, Ira. "A Book On C." B en jam in/C um m ings Publishing
C om pany, Inc. 1984.
O lsen, D an R. Jr. "Pushdow n A utom ata fo r U ser In te rfa c e M anagem ent." ACM
TRA N SA C TIO N S ON GRAPHICS. (July 1984) 177-203.
S childt, H erb ert. " A rtific ia l In tellig en ce U sing C." O sborne M cG raw -H ill. 1987.
W aite, M itchell; M artin , D onald; an d
H ow ard W. Sams & Co., Inc., 1983.
P ra ta ,
Stephen. "U nix
P rim er
P lu s "
Wilson, Lynw ood. "R ule-Based P rogram m ing in C." A l E X P E R T 2 (A ugust 1987)
15-21.
MONTANA STATE UNIVERSITY LIBRARIES
3 1762 10021532 4
Download