.ENTRY INDEX

     3D - Help index       ISoft D&M


    ~About the help system~menu_help~

    ~The window system~window_system~

    ~Main menu~main_menu~

    ~The macro language commands~macrolang~


.END
.ENTRY macro

     A macro is a collection of simple animation commands,
     that can be processed by the ~intereter~interpret~ to examine
     possible animation routines in your own programs,
     and later, can be ~compiled~compile~ to produce Turbo Pascal
     compatible source code.

.ENTRY macrolang

       Macro Programs Language Summery
The following commands are supported by the 3D macro
 interpreter and compiler:

c      - Clear Screen (macro window).
w      - set Color to White.
b      - set Color to Black.
p      - Paint Active object in last color.
o0     - set Perspective off.
o1     - set Perspective on.
>x     - Start a loop to be performed x times.
lfl    - Load simple object from file fl into the active object.
Lfl    - Load complex object from file fl into the active object.
rad    - Rotate Active Element In axis a, d degrees.
ex     - Choose Active Element x.
mas    - Move in a axis, s steps.
gx,y,z - Goto 3d pos x,y,z.
saf    - Scale a axis if f factor.
v0..v9 - variable names.
<      - End Loop.
\      - End line.
z      - set object to center.
Rsad   - rotate a sub object of a complex object
         around axis a, d degrees.
Msas   - move a sub object of a complex object
         in axis a, s steps.
Ssaf   - scale a sub object of a complex object
         around axis a, by a factor of f.



Special Notes : a number must end with a space character.
                (e.g. rx40 . <- space after a number)
                in the goto command a , character must come
                between the arguments.
                (e.g. g100 , -200 , 10)
                Loops can be nested 10 levels deep.

                any numeric expressions requested can be
                given with a normal infix notation, for
                example :

                rx30 * v1 + 2

                will rotate the current active object
                around the x axis, by 2 plus 30 * v1
                degrees, where v1 is a variable.

.END
.ENTRY menu_run

                Run Menu

 This menu offers two operations that can operate on the
 ~active macro~activemac~

  ~interpret~interpret~  - interpret a macro

  ~compile~compile~    - compile a macro to pascal program
.END
.ENTRY menu_system

                      System Menu

    This menu gives four options:

    About   - Gives information about the 3D program.

    Path    - Changes the current directory.

    Print   - Prints the screen to the printer.

    Quit    - Quit the program - exit to DOS.

.END
.ENTRY menu_objects

    The Objects pull-down menu offers various
    choices for loading existing objects, creating
    new objects, editing, and saving objects. when you
    load an object, you can edit it, or use and display it
    in the ~Online window~onlinew~. when you're done with an object,
    you can save it to any directory of file name.
    Select an item that you want to know more about:

    ~Active~oactive~        ~Open~oopen~          ~New~onew~           ~Save~osave~
    ~Save As~osaveas~       ~Edit~oedit~          ~Close~oclose~         ~Print~oprint~
.END
.ENTRY oactive

                    Objects/Active

    This command allows you to select the ~active object~activeobj~.
    A ~Dialog box~dlgbox~ will be created, and you will be asked
    to choose the active object from the objects in
    the memory.
    Use the mouse, or the arrow keys to move the highlight
    bar to the desired object, and ~click~click~ on the ~Ok button~okbut~
    or click again on the highlighted line.
    If there are no objects in memory an ~Alert box~alert~
    will be displayed.
    If there is more then one object in memory, you will
    receive a list of objects to choose from,
    if not all of the objects are displayed, you can scroll
    the display using the arrow keys or the ~scroll bar~scrlbar~.
.END
.ENTRY dlgbox

                Dialog box

       A dialog box is an interactive window used to give
    input to the program. A dialog box is displayed in
    reverse video, and it cannot be moved on the screen.
    No other operation can be done until the dialog box
    input is satisfied.

       A dialog box consists of text lines and buttons.
    buttons can be of the following types:

    ~Text fields~txtfield~

    ~Choose buttons~chosbut~

    ~Radio buttons~radiobut~

    ~Text (action) buttons~textbut~

    ~Selection buttons~selectbut~

    Most dialog boxes contain the following three buttons:

    ~Ok~okbut~
    ~Reset~resetbut~
    ~Cancel~cancelbut~
