Note:  The module suite came to the IAC as four modules in one directory:
		cabinet maker
		extruder
		grid_generator
		taperer
       Due to the current structure of the IAC's directories, this has
       been split into 4 separate directories on the site.   However,
       a compressed tar archive of all 4 mods is included with each
       of the directories as wood_mod_suite.tar.Z.

       Also note that the images mentioned below have been stored a single
       time on the ftp site, in the directory at avs.ncsc.org called
       sample_data/avs_data/woodworking_images.


		    AVS Woodworker's Module Suite

This directory contains source codes, man pages, and sample data sets
and networks for a set of four AVS modules which can be used to design
simple woodworking projects.  For more information on the purpose of
the project, please read the file called "Poster_Session" and the man
pages for each module.  The four modules are: 

	cm - cabinet maker - generates structures made of boxes
	taper - taperer - generates structures made of tapered boxes
	extruder - creates capped, extruded tubes from lists of X/Y pairs
	grid_gen - creates measured grids so that accurate models can
		be constructed

Module and Source Files:
   Makefile	- Makefile for all the modules in this directory
   cm.c	 	- source code for the CABINET MAKER module
   cm.txt	- man page for CABINET MAKER
   extruder.c	- source code for EXTRUDER module
   extruder.txt	- man page for EXTRUDER module
   grid_gen.c	- source code for GRID_GENERATOR module
   grid_gen.txt	- man page for GRID_GENERATOR module
   taper.c	- source code for TAPERER module
   taper.txt	- man page for TAPERER module
   circle.c	- generates a circular PCF file for EXTRUDER
   ellipse.c	- generates a semi-elliptical PCF file for EXTRUDER

Examples:
   README	- this file
   Poster_Session - text of the AVS93 Poster Session describing this project 

   bed.net	- sample network using all the modules
   bed.cabinet	- CABINET MAKER input file (used by bed.net)
   head.pcf	- EXTRUDER input file (used by bed.net)
   posts.taper	- TAPERER input file (used by bed.net)

   music.cabinet - CABINET MAKER input file 
   puzzle.cabinet - CABINET MAKER input file 
   table.cabinet - CABINET MAKER input file 
   table.net	 - sample network  


Texture Map Wood Images:
   oak.x.Z
   pine.x.Z	
   plywood.x.Z	
   walnut.x.Z	
   wide_grain.x.Z	 
NAME:
        cabinet maker - create models constructed of boxes

AUTHOR:
        Larry Gelberg, Advanced Visual Systems, Inc.

SUMMARY:
        Name        cabinet maker
        Type        Input
        Inputs      NONE
        Outputs     output - geom

        Parameters
        Name        Type               Default       Min/Max/Choices
        board       islider                0         0       50
        active      toggle               off         off     on
        width       typein_real        48.00         Unbounded
        height      typein_real         8.00         Unbounded
        depth       typein_real         0.75         Unbounded
        x           typein_real         0.00         Unbounded
        y           typein_real         0.00         Unbounded
        z           typein_real         0.00         Unbounded
        rot x       typein_real         0.00         Unbounded
        rot y       typein_real         0.00         Unbounded
        rot z       typein_real         0.00         Unbounded
        color       radio_buttons      white         white:random:wood
        Board Feet  text
        Source_File browser
        read_write  radio_buttons      write         read:write

DESCRIPTION:
This module creates geometries which are collections of boxes.  This
is useful for simulating furniture since many types of furniture can
be constructed out of rectilinear boards which can be represented as
boxes.  

The basic way you construct a piece of furniture is to:
        (1) select a board number
        (2) turn it on by hitting the 'active' button
        (3) set its dimensions
        (4) set the translation and rotation values to position it
                properly
        (5) once all the boards have been specified, write out the
file with a .cabinet suffix.  

This module has a number of features: 
        * You can edit a .cabinet file and read the entire structure in. 
        * There are several coloring options: white, random, and
                wood-like (pseudo-random colors restricted to woody hues)
        * UV normals are generated for supporting texture mapping
        * It computes board-feet based on the volume of all the active
                boards

PARAMETERS:
board (islider)
This is the slider that selects which board you are currently editing.
You can select up to 50 boards to edit.

active (toggle)
This is the toggle which is used to 'turn boards on' (activate them).
To create a new board, you must first select a new board number and
then 'activate' it.  You can deactivate previously activated boards.

width, height, depth (typein_real)
The default board is 4 feet by 8 inches by 3/4 inch.  However, each of
the widths, heights, and depths can be individually specified on a
per-board basis.

x, y, z (typein_real)
These are the translation factors added onto the lower, left hand, back
corner of each board to position it in space.

rot x, rot y, rot z (typein_real)
These are the rotations which can be applied to each board to create
angled boards.  It may be useful, for instance, to describe a board as
being 10x6x1 and then rotate 90 around Z rather than describing the
board as being 6x10x1.

color (choice of white:random:wood)
When white, the object created can be colored using the property
editor in the geom viewer. Otherwise colors are selected for each
board.  The 'random' choice produces dramatically different,
non-natural colors.  This is useful for seeing each board
independently.  The 'wood' option limits the randomly chosen colors to
be 'wood-like'. 

Board Feet (text) 
Lumber is purchased in a quantity called Board Feet which is 12 inches
by 12 inches by 1 inch of wood.  By computing the volume of wood in a
project (in cubic inches) and dividing by 144, the number of
board-feet can be displayed.  Typically, an additional 25% is added on
to accommodate irregularities in the wood, layout problems, and
mistakes. This is a 'display only' field and cannot be modified.

Source_File (browser)
This is a file browser which is used to specify which file the cabinet
file should be written to or read from.

read_write (radio_buttons)
This toggle determines whether the Source_File browser is used to
specify the file as one which will be written or read.  

OUTPUTS:
There is only one output - a geom which is a single object containing
all the boards specified by this instance of the module.


EXAMPLE NETWORKS:
        cabinet_maker
              | 
        geometry viewer

SEE ALSO:
This is one of a suite of four modules which have been developed to
facilitate woodworking design.  These modules are:
        CABINET MAKER
        TAPERER
        EXTRUDER
        GRID_GENERATOR

The module TAPERER is nearly identical to CABINET MAKER except that
you can specify a starting width and and ending width thus effecting a
'taper'

The module EXTRUDER is used to create extruded, possibly capped,
shapes from 'profile curve files' (X-Y coordinate lists)

The module GRID_GENERATOR generates an English measurement grid with
optional markings in feet, inches, and sub-inches.  This is useful for
validating the dimensions of the structure or taking measurments off a
geometry.