--This is the input file to BLDF that makes a .HLP file for the 
--UPL 'INSert CONline' command.

--At the end of this file is the documentation for the HELP system.

--This first section just sets up a temporary modifiers file that is
--only used by the BLDF utility when it is processing the the HELP section
--below.  Note that these modifiers are set up the same way the modifiers
--are set up in the INSCL UPL program.
                                
BEGIN MOD
FILE NEW INSCL.MOD
 
MOD 1 HORizontal        A
MOD 1 VERtical          A
MOD 1 PRL               A
MOD 1 PRP               A
MOD 1 MIDway            A
MOD 1 EQUIPrl           A
MOD 1 CIRcle            B
MOD 1 NOCIRcle          B
MOD 1 ANGle             R
MOD 1 DISTance          R
MOD 1 COLor             I
MOD 1 FONt              I
MOD 1 LAYer             I
    
END MOD


--Help section----------------------------------------------------------------

Begin Help                      --Must use this command at beginning of file.
File INSCL.HLP                  --Compiled output filename.  Can be any name.
File Modifiers INSCL.MOD        --Compiled modifier processor name. (Note that
                                --this file (INSCL.MOD) was generated above
                                --in the MOD section of this file.      

-------------------------------------------------------------------------------

Help 2  3 4 5 6 7 8 9

  The following modifiers are available for INSert CONline:

        F1 - HORizontal, VERtical, PRL (parallel), PRP (perpendicular)

        F2 - MIDway

        F3 - EQUIPrl (equi-parallel)

        F4 - CIRcle, NOCIRcle

        F5 - ANGle

        F6 - DISTance

        F7 - COLor, FONt, LAYer

  For help on a specific modifier, press the specified Function key
@

Help 3          --used by Help 2, [F1]

        The HORizontal, VERtical, PRL and PRP modifiers determine 
        the orientation of the construction lines.               
@

Help 4          --used by Help 2, [F2]

        The MIDway modifier inserts a single construction line
        that bisects the smaller angle made by two other lines.
        If the two lines picked are parallel, the construction
        line will be placed midway between the two lines and parallel
        to them.
@

Help 5  8       --used by Help 2, [F3]

        The EQUIPrl modifier puts in two construction lines that
        are parallel to the line(s) you pick.  The distance of
        the construction lines from the picked line(s) is determined
        by picking two parallel lines.  The distance between the two 
        parallel lines is used to put in the construction lines
        on either side of the line(s) you pick.  The distance value
        is also set as the new default value used by the DISTance
        modifier.  

        Press F1 for more information about the DISTance modifier.
@

Help 6          --used by Help 2, [F4]

        The CIRcle modifier inserts construction through a circle.
        Three construction lines are inserted, the first through
        the origin of the circle; the second and third tangent to
        the circle.   

        The orientation of the construction lines is determined by 
        the HORizontal, VERtical, PRP, PRL or ANG modifiers.
        One of these five modifiers must be selected with the 
        CIRcle modifier.

        When the NOCIRcle (default) modifier is used the construction
        lines are placed according to locations that you digitize.
        As with CIRcle, the orientation of the construction lines is
        determined by the HORizontal, VERtical, PRP, PRL or ANGle modifiers.
@

Help 7          --used by Help 2, [F5]

        The ANGle modifier inserts construction lines at an angle
        to a reference line.  The ANGle is given in degrees.
        90 degrees will be perpendicular to the reference line, 0 and
        180 will be parallel to the reference line.  This modifier can
        be used with either the CIRcle or NOCIRcle modifier.  Note that
        the ANGle modifier must be reselected each time you exit getdata
        with a ':'.
@

Help 8  5       --used by Help 2, [F6]

        The DISTance modifier is used to give a distance away from picked
        lines which construction lines will be placed parallel to on 
        either side of the picked lines.  Each time the modifier processor
        is entered from getdata with a ':' this modifier is set as not
        having been ever selected.   This is so the EQUIPrl modifier can
        be selected, since if both the DISTance modifier and the EQUIPrl
        modifiers are selected the DISTance modifier will take precedence.
        Also after the EQUIPrl modifier has been used, the default value
        for the DISTance modifier is set to the value determined when
        the EQUIPrl modifier is used.  Press F1 for related information
        about the EQUIPrl modifier.
         
@

Help 9          --used by Help 2, [F7]

        The COLor, FONT and LAYer modifiers set the display
        characteristics of the construction lines.  The initial default
        values are:

        COLor  - current GCD default color
        FONT   - style 2
        LAYer  - layer 256
@

VNP 1 2

                        INSert CONline

        This command is used to insert construction lines.  Construction
        lines have the same characteristics as normal line entities
        except for the following:

        - construction lines are always displayed the full width of
          the graphics screen, even if the end points of the construction
          line are completely off the screen

        - construction lines can not be 'trimmed' 


        With INSert CONline construction lines can be inserted in a variety
        of ways.  There are four basic groups of modifiers.  The first
        group, HORizontal, VERtical, PRP, PRL and ANGle determine the
        orientation of the construction line.  The PRP (perpendicular),
        PRL (parallel) and ANGle modifiers use a line or construction line,
        which you will be prompted for, as a reference line.  

        The second group of modifiers, CIRcle and NOCIRcle, determine
        the placement of the construction lines.  
        If NOCIRcle is selected (default), the construction lines are 
        placed through the locations that you will be prompted to digitize.  
        If you select the CIRcle modifier, you will be prompted to 
        pick circles through which three construction lines will be placed;  
        One through the origin of the circle and two tangent to the circle.  

        The next group of modifiers are the EQUIPrl and DISTance modifiers.  
        If one of these modifiers is selected, two construction lines 
        will be put in parallel on either side of the lines that
        you will be prompted to pick.  The distance away from the lines 
        is determined either by the value given by the DISTance modifier 
        if it is selected or if EQUIPrl is selected then you will be 
        prompted to select two parallel lines and the distance between 
        these two lines will be used to set the distance value.
        
        The last group of modifiers, COLor, FONT, LAYer are used
        to determine the display characteristics of the inserted
        construction lines.


   Press 'More' key for more detailed help on individual modifiers
@

ModIndex 1 2     --index 1 is for UPL defined modifiers

Modifiers All DISTance EQUIPrl

        You have selected both the EQUIPrl and the DISTance modifiers.
        Both of these modifiers are used to determine the distance
        from line(s) to put construction lines on either side of.
        Since only one method can be used, in the case when both are
        chosen the DISTance modifier takes precedence over the
        EQUIPrl modifier.  Each time the you go into getdata with
        a ':' and then return to the modifier processor with another
        ':' the DISTance modifier is 'unselected' and must be reselected
        if it is to be used.  Note that after the EQUIPrl modifier is
        used it sets the default value for the DISTance modifier to be
        the distance calculated between the two parallel lines.  To use
        this value with the DISTance modifier, simply select the DISTance
        modifier but do not type in any value.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 5 

        Digitize the line you are referencing.  The construction lines
        will be inserted at the specified distance from the reference
        line.        
@

Modifiers All ANGle NOCIRCle

        The ANGle and NOCIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 1 

        Digitize the line you are referencing.  Construction lines will
        be inserted at the specified angle to this line.        
@

GetData 6 

        Digitize the locations that you want the construction lines
        to go through.
@

Modifiers All HORIZontal NOCIRCle

        The HORizontal and NOCIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 6 

        You need to digitize the locations that you want the horizontal
        construction lines to go through.
@

Modifiers All VERTical NOCIRCle

        The VERtical and NOCIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 6 

        You need to digitize the locations that you want the vertical
        construction lines to go through.
@

Modifiers All PRP NOCIRCle

        The PRP and NOCIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 1 

        You need to pick a line or construction line entity to use
        as a reference line to make the construction lines perpendicular
        to.
@

GetData 6 

        You need to digitize the locations that you want the construction
        lines to go through  which will be perpendicular to the reference
        line picked.

@

Modifiers All PRL NOCIRCle

        The PRL and NOCIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 1 

        You need to pick a line or construction line entity to use
        as a reference line to make the construction lines parallel
        to.
@

GetData 6 

        You need to digitize the locations that you want the construction
        lines to go through  which will be parallel to the reference
        line picked.

@

Modifiers All MIDway NOCIRCle

        The MIDway modifier is currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 3 

        You need to pick two lines or construction lines that the
        construction line will be placed between. 
@

Modifiers All MIDway CIRCle

        You have selected both the MIDway and CIRcle modifiers.  
        This is not a valid combination, before you enter getdata
        by using the ':' you must select NOCIRcle with MIDway or
        select HOR, VER, PRP, PRL or ANGle with the CIRcle modifier.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

Modifiers All EQUIPrl CIRCle

        You have selected both the EQUIPrl and CIRcle modifiers.        
        This is not a valid combination, before you enter getdata
        by using the ':' you must select NOCIRcle with EQUIPrl or
        select HOR, VER, PRP, PRL or ANGle with the CIRcle modifier.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

Modifiers All ANGle CIRcle

        The ANGle and CIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 1 

        You need to pick a line or construction line entity to use
        as a reference line to make the construction lines at an angle
        to.
@

GetData 2 

        You need to pick some circles or arcs which will be used
        to put the three construction lines through which will be
        at the angle specified with the ANGle modifier to the
        reference line picked.
@

Modifiers All HORIZontal CIRcle

        The HORizontal and CIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 2 

        You need to pick some circles or arcs which will be used
        to put the three horizontal construction lines through.
@

Modifiers All VERTical CIRcle

        The VERtical and CIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 2 

        You need to pick some circles or arcs which will be used
        to put the three vertical construction lines through.
@

Modifiers All PRP CIRcle

        The PRP and CIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 1 

        You need to pick a line or construction line entity to use
        as a reference line to make the construction lines perpendicular
        to.
@

GetData 2 

        Pick a combination of circles or arcs that will be used
        to place the three construction lines through. 
@

Modifiers All PRL CIRcle

        The PRL and CIRcle modifiers are currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 1 

        You need to pick a line or construction line entity to use
        as a reference line to make the construction lines parallel
        to.
@

GetData 2 

        You need to pick some circles or arcs which will be used
        to put the three construction lines through which will be
        parallel to the reference line picked.
@

Modifiers All EQUIPrl

        The EQUIPrl modifier is currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 4 

        You need to pick two lines or construction lines that will
        be used to determine the distance that the construction lines
        will be put in from the other lines you will pick.  You will
        be prompted for the other lines.
@

GetData 5 

        You need to pick some line or construction line entities to
        to use to put in some parallel construction lines at the
        given distance away as determined by the 2 parallel lines
        that you just previously picked.
@

Modifiers All DISTance

        The DISTance modifier is currently selected.


        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 5 

        You need to pick some line or construction line entities to
        to use to put in some parallel construction lines at the
        given distance away as specified with the DISTance modifier.
@

Modifiers Exact NOCIRcle

        It appears you have not selected any modifiers.  The default
        condition is that you can insert construction lines between
        pairs of points.  Enter a ':' after exiting the help system to
        get into the getdata processor and you will be prompted to
        enter locations.

        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

GetData 7

        You now need to digitize 2 locations that will define the 
        orientation and location of the construction line(s) you
        want.
@ 
        
Modifiers Default

        Press 'More' key for more detailed help on individual
        modifiers  or  press the 'Previous' key for general help with
        the INSert CONline command.
@

End Help
End

(BLDF ignores everything after the End command)

---------------------------------------------------------------------

Below is the documentation for the context sensitive help system.
The HELP file above for the INS CL command does not utilize every feature
described below.

------------------Help System Documentation--------------------------

The Help system can be accessed by the user in 4 ways:
      1) the GCD HELP command, enters help system via Help index 1
      2) via ! in VNP
      3) via ! in modifier processor
      4) via ! in getdata