.END
.ENTRY interpret

            Run/Interpret

  This command opens a new window, and tries to interpret
  the active ~macro~macro~. The results can be seen immediately
  on the screen.
  The interpreter can be stopped at any moment by
  pressing the mouse button, or hitting a key.
  The interpreter's purpose is to examine and debug the
  macros. For fast animation, you should ~compile~compile~  the
  macro, and use it in a pascal program.
.END
.ENTRY compile

                    Run/compile

  This command activates the ~macro~macro~ compiler which
  compiles the macro to a full stand-alone pascal source
  program.

  Use this code as a fast stand-alone animation program, or
  as a procedure, in your own programs.

    See also:
            ~Interpret~interpret~
.END
.ENTRY chosbut

    A choose button is a ~button~butt~ that is used for
    boolean (yes and no) options. It is formed of
    a rectangular box in the left of text. The button have
    two states: Selected and Not selected. When the button
    is Selected, there is an X inside the box. When the
    button is Not selected, the box is empty.
    To change the state of a choose button, you just
    ~click~click~ on it.

    See also:
        ~Text fields~txtfield~         ~Radiobuttons~radiobut~
        ~Text buttons~textbut~        ~Selection buttons~selectbut~
.END
.ENTRY click

  Clicking on an item (a button, a window etc.) means
  moving the mouse cursor (pointer) to point on that
  item, and hitting (pressing AND releasing) the mouse
  button.

  When you press the mouse button on most of the buttons,
  they will highlight themselves, to indicate to you, that
  when you release the mouse button, their action will be
  performed, if you don't want to choose that action move the
  mouse cursor out of the button, and release the mouse.

.END
.ENTRY txtfield

    A text field is a ~button~butt~ which allows the user to
    enter text using the keyboard. Before you enter text,
    you should select the button by ~clicking~click~ on it.
    When the text field is selected, a cursor appears
    inside the text field, and you can modify the text.

    use the arrow keys, enter and insert keys to edit the
    text in the text field, pressing enter finishes the
    field editing session.

    See also:
        ~Choose buttons~chosbut~      ~Radiobuttons~radiobut~
        ~Text buttons~textbut~        ~Selection buttons~selectbut~
