Generated from ./ with ROBODoc v4.99.8 on Mon Mar 27 10:44:28 2006

TABLE OF CONTENTS

1. README/Layers

[top]

NAME

Layers -- Varkon General Custom Commands [Layers.txt]

DESCRIPTION

These Varkon user commands set-up standard linework configurations. The color code is the standard AutoCAD color code (Both ACAD & Varkon colors are shown. The linework setup is:

    *Part Name - Line Type   - VarkColor/ACadClr/#  -WIDTH/# - lFONT#   
    *--------------------------------------------------------------------
    *cns()..   - Construction     -Red/Yellow/2      -0.10/1  - Contin/0 
    *ifc()     - In Function      -DkBlue/Black/7    -0.35/4  - Contin/0 
    *ofc()     - Out of Function  -LtBlue/Same/4     -0.25/3  - Contin/0
    *cmp()     - Component        -DkRed/DkBlue/5    -0.35/4  - Contin/0 
    *asy()     - Assembly         -Black/Red/1       -0.35/4  - Contin/0 
    *sas()     - Sub-Assembly     -DkGreen/Magenta/6 -0.35/4  - Contin/0 
    *ssa()     - Sub-Sub-Assembly -Brown/Grey/8      -0.35/4  - Contin/0 
    *pce()     - Piece            -LtGreen/Same/3    -0.35/4  - Contin/0 

The following commands draw specific lines and set up three sizes of text:

    *Part Name   - Level-Name/#      - Color/#      -WIDTH/# -lFONT#   
    *----------------------------------------------------------------------
    *BdrLn(+)   - Border           -LtGreen/Same/3  -0.50/5  -Contin/0 
    *DshLn(+)   - Dashed lines     -LtBlue/Same/4   -0.15/2  -Dashed/1 
    *CtrLn(+)   - Center lines     -LtGreen/Same/3  -0.10/1  -CL/2 
    *DmnLn(+)   - Dimensions       -Black/Red/1     -0.25/3  -Contin/0 
    *xxTxt(#)   - Text             -Black/Red/1     -0.35/4  -Contin/0 

Note: The BdrLn(), DmnLn(), and xxTxt() modules are unimplemented at this time.

These modules control the line characteristics of all subsequent Varkon user linework commands until another of the above commands is executed.

Layer names and ON/OFF status are controlled by the LevelInit() and LevelSet() modules. Please see those commands for layer configuration.

Under normal usage all linework is placed in a construction layer specified using 'LevelSet()' and that layer is kept turned 'OFF'. Line work to be displayed is placed in other layers using 'LevelSet()' and turned 'ON' or 'OFF' as the user desires. The above modules allow line characteristics to be easily controlled.

1.1. Layers/asy

[top][parent]

NAME

asy -- Sets up lines for 'Assembly' continusous linework. [asy.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'asy': *asy() - Assembly -Black/Red/1 -0.35/4 - Contin/0

SOURCE

GLOBAL GEOMETRY MODULE asy(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.2. Layers/cmp

[top][parent]

NAME

cmp -- Sets up lines for 'Component' continusous linework. [cmp.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'cmp'.

    *cmp()  - Component   - DkBlue/7(5)   - 0.35/4  - Contin/0

SOURCE

GLOBAL GEOMETRY MODULE cmp(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.3. Layers/cns

[top][parent]

NAME

cns -- Sets up lines for 'Construction' lines. [cns.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'cns'.

    *cns().... - Construction  - Yellow/9(2) - 0.10/1 - Contin/0 

SOURCE

GLOBAL GEOMETRY MODULE cns(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.4. Layers/ifc

[top][parent]

NAME

ifc -- Sets up lines for In-function continusous linework. [ifc.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'ifc'.

    *ifc() - In Function - Black/1(7) -0.35/4  -Contin/0

SOURCE

GLOBAL GEOMETRY MODULE ifc(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.5. Layers/LevelInit

[top][parent]

NAME

LevelInit -- Level storage array initialization. [LevelSet.MBS]

DESCRIPTION

This module initializes the level storage array used by LevelSet() and the various layer name modules. See LevelSet() and README/Layers for more information (e.g. cns()).

SOURCE

GLOBAL GEOMETRY MODULE LevelInit(
        VAR STRING LevelStatus(100,2)*24);

1.6. Layers/LevelSet

[top][parent]

NAME

LevelSet -- Sets up levels using a ASCII string name for each level (layer) and turns it 'ON' or 'OFF'. [LevelSet.MBS]

DESCRIPTION

This module assigns a level number to each level name (an ASCII string) passed to it. The level name is used by the various display control modules (See cns(), ifc(), ofc(), asy(), cmp(), sas(), ssa(), and pce()). Each of these modules sets standardized linelweights, colors, etc for the linework specified in the module's callout. This module is also used to turn the layer specified on 'ON' or 'OFF' by passing one of those two strings to this module as the LevelStatus (See README/Layers). If one layer is established, (e.g. 'ConstLines') as the default layer which is kept in 'OFF', the linework for any other declared layers can be turned on/off for viewing.

The LevelStatus(100,2)*24 string array must be delared in each module that uses the Layer control system. The LevelInit() module must be run in the 1st module to use the Layer Control system.

SOURCE

GLOBAL GEOMETRY MODULE LevelSet(
           STRING Name*24,      ! User specified layer name
           Stat*24;             ! User specified ON/OFF status (UC only)                  
           VAR STRING LevelStatus(100,2)*24); ! Array w/ Name & ON/OFF status

1.7. Layers/ofc

[top][parent]

NAME

ofc -- Sets up lines for 'Out of Function' continusous linework. [ofc.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'ofc': *ofc() -Out of Function -LtBlue/Same/4 -0.25/3 -Contin/0

SOURCE

GLOBAL GEOMETRY MODULE ofc(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.8. Layers/pce

[top][parent]

NAME

pce -- Sets up lines for 'Piece' continusous linework. [pce.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'pce': *pce() -Piece -LtGreen/Same/3 -0.35/4 -Contin/0

SOURCE

GLOBAL GEOMETRY MODULE pce(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.9. Layers/sas

[top][parent]

NAME

sas -- Sets up lines for 'Sub-Assembly' continusous linework. [sas.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'sas': *sas() -Sub-Assembly -DkGreen/Magenta/6 -0.35/4 -Contin/0

SOURCE

GLOBAL GEOMETRY MODULE sas(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

1.10. Layers/ssa

[top][parent]

NAME

ssa -- Sets up lines for 'Sub-Sub-Assembly' continusous linework. [ssa.MBS]

DESCRIPTION

See 'Layers.txt' for layer configuration for 'ssa': *ssa() -Sub-Sub-Assembly -Brown/Grey/8 -0.35/4 -Contin/0

SOURCE

GLOBAL GEOMETRY MODULE ssa(
        STRING LevelName*24; 
        VAR STRING LevelStat(100,2)*24);

2. README/NGB

[top]

NAME

Nickajack Glideboat (NGB) Project -- This Varkon hierarchy of files which document the design for the Nickajack Glideboat. [NGB.txt]

DESCRIPTION

This prototype watercraft's cross-section incorporates a water ballast chamber below the floor level which will be placed 4-1/2 inches above the keel. The water ballast is intended to stabilize the watercraft when it is not in motion. As the craft is propelled forward (by rowing, paddling, or a small motor) the water ballast will naturally drain from the hole at the base of the transom. The craft's floor will have a forward vent tube to prevent formation of vacuum in the ballast chamber during drainage.

The purpose of the water ballast is to stabilize the craft's roll while motionless. As the water drains from the ballast chamber the craft should lift up in the water and the forces associated with forward motion will take over to stabilize the craft's roll while it is moving. The craft's waterline after the ballast is drained is narrower to minimize drag. The minimized drag will permit more speed. A quarter-turn ball valve will be inlcuded to retain or exclude water from the ballast chamber.

    -- John Hughes (Email: n4yvt@arrl.net)

2.1. NGB/Control

[top][parent]

NAME

Control -- Varkon user interface module to locate and edit the control points on each X-Section of the NGB model [Control.MBS]

DESCRIPTION

This module may be pasted into the interactive active module of VARKON under the NGB project files directory. This permits interactive adjustment of the control points which alter the watercrafts hull surface. The module's content is described in the following lists of steps.

Declare the following Variables and Constants:

Steps Taken:

The point coordinates can all be edited manually 6 nodes at a time (blank all others). The editing can be done interactively using the 'xy' view and moving the points for any of the unblanked 6 nodes. Any node adjustment made will be propogated through the entire model. The model must be executed with the 'RUN' button in the main window after editing.

Copyright 2006, John J. Hughes (Email: n4yvt@arrl.net)

GNU General Public License

This source code file is part of the 'NGB' project files which execute interactively under the 'Varkon' program, which is distributed under the terms of the GNU General Public License.

The 'NGB' project files are also distributed under the terms of the GNU GeneralPublic License. See the GNU General Public License n included ithe file name "COPYING.txt" in the Varkon ./app/NGB/doc directory for more details.

NGB is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

NGB is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License included in the file name "COPYING.txt".

You should have received a copy of the GNU General Public License along with NGB; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

SOURCE

GLOBAL GEOMETRY MODULE Control(
           FLOAT L:=192.0);     ! Parameter to control length of watercraft

2.1.1. Control/Main

[top][parent]

NAME

Main -- Base Varkon 'main' routine to control NGB model generation. [Main.MBS]

DESCRIPTION

The file 'Control.MBS' should be cut and pasted into the interactive active project file named 'Control()'. See the Control() documentation for more information. 'Control' calls this MBS file.

The steps performed in this module are:

The following lists provide sub-topic breakdown for selected steps listed above.

Layers & Array Initialization

Steps are as folows:

Cross-Section Curves

Steps as follows:

Hull Surface

To Develop the Hull Surface:

Waterline Intersect Curves

To develop the 'lines' of the glideboat:

SOURCE

GLOBAL GEOMETRY MODULE Main(
           VAR VECTOR Pts(8,7); ! Array containing control points
                           FLOAT L);! Parametric Length of Boat

2.1.1.1. Main/Bez6

[top][parent]

NAME

Bez6 -- Module to produce bezier curves with 6 control points. [Bez6.MBS]

DESCRIPTION

The steps followed are:

SOURCE

GLOBAL GEOMETRY MODULE Bez6(
   VECTOR       pt1 >"Enter Pt #1", ! Starting (1st) Chord Point
                pt2 >"Enter Pt #2", ! 2nd, etc.
                pt3 >"Enter Pt #3", 
                pt4 >"Enter Pt #4",
                pt5 >"Enter Pt #5",
                pt6 >"Enter Pt #6";
   VAR VECTOR Tngt1);             ! Returns tangent pt for pt1

2.1.1.2. Main/CubicCrv

[top][parent]

NAME

CubicCrv -- Module to produces a cubic curve w/o specifing tangents. [CubicCrv.MBS]

DESCRIPTION

This module generates all the data required to produce a bicubic curve from 13 or fewer intersction points. No tangent points are provided to this module since they are interpolated inside the module using a spline curve generated using cur_splarr(). A 'P' array is required to control the 'fullness' of the curve.

The steps followed are:

SOURCE

GLOBAL GEOMETRY MODULE CubicCrv(
        INT NoPts;                      ! Number of curve points
        VAR FLOAT PValues(13);  ! 'P' value array
        VAR VECTOR CrvPts(13)); ! Points on curve

2.1.1.3. Main/MidPt

[top][parent]

NAME

MidPt -- Calculate the coordinates of the 3-D mid-point between 2 user provided mid-points. [MidPt.MBS]

DESCRIPTION

This module sums the coordinates of each provided point and divides the sum by 2 to locate the mid-point.

SOURCE

GLOBAL GEOMETRY MODULE MidPt(
           VAR VECTOR Pt1, 
           Pt2, 
           MidPoint);   ! Mid-point return vector

2.1.1.4. Main/PInit

[top][parent]

NAME

PInit -- Initializes the P-Values vector for use in CubicCrv() [PInit.MBS]

DESCRIPTION

Module steps:

SOURCE

GLOBAL GEOMETRY MODULE PInit(
           INT NoPts;                   ! Number of points
           FLOAT First,                 ! Begining Point
           Middle,                              ! Mid Point
           Last;                                ! Last Point
           VAR FLOAT PValues(13));      ! 'P' value array

2.1.1.5. Main/PointCloud

[top][parent]

NAME

Point-Cloud -- Reads points stored in NGB-offsets-full.txt and plots them in VARKON [PointCloud.MBS]

DESCRIPTION

The steps followed are:

The 'start' and 'end' values passed to this module limit the range of stations (between 0 and 34) which are displayed.

Note: Change file location in the first line of the source code if the data file is relocated.

SOURCE

GLOBAL GEOMETRY MODULE PointCloud(
        INT start,  ! Begining station to display (must be 0 to 34)
        end);           ! Ending station to display (must be 0 to 34 & > start)

2.1.1.6. Main/StemPattern

[top][parent]

NAME

StemPattern -- Develop a pattern for cutting the stem board. [StemPattern.MBS]

DESCRIPTION

Use

The steps in the module are: *

SOURCE

GLOBAL GEOMETRY MODULE StemPattern(
           VAR REF HullSurface(12);             !Array containing hull-surfaces
           VAR STRING LevelStat(100,2)*24);     !Layer name control array

2.1.1.7. Main/Waterline

[top][parent]

NAME

Waterline -- Develop the 'lines' for 1 1/2" interval (1.5,3.0,4.5,&6.0) waterlines intersection and mold station at an interval of 16" o.c. [Waterline.MBS]

DESCRIPTION

Use coordinate system planes & hull surface intersects to develop the water, buttock, and mold (cross-section) station lines.

The steps in the module are:

SOURCE

GLOBAL GEOMETRY MODULE Waterline(
           VAR REF HullSurface(12);             !Array containing hull-surfaces
           VAR STRING LevelStat(100,2)*24);     !Layer name control array

2.1.1.8. Main/ZPlanePt

[top][parent]

NAME

ZPlanePt -- Return a new point on a specified Z-Plane which lies on a line which intersects the plane after passing through 2 specified points. [ZPlanePt.MBS]

DESCRIPTION

This module take the following steps to locate and return the new point:

SOURCE

GLOBAL GEOMETRY MODULE ZPlanePt(
         FLOAT       ZCrd;   ! Z-Coordinate of plane
         VECTOR      Pt1,     ! First Point
                       Pt2;     ! Second Point
         VAR VECTOR  PtZ);    ! Return point on Z-Plane

2.1.2. Control/s_isoupar

[top][parent]

NAME

s_isoupar: --- This module places a series of U-parameter lines on a surface --- [s_isoupar.MBS]

DESCRIPTION

This module take the following steps to place U-isolines :

SOURCE

GLOBAL GEOMETRY MODULE s_isoupar   (
           REF    s_id > "@t16 Select surface";
           INT    n_u:= 30 > "@ Number of U parameter lines");

2.1.3. Control/s_isovpar

[top][parent]

NAME

s_isoupar: --- This module places a series of V-parameter lines on a surface --- [s_isovpar.MBS]

DESCRIPTION

This module take the following steps to place V-isolines :

SOURCE

GLOBAL GEOMETRY MODULE s_isovpar   (
           REF    s_id > "@t16 Select surface";
           INT    n_v:= 30 > "Number of V parameter lines");

2.2. NGB/RoboDocScript

[top][parent]

NAME

RoboDocScript - Script to generate all NGBProject documentation [RoboDocScript.sh]

DESCRIPTION

This documentation package addresses all projects developed in the NGB directory of the VARKON directory tree. The documentation is in the NBGDoc.html file in the ./NGB/doc directory. [./ROBODOCScript.sh executes to produce the docs. Of coarse 'robodoc' must be installed].

3. UpperTierName/ModuleName

[top]

NAME

ModuleName: --- This is a RoboDoc MBS template file --- [ModuleName.MBS]

DESCRIPTION

This module take the following steps to ..... :

Figure Caption Text

Inserts an image with the image stored in the ./Projectname/doc directory.

SOURCE

GLOBAL GEOMETRY MODULE ModuleName(
         );    

4. Varkon/CtrLn

[top]

NAME

CtrLn -- draws a center-line. [ctrln.MBS]

DESCRIPTION

This module draws a center line without altering the global layer setup.

See 'Layers.txt' for layer configuration for 'ctrln' which is a center-line: *ctrln(+) -Center lines -LtGreen/Same/3 -0.10/1 -CL/2

SOURCE

GLOBAL GEOMETRY MODULE CtrLn(
        VECTOR p1:=vec(0,0,0), 
        p2:=vec(10,0,0));

5. Varkon/DshLn

[top]

NAME

DshLn -- draws a dashed-line. [DshLn.MBS]

DESCRIPTION

This module draws a dashed line without altering the global layer setup.

See 'Layers.txt' for layer configuration for 'DshLn' which is a center-line: *dshln(+) - Dashed lines -LtBlue/Same/4 -0.15/2 -Dashed/1

SOURCE

GLOBAL GEOMETRY MODULE DshLn();

6. Varkon/Ruler

[top]

NAME

Ruler: Generate a set of 6 ruler at user specified location. Rulers may be in set to either metric or imperial mode and can be rotated along with the views. [Ruler.MBS]

DESCRIPTION

This module takes the following steps to draw a ruler line (See Figure 1 below for layout) at the origin aligned in the x-direction on the coordinate system provided by the user:

Variable Name figure

Figure 2 - Bounding Box Layout

SOURCE

GLOBAL GEOMETRY MODULE Ruler(
        VECTOR Ptr,     ! Rear bounding box point (See Figure 2)
                 Ptf; ! Front bounding box point
        FLOAT    Htmin:=0;              ! Minimum Ruler height in base units
        STRING Units*8:="IMPERIAL",     ! "METRIC" or "IMPERIAL"
                DrawingUnit*4:="INCH"   ! Base drawing unit "MM" or "INCH";
         );