[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.
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);
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);
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);
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);
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);
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
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);
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);
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);
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);
[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)
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
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
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
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
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
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
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)
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
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
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
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");
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");
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].
[top]
NAME
ModuleName: --- This is a RoboDoc MBS template file --- [ModuleName.MBS]
DESCRIPTION
This module take the following steps to ..... :

Inserts an image with the image stored in the ./Projectname/doc directory.
SOURCE
GLOBAL GEOMETRY MODULE ModuleName(
);
[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));
[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();
[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:


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";
);