Once in the help system the user can browse through all of the help
that the writer has given the user access to.  

The writer can determine what the various help index numbers are
for VNP, modifier processor and getdata, for any command by using the GCD
SEL MESSAGE HELP command.  Then whenever a command is invoked or the system
enters the modifier processor or getdata, the help index numbers associated
with the command will be displayed.

Other support files related to the help system are the keyboard macro file
and the messages file (GCDMAC.DEF and GCDMSG.DEF).    When the help system
is invoked keyboard macro set 4 is used.  Look in GCDMAC.DEF for
information on what codes need to be returned. In GCDMSG.DEF message numbers
908 to 912 give the prompts that appear at the bottom of the help screens.

The BLDF commands that are unique to the help system are:

File Modifiers <modifiers file name>

      This command gives the file name of the modifier processor file to
      get words from to validate the modifier words given in the
      Modifiers help command.

Help <help index> [<answer help indexes>]
      <help text>
@ 
      This command gives help text to be associated with <help index>.
      <help index> can be any integer in the range 1 to 32767.
      <help index> = 1 has a special purpose in that it is the help index
      that is given for the GCD HELP command.  The optional 
      <answer help indexes> are <help index>es from other Help commands.
      <help index>es in <answer help indexes> do NOT have to be defined
      before they can be used.   If <answer help indexes> are given, then
      when the user responds with answer 1 then the first <help index>
      in <answer help indexes> is used as the <help index> for the next
      screen to appear and if the user responds answer 2 then the second
      <help index> is used, etc.  (any key can be used for user responses,
      currently GCDMAC.DEF is set up so F1 sends the answer 1 response
      code, F2 sends answer 2 response code, etc.)