.END
.ENTRY radiobut

    A radio button is a ~button~butt~ which is used to select
    one item from a set of mutually exclusive options
    (it is named Radio button because of the similarity to the
    buttons in a car's radio). The radio button is a text
    with a small circle on the left. The circle near the
    selected item has a small filled circle inside it.

    See also:
        ~Text fileds~txtfield~     ~Choose buttons~chosbut~
        ~Text buttons~textbut~    ~Selection buttons~selectbut~
.END
.ENTRY selectbut

    The Selection button is a ~button~butt~ which is used
    for selecting one item from an arbitrarily large list
    of items. The button has a rectangular shape and
    consists of a few text lines, one of them - the
    selected item is in reverse video. The mouse can be
    used for moving the highlighted line. ~Clicking~click~
    on the highlighted line will have the same affect as
    clicking on the ~Ok button~okbut~
    If the number of items is larger than the number of
    lines in the selection button, the button will have
    a ~Scroll bar~scrlbar~ which will allow to scroll the
    text lines up and down.
.END
.ENTRY textbut

    The text button is a ~button~butt~ which is used
    for selecting an action. The button is a rectangle
    which a text inside. ~Clicking~click~ on the button
    will cause the action to be taken.

    See also:
        ~Dialog box~dlgbox~
        ~Ok button~okbut~
        ~Reset button~resetbut~
        ~Cancel button~cancelbut~
.END
.ENTRY okbut

    The Ok ~button~butt~ is used in a ~dialog box~dlgbox~
    to accept the changes, or to accept the input as it is.

    This button tells the program to continue with the
    command, with the values specified in the dialog box.

    See also
        ~Reset button~resetbut~
        ~Cancel button~cancelbut~
.END
.ENTRY resetbut

    The Reset ~button~butt~ is used in a ~dialog box~dlgbox~ to
    restore the values of the buttons to the system's
    default.

    See also
        ~Ok button~okbut~
        ~Cancel button~cancelbut~
.END
.ENTRY cancelbut

    The Cancel ~button~butt~ is used in a ~dialog box~dlgbox~ to
    restore the values of the buttons to the values
    they had when the dialog box was opened, and to accept
    them (thus canceling the operation)

    See also
        ~Ok button~okbut~
        ~Reset button~resetbut~
.END
.ENTRY alert

       An alert box is a ~dialog box~dlgbox~ which tells
    about errors (Your error and system errors).
    An alert box will have a "bomb icon" on the top-
    left corner.
       All alert boxes except for the Hard error box have
    only one ~button~butt~.
       The Hard Error box is a replacement for MS-DOS's
    infamous 'Abort Retry Ignore' message which cannot
    be displayed in a graphic environments.
    the hard error box will report the hard-error and
    give two options - Retry and Cancel. Retry will re-try
    the operation that caused the problem, and Cancel
    will cancel it.
.END
.ENTRY oopen

                Objects/Open

       This command opens (loads) an object from the disk
    you can select one of the objects previously save to
    the disk.
       You will be asked to choose between ~Complex/Super~superobj~ and
    ~simple~obj3d~ object type.
    Choose the desired object from the ~File selection Window~fsel~.
    The most recently opened object becomes the ~active object~activeobj~
    The following commands operate on opened objects:
        ~Save~osave~
        ~Save as~osaveas~
        ~Edit~oedit~
        ~Close~oclose~
        ~Print~oprint~

.END
.ENTRY osave

        Object/Save

  Use Save to save the ~active object~activeobj~ to disk.
  If you attempt to save an UNTITLED object, You will be
  asked to name it.
.END
.ENTRY osaveas

            Object/Save as

    Use this command to save the ~active object~activeobj~ to
    a different file. You will be prompted to enter the
    new file name. The active object will be saved with
    this name to the disk, and will be re-named in the
    memory to that name.
.END
.ENTRY onew

                Object/New

       The New item specifies that a new object is to be
    created. An empty object with the name 'UNTITLED'
    is created. (You can change the name of the object
    when you go to ~Save~osave~ it or to do a ~Save as~osaveas~)
       The New object can be of a ~simple~obj3d~ or a ~Complex/Super~superobj~
    object type.

.END
.ENTRY oedit

                  Object/Edit

   Use this option to edit the active object in memory, if
    this object is a ~simple~obj3d~ object you will use 2 windows -
    a ~point window~pntwind~ to define the objects points in
    the 3D universe, and a ~line window~linewind~ to connect
    these points to lines,
    if the object is a ~complex/super~superobj~ one, you will
    use a ~complex object window~sedtwind~ to define child objects
    to this super object.
.END
.ENTRY obj3d

                  Simple Objects

       Simple objects are bodies in the 3D-space which are
    defined in terms of lines and points in space. The points
    of the objects can be edited with*the ~point window~pntwind~, and the
    lines (each line connects two previously defined points)
    can be edited using the ~line window~linewind~.

.END
.ENTRY pntwind

                Point editor window

       The point editor window displays the points defined
    for the ~active object~activeobj~.

       The window contains a status line at the top, and
    ~control buttons~butt~. The ~scroll-bar~scrlbar~ at the right border
    is used to choose the point on which the buttons
    will operate.

       The X/Y/Z buttons are used to select the axis on which
    the point is to be moved, the arrows move the point on
    that direction. The SPEED button is used to select the
    speed of the movement (how much will the point move in
    each step). The CREATE button fixes the point, and create
    a new point.

    See also:
        ~Line window~linewind~
        ~Complex object window~sedtwind~

.END
.ENTRY linewind

                Line Editor window

       The line editor window is used for defining the
    lines that makes the simple object.

       The window contains a status line at the top, and
    ~control buttons~butt~. The ~scroll-bar~scrlbar~ at the right border
    is used to choose the line on which the buttons
    will operate.

       The arrows are used to select the point, and the
    Create button is used to fix the line, and create a new
    line. Every line is defined with two points, use the
    "To" and "From" buttons to select on which edge of the
    line to operate.

    See also:
        ~Point window~pntwind~
        ~Complex object window~sedtwind~

.END
.ENTRY superobj

                    Complex (Super) Objects

       A Super Object  (also referred to as Complex Object)
    is a collection of ~simple objects~obj3d~, that are grouped
    together to form a higher level object, which can now
    be referenced as a single body. Complex objects can be
    edited in the ~complex object window~sedtwind~.

.END
.ENTRY sedtwind

            Super object Editor window

       The super object editor window is used for defining
    A ~complex/Super object~superobj~.

       Use the "Add" button to add sub-objects to the super
    object. Use the "Default" button to change the action
    performed by the Two arrow buttons. The "Default" button
    opens a ~dialog box~dlgbox~ which enables you to choose
    the type and value of the transformation done by the arrow
    keys.

    See also:
        ~Point window~pntwind~
        ~Line window~linewind~

.END
.ENTRY oclose

                Object/Close

        Use the Close option to free an ~object slot~objslot~
    when you finish working with an object. If the object has
    been modified, you will be asked if you want to save it.
    If it was UNTITLED, you will be asked to give a name
    for the object.

.END
.ENTRY main_menu

    The 3D menu system is both logical an intuitive.
    If you do not have a mouse, use F10 to activate
    the menu-bar. Using a mouse, bring the mouse
    pointer to the topic and hold the left button
    down. You can move the selection bar up and down
    the menu using the mouse. If you release the
    button while pointing inside the menu, the action
    is taken.
    The main menu contains the following items:

        ~System~menu_system~              ~Objects~menu_objects~
        ~Macros~menu_macros~              ~Online~menu_online~
        ~Run~menu_run~
.END
.ENTRY activemac

    The active macro is the ~macro~macro~ on which commands
    act. You can use ~run~menu_run~ to ~interpret~interpret~ or ~compile~compile~
    the active macro. The active macro is changed when it's
    window is selected, or when is is just ~Opened~mopen~
    or just created using the ~Macros/New~mnew~ command.

.END
.ENTRY activeobj

    The active object is the object in memory, on which
    commands may be given. The ~online window menu~menu_online~, and
    the ~online window~onlinew~ operates on the active object.
    In addition, the following items on the objects
    menu operates on the active object:

    ~Save~osave~
    ~Save As...~osaveas~
    ~Edit~oedit~
    ~Close~oclose~
    ~Print~oprint~
.END
.ENTRY butt

    A button is a control object that allows you to choose
    actions, or to select options using the Mouse or the
    Key-board. The following buttons are used in the the
    3d program:
        ~Text (action) buttons~textbut~
        ~Choose buttons~chosbut~
        ~Radio buttons~radiobut~
        ~Selection buttons~selectbut~
        ~Text fields~txtfield~
        ~Scroll bars~scrlbar~
.END
.ENTRY oprint

            Objects/Print

    This item allows you to print the definition of the
    ~active object~activeobj~ to a file or to the printer.
    This option is useful if you want to know the exact
    coordinates of an object.
.END
.ENTRY fsel

                  The file selection window

    The file selection window is a ~dialog box~dlgbox~ that
  is used for selecting files.  The window is a dialog box
  with a ~Selection button~selectbut~ for choosing a file from the
  current directory.  If you choose a directory, that
  directory will be displayed and you will be able to choose
  a file from this directory.
.END
.ENTRY scrlbar

                         Scroll bars

    A scroll bar is a ~button~butt~ which allows input of integer
  values in a limited range, and is used (mainly) for
  scrolling text.  A scroll bar has two arrows, a body, and
  a slider (see drawing).  Scroll bars can be vertical or
  horizontal.

      +--+--------------------+--+
      |<-|       []           |->|
      +--+--------------------+--+
            a horizontal scroll bar


    ~Clicking~click~ on the right (down) arrow, increments the
  scroll bar's value, and causes the text to scroll to left
  (down) one column (line).  Clicking on the left (up) arrow
  will cause scrolling right (up) one line.

    The box inside the scroll bar is called the slider, and
  it's position corresponds to the value of the scroll bar
  (usually the position in the text).  The slider can be
  moved on the screen by moving the mouse cursor to point
  to the slider, and holding the left arrow down.  While the
  button is held, the slider can be moved inside the scroll
  bar to any position.

    Clicking in the scroll bar below (above) the slider will
  cause scrolling of one page up (down).

.END
.ENTRY onlinew

                      The Online window

    The online window lets you see how an object looks and
  to do online transformations on the object. The ~buttons~butt~
  in the window repeat the last corresponding operation
  selected in the ~online menu~menu_online~.

    All operations done in this window operate on the
  ~active object~activeobj~

    Button      Key     Action
    ------      ---     ------
    Show         p      Same as the  ~Paint~olpaint~ command.
    Hide         h      ~Paint~olpaint~  with the background color.
    Rotate       m      Repeat last ~rotate~olrotate~ command.
    Move         s      Repeat last ~move~olmoveby~ command.
    Scale        r      Repeat last ~Scale~olscale~ command.
.END
.ENTRY objslot

        When an object is loaded to the memory it get it's
    own slot. The slot is an entry in the internal tables of
    the 3D-environment program. The number of objects that can
    be simultaneously in the memory is limited to 9.
.END
.ENTRY menu_macros

    The Macros pull-down menu offers various
    choices for loading existing ~macros~macro~, creating
    new macros, editing, and saving macros. when you
    load an macro, you can edit it, run using the ~interpreter~interpret~
    it, or ~compile~compile~ it when you're done with an object, you
    can save it to any directory or file name.
    Select an item that you want to know more about:

    ~Open~mopen~            ~New~mnew~             ~Save~msave~
    ~Save as~msaveas~         ~Edit text~medit~       ~Print~mprint~
.END
.ENTRY menu_online

    The On Line pull-down menu offers seven commands:

    ~Window~olwind~

    ~Paint~olpaint~

    ~Move By...~olmoveby~

    ~Rotate...~olrotate~

    ~Scale...~olscale~

    ~Project~olproject~

    ~Center~olcenter~
.END
.ENTRY menu_help

     The 3D help system is a HyperText help facility, that
  contains more than 50 help screen covering topics such as
  the usage of the window system, and usage of the 3D
  application.

     If the text is larger than the window's size, you can
  use the ~scroll bar~scrlbar~ or the arrow keys to scroll the text.

     Some pages contain underlined text words and one
  highlighted word.  These words are references (called
  hot-links) to other topics.  You can jump to any such
  topic by ~clicking~click~ twice on the word, or by using the left
  and right arrows to move the highlight bar to the hot-link,
  and pressing enter.

     The help screen saves the last 20 help screens and you
  can return immediately to a previous screen by clicking on
  the "Prev" ~button~butt~ (or hitting ALT-F1).  You can jump to
  the help index by clicking on the "Index" button, or by
  pressing F1.

.END
.ENTRY olpaint

                OnLine/Paint

    Paints the ~active object~activeobj~ on the ~online window~onlinew~.
    with the selected projection, at the selected position,
    and orientation.
.END
.ENTRY olmoveby

               OnLine/Move By...

    This item open a ~dialog box~dlgbox~ that asks you to specify the
    axis to use, and by how many units to move the object.
    You will only see the results when you ask the object to
    be ~painted~olpaint~ again. This allows you to give a
    combination of transformations an see the result of them.

    See also:
        ~Scale~olscale~
        ~Rotate~olrotate~
        ~Paint~olpaint~
.END
.ENTRY olscale

               OnLine/Scale

    This item open a ~dialog box~dlgbox~ that asks you to specify the
    axis to use, and the scale ratio.
    You will only see the results when you ask the object to
    be ~painted~olpaint~ again. This allows you to give a
    combination of transformations an see the result of them.
    Scaling is applied to the object after moving it to the
    origin. After scaling the object is returned to it's
    former position. This allows you to scale an object at any
    time without causing distortions.

    See also:
        ~Rotate~olrotate~
        ~Move By..~olmoveby~
        ~Paint~olpaint~
.END
.ENTRY olrotate

               OnLine/Rotate

    This item open a ~dialog box~dlgbox~ that asks you to specify the
    axis to use, and the number of degrees to rotate by.
    You will only see the results when you ask the object to
    be ~painted~olpaint~ again. This allows you to give a
    combination of transformation an see the result of them.
    Rotating is applied to the object after moving it to the
    origin. After rotating the object is returned to it's
    former position. This allows you to rotate an object
    around it's central of gravity when the object can be
    anywhere in space.
    See also:
        ~Scale~olscale~
        ~Move By..~olmoveby~
        ~Paint~olpaint~
.END
.ENTRY olproject

            OnLine/Project

    This command allows you to select the type of projection
    used by the 3D program to display the objects. The
    rotation can be perspective or axonometric.
.END
.ENTRY olcenter

            OnLine/Center

    This command is useful to return the object back
    to the origin. This command will calculate the object's
    central of gravity, and move that point to the origin.
    all further rotations, and scaling will take this point
    as the center. This is prevents the shape of the object
    to distort when scaling.

    See also:
        ~Scale~olscale~
        ~Rotate~olrotate~
        ~Move By..~olmoveby~
        ~Paint~olpaint~
.END
.ENTRY olwind

                OnLine/Window

    This command opens the OnLine window, which is used for
    displaying objects, rotating, moving and scaling them.

    See also:
        ~OnLine window~onlinew~
        ~Rotate~olrotate~
        ~Move by~olmoveby~
        ~Scale~olscale~
        ~Paint~olpaint~
.END
.ENTRY window_system

                 The window system

       The window system used in the 3d-environment program
    is designed to be used with a mouse (and also with
    some more trouble without one, using only the keyboard)

       Most windows have a title with their name, a "Close"
    ~button~butt~, and "Grow" button. One window is always the
    active window, this is the window that accepts the keyboard
    input. The active window is always fully shown (no
    windows are ever displayed above it, and is marked with
    lines around it's title.

       Closing a window is done by ~clicking~click~ on the
    close-box - the small rectangular box on the left-top
    corner. The grow box is the small box at the bottom-right
    cornet and is used for re-sizing the window.

    See also:
        ~Dialog boxes~dlgbox~

        ~Help on help~menu_help~

        ~Main menu~main_menu~


.END
.ENTRY mopen

                Macro/Open

    This command allows you to load a ~macro~macro~ from the disk.
    later you can ~run~menu_run~ it (interpret or compile), modify
    it, and print it.
    When you open a macro, this macro becomes the ~active macro~activemac~

    See also:
        ~New~mnew~
        ~Save~msave~
        ~Save as~msaveas~
        ~Print~mprint~
        ~Edit~medit~
.END
.ENTRY mnew

                Macro/New

       The New item specifies that a new ~macro~macro~ is to be
    created. An empty macro text with the name 'UNTITLED'
    is created. (You can change the name of the object
    when you go and ~Save~msave~ it or to do a ~Save as~msaveas~)
    The new macro becomes the ~active macro~activemac~

    See also:
        ~Open~mopen~
        ~Save~msave~
        ~Save as~msaveas~
        ~Print~mprint~
        ~Edit~medit~

.END
.ENTRY msave

            Macros/Save

  Use Save to save the ~active macro~activemac~ to disk.
  If you attempt to save an UNTITLED macro, You will be
  asked to name it.
.END
.ENTRY msaveas

            Macros/Save as

    Use this command to save the ~active macro~activemac~ to
    a different file. You will be prompted to enter the
    new file name. The active macro will be saved with
    this name to the disk, and will be re-named in the
    memory to that name.

.END
.ENTRY mprint

            Macros/Print

    This item allows you to print the definition of the
    ~active macro~activemac~ to a file or to the printer.
.END
.ENTRY medit

            Macro/Edit

    This item causes the ~macro window~macwind~ to become the
    active window. You may then modify the ~macro~macro~

.END
.ENTRY macwind

    The macro window is a text editing window for the ~macros~macro~.
    When a macro window becomes the active window, the macro
    related to the window becomes the ~active macro~activemac~

.ENTRY editor_commands

                The text editor

    Cursor keys move the cursor around the text. You can
    also move the cursor by using the scroll-bars, and by
    clicking on the text. Clicking on the text brings the
    cursor the the pointer's position.

    Other keys:
        END     - bring the cursor to the end of a line
        HOME    - bring the cursor the the beginning of
                  a line.
        PGUP    - move one page up.
        PGDN    - move one page down.
        alt-S   - (or clicking the "Srch" button) - search
                  for a text string.
        alt-N   - (or clicking on the "Nxt" button) - repeat
                  the last search (search Next).

.END
.ENTRY DUMMY
~~INDEX~ ~~editor_commands~ ~~DUMMY~
.END