VNP <vnp index> [<help index>]
      <help text>
@ 
      This command assigns help text to a particular VNP index.  The
      optional <help index> gives the user the chance to get more
      help if they choose the 'More' response.  For convenience you could
      use for the <help index> number the VNP number.

ModIndex <modifier index> [<help index>]

      This command sets the modifier index number to use in subsequent
      Modifiers commands.  The optional <help index> gives the user the
      chance to get More if they choose the 'More' response.
      This would be a good place (<help index>) to put help that would
      explain all of the modifiers for the given modifier index.  You
      could use the same number that the <modifier index> for the 
      <help index> just to help you keep track of which Help screens
      go with which groups of modifiers. Or you could use the modifier
      index*10 then use the units for other help associated with this
      set of modifiers.  There are lots of ways you can organize the 
      Help index numbers but I suggest a logical method be used to
      determine the index numbers.
      
      Note that no help text is associated with this command it only
      sets up the current modifier index and current modifier more
      help index for future Modifiers commands.

Modifiers Default | Exact | Any | All | None  [<modifier words>]
      <help text>
@
      This command assigns help text for help given in the modifier
      processor, for the last VNP command, when the set of modifier
      words given matches the currently selected modifiers (in GCD) in a
      way specified by the keyword after the Modifiers keyword.  The
      ModIndex command must be used at least once after the VNP command
      to set up the modifier index and 'More' help index numbers
      before this Modifiers command can be used.

      The 'match' keywords have the following meanings:

      Default - no modifier words are given with this keyword.  If for a
                VNP command none of the other Modifiers commands are used
                then when this one is encountered it will be used no
                matter what modifiers are currently selected in GCD.
                Also if the modifier processor is skipped in GCD 
                (ie INS LIN: goes directly from VNP to Getdata) then
                this is the Modifiers group that will be used.

      Exact   - the modifiers given must exactly match the currently
                selected modifiers in GCD.

      Any     - if any of the modifiers given are currently selected in
                GCD

      All     - if all of the given modifiers are selected in GCD.  This
                is similar to Exact but more modifiers may be selected in
                GCD than what is given.

      None    - if none of the modifiers given are selected in GCD
                

      The first Modifiers command, under a given VNP command that matches
      correctly the currently selected modifiers, will be the one used.
      Therefore it is important how you order the Modifiers commands 
      under the VNP command. If you had the first Modifiers command with
      the Default keyword then there is no chance that any of the
      Modifiers commands below it would ever be selected for the current
      VNP command.  Also note that if only one modifier word were given
      the All and Any keywords act the same.

GetData <getdata index>  [<help index>]
      <help text>
@

      This command assigns help text to the given <getdata index> for
      use when the user ask for help via ! when in getdata.  The Getdata
      help given will be associated with the previous Modifiers command.
      The getdata indexes are set up in the GCD software and the  
      writer can find out what these indexes are for each command
      by using the GCD command SELect MESSage HELP.  After using this
      command in GCD then the VNP, Modifier and Getdata indexes will be
      displayed.  This is the only practical and sure fire way to get
      the correct indexes for each possible sequence of GCD commands.
      The optional <help index> gives the user the chance to get more
      help if they choose the 'More' response.

Remember the Help <index> commands can be used anywhere in the file in any
order and should be put in where ever it is best that makes sense for them
to go.

Commands, each can be made by a different person and then later merged in to
one file.  (as long as the people communicate about what Help indexes they
are using) This would easily break up the documentation task and speed
the Help File BLDF 'compile' time.

The form feed character ASCII 12 or ^L can be used anywhere in the help text 
to force the start of a new page. 

--------------------End Help System Documentation-------------------------


