instructions

    Tutorial / reference guide for RogCAD_for_Windows

    CONTENTS

    Take a few seconds to read the introduction
    and eight minutes to watch the four short
    introductory videos.

    What you read in this document will be more
    easily assimilated if you've seen it put
    into practice.

    Introduction to RogCAD for Windows

    Introductory Videos

    --------------------------------------------
    PART ONE

    Introduction to data entry

    INTERFACE buttons and menus

    COMPREHENSIVE DATA ENTRY:
      data file format   wireframe   autoplane
      repeating cubics   single plane buttons
      SJK   transformations

    At this point you can create
    useful wireframe models.

    --------------------------------------------
    PART TWO

    DISPLAYING YOUR MODEL
      Auto-surfacing
      Screen capture and screen set
      macro files
      macro-g
      macro-a

    PALETTES

    At this point you can achieve
    simple surfaced models.

    --------------------------------------------
    PART THREE

    CURVES

    At this point you can model curved surfaces.

    --------------------------------------------
    PART FOUR

      repeating cubics along curved paths

    --------------------------------------------
    PART FIVE

      facades, grids, plan views, going inside

    instruction document date 01/31/2023
    https://rogcad.com

    INTRODUCTION to RogCAD

    There is nothing you can't model in RogCAD, and with a good level of realism.

    Just a very few numbers typed into a text-file database
    gives RogCAD the information it needs to produce:

      cubic elements repeated along straight or complex curved paths,
      with whatever spacing and number of elements the CAD modeler
      specifies, thus creating rows of windows, porch rails, mitered
      and beveled framing members, floor tiles, etc.

      perspectively correct insertion of vertical or horizontal lines
      on specified planes, most typically used for simulating the lines
      of siding boards or roof shingles, which is part of the automatic
      surface modeling,

      transformations which deform, rotate, slide (translate) and resize
      select portions of your database -- often used in conjunction with
      libraries of objects for use in multiple projects.

      For instance, you can both modify and relocate cabinets, windows,
      walls, doors, appliances and furniture quickly with the transformation
      routines.

    Those characteristics, along with RogCAD's data text-files that are
    geared for complex curved surfaces, give you complete flexibility
    of design.

    The RogCAD program code has a good algorithm for automatic surface
    modeling with automatic shading for light-source direction.
    Thoughtful definition of project elements assures accurate
    plane-sorting for surface modeling.

    RogCAD's automatic surface modeling generates a smooth gradient
    lighting differential on curved surfaces.

    ---------------------------------
    There is nothing you can't model.
    ---------------------------------

    FOUR INTRODUCTORY VIDEOS
    -------------------------

    This first video gives a quick look at data-groups being
    displayed one at a time along with the image files that
    were presented to the client.

    video length   62 seconds

    ________________________________________________________________________________________________________

    The project in the two videos immediately below was modeled
    by this RogCAD author 22 years ago in September 2000.

    The first video serves as a good illustration of how a single
    click will correct the surface-rendering.  The plane defining
    a roof often needs that click to finish off the surface-
    rendering, as roof planes extending past walls will sometimes
    undermine the plane-sorting algorithm.

    In this video, that click occurred on the macro button, since
    the macro-g file had the plane-coloring instruction in it.
    More typically, the plane button that is below the Auto 3
    button is clicked to make the correction.

    A change of perspective is also demonstrated.

    video length   2 minute 02 seconds

    ________________________________________________________________________________________________________

    This video shows two methods for painting a string of cubics (joists
    in this case).  First, the string button is used, which functions
    identically to the SJK routine in the macro files.

    After using that function, the auto-surfacing method is demonstrated:

    The joists/beams data-group is called again and those joists and beams
    are painted by clicking an Auto button which triggers the auto-surfacing
    routine, which employs auto plane-sorting.

    video length   71 seconds

    ________________________________________________________________________________________________________

    This fourth video shows the use of the fast-change button.  The views
    associated with it are entered into START.TXT by the CAD user.  The
    auto-surfacing function is called for each of five perspectives in the
    video.  Auto-3 plane-sorting worked best for each of those perspectives,
    and again, in each case the plane defining a roof section needed a
    single click for the quick fix.

    After that, the use of the macro-g file is demonstrated.  You'll notice
    that this author used an "Auto" button for the data-groups that consist
    of rectilinear elements and the macro-g button for the data-groups that
    consist of curved surfaces with special facade considerations.

    Both methods are frequently employed for both types of data-groups.
    Macro-a files, which have a project-wide scope, routinely include
    Auto function instructions.

    Smooth gradient lighting on curved surfaces can be achieved both with
    an "Auto" method or with a macro file instruction set.

    The video ends with the demonstration of the macro-a button.  The macro-a
    files contain surface-rendering information on a project-wide scope.
    Once you've built a macro-a file for a particular perspective, a single
    click will auto-surface your entire project.

    video length   4 minutes 10 seconds

    INSTRUCTIONS PART ONE  __  DATA ENTRY BASICS

    The data-entry samples and images in the
    right-hand panel follow the same chronology
    as what you are reading in the left-hand panel.

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

    Keep all the files in the folders they came in
    except where instructed otherwise, and do not
    delete any folders.

    Your work with RogCAD will involve just two
    folders -- "empties" and "datah".  Within the
    datah folder, you'll want to create subfolders
    named as you see fit for storing data files for
    projects that are not current, otherwise you'll
    end up with a lot of unrelated data files in
    your working folder (the "datah" folder).

    Leave all the files in the "empties" folder intact.
    Copy files from that folder as needed, and place
    them into the datah folder with a new name suitable
    for your project.

    (The data folder in RogCAD for Windows is named
    "datah" to distinguish it from the "data" folder
    used in RogCAD for DOS.)

    There are five types of data files used in RogCAD,
    and four of them come in x, y and z versions:

      s-.txt   ax-.txt   x8-.txt   cx-.txt   mx-.txt
               ay-.txt   y8-.txt   cy-.txt   my-.txt
               az-.txt   z8-.txt   cz-.txt   mz-.txt

    Numerical data is entered into those text files as

      "standard" points  :      s
       + cubics

       cubic elements    :      ax,ay,az

       strings of cubics :      x8,y8,z8

       curves            :      cx,cy,cz

       combination of    :      mx,my,mz
       standard/cubics/curves

    Each data file into which you've entered data is
    called a "group", and you name them as you see fit.

    When running RogCAD you can display any or all of
    those groups on screen.  Whichever group you've
    most recently called for display is the "active"
    group.

    Projects are typically best broken into groups
    such as:

      s-mainshell.txt
      ax-eastwindows.txt
      ax-northwindows.txt
      s-roof.txt
      s-frontporch.txt
      x8-porchrails.txt
      cz-sidewalk.txt

    Three other important text files that are
    kept in the datah folder are:

      START.TXT   GROUPNAMES.TXT   S-0.TXT

    In START.TXT, you can edit:

      default view
      default color palette
      default background color for CLS
      fast-change views

    You must enter the names of your data files
    into GROUPNAMES.TXT or else RogCAD will not
    recognize them.

    S-0.TXT is an x-y orientation pair of lines.
    RogCAD will not run if that file is removed
    from the datah folder.

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

    Autocubes:     See right-hand panel
                                beginning here -->

    Depending on which type of data file
    you are using, autocube point numbers
    begin at one of the following:

         1
      1001
      2001
      3001
      4001
      5001
      6001
      7001

    A cube has eight points, therefore autocubes have
    point numbers in accordance with the following
    pattern:

      4001 to 4008
      4011 to 4018
      4021 to 4028
      etc            Points xxx9 and xx10
                     are not used.

    A cube has six sides, therefore autocubes have
    plane numbers in accordance with the following
    pattern:

      4001 to 4006
      4011 to 4016
      4021 to 4026
      etc            Planes xxx7, xxx8, xxx9 and xx10
                     are not used.

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

    This author typically separates exterior modeling
    from interior modeling, and therefore does not
    typically model see-through window openings,
    which are illustrated immediately to the right.

    In fact, for strictly exterior modeling, exterior
    walls are often just given zero thickness by
    virtue of using a single autocube to define the
    shell of the structure.

    To achieve see-through window openings, one needs
    to define wall sections as illustrated further
    down.  And that actually goes quickly, as many of
    the values are simply repeated.

    We'll pick up on that again after looking at the
    two autocube diagrams below and to the right.

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

                                               ---->

    See the autocube diagram in the right-hand panel
    for the point and plane numbering scheme for
    autocubes.

    As you build your model, you'll probably want to
    make reference sketches on which to label points
    and planes of your model.  It almost always comes
    in handy.

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

    The image immediately to the right is a repeat
    of the incorrect method of creating window
    openings.

    It would not work with the auto-surfacing
    routine because the walls would get auto-surfaced
    over the window openings.

    Rather, the walls need to be defined in segments,
    thereby creating window openings.  In that case,
    no autocubes are used for the window openings
    themselves -- those openings exist simply as
    "absence of wall".

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

    To the right is the model with those wall segments
    defined, leaving voids which are regarded as
    window openings.

    The groups displayed here are:

      s-simplehouse-3.txt

      s-simpleroof-front.txt

      s-simpleroof-back.txt

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

    It's important to break your project into groups
    so that the auto-surfacing routine will work
    properly on a project-wide scope.

    (The RogCAD algorithm for determining overlapping
    planes is not as sophisticated as what is found
    in the most expensive software.  However, it's
    beneficial to have your project broken in groups
    for other reasons as well, so it's mostly a moot
    point.)

    To the right we see the group named
    "s-simplefloor.txt" auto-surfaced.

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

    Now, to the right we see the group named
    "s-simplehouse-3.txt" auto-surfaced.

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

    Finally, to the right we see the group named
    "s-simpleroof-front" auto-surfaced.

    Note that the lines representing shingles are
    part of the auto-surfacing routine.

    The spacing information for those lines was
    entered into the AUTOFRAMING section of
    st-simpleroof-front.txt.

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

    Go ahead and run rogcad[version].exe

    Click on the "group" button, then select
    various groups for display.  It will be the most
    illustrative if you select them from top to
    bottom, clearing the screen after you've selected
    all the groups of a cluster.

    Click the CLS (clear screen) button to clear the
    screen at any time.

    Make sure to experiment with the view-change
    buttons:

    M  (magnification)
    V and H  (vertical and horizontal shift)
    P/F XYZ  (perspective and focus)

    ---------------------------------------------
    Refer to the sample project videos higher on
    this page to see some button-clicking in
    action.
    ---------------------------------------------

    Below are still images that explain all the
    buttons and menu items.

    Below that, we'll round out part one of these
    instructions by looking at data-entry more
    thoroughly.

    Extremely simple house:

    See s-simplehouse-1.txt

    STANDARD:            point numbers
    1    0,0,0           followed by their
    2    0,0,8           x y z values
    3    0,30,0
    4    0,30,8
    5    20,30,0
    6    20,30,8
    7    20,0,0
    8    20,0,8
    9    10,0,12
    10   10,30,12
    999  999,999,999    end of data read

    Use spaces or commas to separate
    numerical information.

    Connect the points defined above,
    or else RogCAD won't recognize the points:

    LINEG1:
    1,2    3,4    5,6    7,8    1,3
    3,5    5,7    7,1    2,4    4,6
    6,8    8,2    8,9    9,2    6,10
    10,4   9,10
    999,999

    Below, fewer standard points are defined,
    while autocubes are used to define an inner and
    outer shell and to create simple window openings.

    However, THIS IS NOT THE CORRECT METHOD for
    creating window openings, and is included as
    a simple first example of using autocubes.

    The correct method for creating window openings
    is in the example that follows beneath this one.

    --------------------------------------------------
    See s-simplehouse-2.txt

    STANDARD:
    1    10   1    12
    2    10   29   12
    3    10   0    12.5
    4    10   30   12.5
    999  999,999,999

    LINEG1:
    1,2     3,4
    1,4002  1,4008  2,4004  2,4006
    3,4012  3,4018  4,4014  4,4016
    999,999

    NOTE that we can connect standard points to
    autocube points, and we can define planes in
    the same manner.

    start                              rotation index
    point  min xyz          max xyz    and base color
    -----  -------          -------    --------------
    AUTOCUBE400:
    4001   1,1,0            19,29,8          0,5
    4011   0,0,0            20,30,8          0,5
    4021   8,0,3            12,1,7           0,5
    4031   0,4,3            1,8,7            0,5
    4041   0,13,3           1,17,7           0,5
    4051   0,22,3           1,26,7           0,5
    4061   8,29,3           12,30,7          0,5
    4071   19,4,3           20,8,7           0,5
    4081   19,13,0          20,17,7          0,5
    4091   19,22,3          20,26,7          0,5
    999    999,999,999   999,999,999   0,0

    Rotation indexes and base colors have been
    left at the default value for now.

    Again, this is NOT the manner in which autocubes
    are typically combined to build architectural
    structures.  It's for simple illustration.

    Typically, you'll want to define autocubes in
    a manner that will facilitate successful
    sorting of planes for auto-surfacing
    (automatic plane coloring).

    That's covered in the example beneath this
    autocube diagram:

    incorrect window openings:

    correct window openings:

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

    Two images with menu buttons labeled:

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

        The enter key on your keyboard has no functionality in RogCAD.
        You must use the enter buttons provided on the user interface.

        Use your mouse to highlight and delete anything in the text boxes
        as needed.  These little text boxes work just like any text displayed
        by Windows.

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

    COMPREHENSIVE DATA ENTRY - excluding curves

    ----------------------------------------------------------------------
    RELATIONSHIP BETWEEN RUN-TIME AND DATA-ENTRY:

    While RogCAD is running, you can edit a data file, re-save it, and
    then recall that particular data group.  You might want to toggle
    the Show button to Hide to prevent wireframe lines displaying.

    This does not apply to START.TXT or to GROUPNAMES.TXT.  Any editing
    in those files does not take effect until RogCAD is re-started.

    ----------------------------------------------------------------------
    NOTES ABOUT DATA FILES FORMATTING:

    There must be no line spaces in data files or in START.TXT within a
    defined section, since the data is read directly by the program.

    Sections are plainly evidenced by a header in upper case lettering
    followed by a colon and a set of 999s at the bottom of the section
    (which tells the program to stop reading from that section).

    Do not change the 999s or 0,0s at the end of the data reads.
    The program looks for those specific values.

    Even sections without data must not contain line spaces
    between the header and the 999s.

    (Line spaces are allowed in GROUPNAMES.TXT since that file is
    associated with a list box accessible at run time.)

    The top of an s-.txt data file:

    LIGHTDARK       Edit lighting direction preferences.
    WIRECOLORS      Edit colors for wireframe line groups.
    STANDARD        Edit data for standard points.
    LINES           Edit data for point-pair lines.
    AUTOPLANE       Edit data for planes.
    AUTOCUBES       Edit data for autocubes.
    AUTOFRAMING     Edit data for framing lines.
    TRANSFORM       Edit singles, resize, rotate, translate, wrap.

    We already looked at:

       STANDARD points
       LINES
       AUTOCUBES (single autocubes - not string of autocubes)

       earlier in this document.

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

    Data editing in the text files:

    Auto-surfacing editing:

    Edit lighting-direction preferences by choosing the
    lightest and darkest sides for the planes of your data group.
    Refer to the autocube diagram earlier in this document.

    Lighting-direction applies to all planes, not just those
    planes that are associated with autocubes.  The autocube
    diagram serves as the guide all the same.

    Only three sides of any rectangular element are visible for a
    given perspective.  The RogCAD auto-surfacer subtracts 1 from
    the base color of the side you specify as lightest, adds 1 to
    the base color of the side you specify as darkest, and leaves
    the third face color unchanged.

    Assign a base color to your planes based on how you've set up
    your color palette.  Base color assignment is seen further down
    on this page.

    Here we see side 6 designated as the lightest side
    and side 3 designated as the darkest side.  Refer
    to the autocube diagram higher in this document.

    ----------
    LIGHTDARK:
    6,3
    ----------

    Wireframe colors:

    You can break your standard points into five wireframe line groups,
    with each line group assigned a different color.

    Here is what the wireframe color assignment looks like in s-.txt.
    The first color is the background color for the data-file.
    ------------------------------------------------------------------
    Wireframe line colors:

                LG1   LG2   LG3   LG4   LG5   cubics   cubics   cubics
    WIRECOLORS:
    255         254    3     3     3     3      3        3        3
    ------------------------------------------------------------------

    It's sometimes useful to add dummy points or planes
    to a data base in the course of editing.  Just add data
    that won't affect the  displayed output.  This could mean
    just repeating data, or defining points without defining
    point-pair lines to go with them.

    This technique will save you from having to re-number
    points or planes.

    Autoplanes

    Enter points for planes in a pattern consistent
    with framing lines and crosshatch lines.

    Plane,  t1,b1,t2,b2,    direction,color
    ---------------------------------------
    AUTOPLANE:
    1   14,16,28,32              6,13
    2   29,32,30,33              6,13
    3   20,18,27,25              6,13
    4   27,25,22,24              6,13
    5   2,4,10,12                6,13
    6   6,8,10,12                6,13
    7   4037,45,14,48            3,2
    8   16,22,15,21              2,2
    999  999,999,999,999   0,0
    ---------------------------------------

    The direction value refers to which direction the
    plane is facing, in accordance with the auto-cube
    diagram.

    If you subject a plane to rotation using the
    transformation routines, then you will need to
    allow for that.

    The color value is the base color, which is the
    middle color of the three colors you choose for
    the plane.

    Here is why we use the t1 b1 t2 b2 method.
    The auto-surfacer will insert perspectively
    correct lines onto the planes entered into
    AUTOFRAMING1 and AUTOFRAMING2.

    The two routines insert lines perpendicular to
    each other.  It's too difficult to ascertain which
    of the two routines to use for a given plane, so
    just experiment.

    If one is wrong - the other is right!

    Plane, number of framing lines
    -------------
    AUTOFRAMING1:
    6    24
    1    5
    2    16
    14   5
    999,999
    -------------
    -------------
    AUTOFRAMING2:
    4013   24
    4012   24
    4103   12
    999,999
    -------------

    Triangular shapes can be treated just like four-
    sided shapes when it comes to defining planes,
    cross hatching or using framing lines.  You simply
    repeat one of the vertices.  It's as if one side
    of a four sided polygon had length zero.

        The three images in the right-hand
        panel illustrate framing lines:

        Roof shingles, bricks,
        and a stick cabin.

    Repeating cubics along an axis:

    Here are examples of autocubes repeated along the x axis from an x8-.txt data file.

    As with single autocubes, we specify minimum xyz values
    and maximum xyz values.

    The spacing dictates just that - how to space those repeating autocubes.
    The units of measure are the same as used for xyz values.

    First we see autocube block 200, meaning points begin at 2001.
    End cube 208 has points 2081 to 2088.

    Eight cubics will be drawn, spaced out along the x axis every 18 inches.

    Below that we see block 300, with points beginning at 3001.
    Seven cubics will be drawn, spaced out along the x axis every 18 inches.

    We say "cubics" even though in this particular case, those cubics
    are completely flat, two-dimensional, since we used 0 for both the
    minimum and maximum value for z.

    These flat cubics are 9" x 9" floor tiles, with a white and black
    checker-board pattern.  By using additional blocks, we quickly tile
    an entire room:

          See the image of the kitchen
          near the top of this document.

    The final two values are rotation index and base color.

    If you do not subject this data to a rotation by way of using
    the transformation routines, then 0 is the correct value.

     90 degree => rotation index of 1
    180 degree => rotation index of 2
    270 degree => rotation index of 3
    Other degrees => whatever works best: 0, 1, 2 or 3.

    The rotation index and base color work in
    conjunction with the autosurfacing routine.

        x    y    z        x    y     z     spacing     end plane     rot,col
    -------------------------------------------------------------------------
                                                       (201 - 299)
    AUTOCUBE200:
        0    9    0        9    18    0       18          208           0,1

                                                       (301 - 399)
    AUTOCUBE300:
        9    9    0       18    18    0       18          307           0,1
    -------------------------------------------------------------------------

    Cubics repeated along an axis, then mitered and beveled with transformations:

    J plane   pl1   pl2   menu buttons

    Keep in mind that these routines, as well as
    the SJK (string of planes) routine, are
    simply an alternative, or a possible addition
    to, the auto-surfacing routine.

    Also, keep in mind that these routines, if
    utilized, are typically part of your macro-g
    and/or macro-a file.

    During your design phase, it's useful to test
    your design using the menu buttons that
    correspond to these routines.

    To incorporate these routines, as well as
    SJK (strings) discussed next, for planes
    other than autocube planes, you must define
    your planes in accordance with the t1 b1 t2 b2
    methodology, as explained in the autoplane
    and autoframing sections above.

    You'll be prompted for a plane number
    and a color number.

    Dense cross hatching occurs, coloring the plane.

    J plane uses 8000 parallel lines.
    pl1     uses 2000 parallel lines.
    pl2     uses  500 parallel lines.

    See SJK / String of planes up and to the right.

    STRING BUTTON ON MENU

    (SJK routine in macro-g and macro-a)

    You'll be prompted for:

      a starting plane, an ending plane, the increment

         "1" colors every plane from
         starting plane to ending plane,

         "2" colors every other plane,

         "3" colors every third plane, etc.

      a starting color, a color increment.

         If you select a color increment of zero,
         then every plane in the string will be
         the same color.

    Plane increments and color increments
    can have a positive or negative value.

    The SJK (sting of planes) routine is geared
    for repeated cubics (autocubes) created
    in x8, y8 and z8 data files,

    and for creating either gradient lighting
    or flat lighting on curved surfaces.

    Repeatable cubic elements include:

      fence rails, posts, spindles, window elements,
      construction framing members, bricks,
      cement block walls, etc.

    You make use of the increment feature in SJK
    to skip over planes in a patterned fashion,
    using alternating colors as you do so.
    You can reasonably simulate stone work with a
    a little experimentation.

    <---

    Use an increment of 10 or -10 to color a string
    of planes associated with autocubes.  Thus, for
    example, you can quickly paint autocube planes
    433, 443, 453 ... 623, which are all facing the
    same direction; typically using the same color
    for each.

    TRANSFORMATIONS

    Transformation snippets are stored at the bottom
    of the data fles.

    Here is a sampling of transformation snippets
    being used.  They are from three projects, so the
    three groups of snippets are not related to each
    other.

    You can see from the final group of snippets that
    we conduct transformation on top of transformation
    on top of transformation to our heart's desire.

    You can skew a string of cubics, such as for
    creating mitered framing members.  Step 10 will
    transform points of successive cubics:

    first, last, tranx, trany, tranz
    TRAN
    STEP10TRANSLATE:
    2002   3102   0     2.24   -.415
    2003   3103   0     2.24   -.415
    999,999              999,999,999
    --------------------------------

    ----------------------------
    Skewing single cubics:
    Point number, New value
    TRAN
    XTRANSFORMATIONS:
    2006          4.3
    2008          6.7
    2026          4.3
    2028          6.7
    999,999
    ----------------------------

    -----------------------------------------
    first, last, zangle, tranx, trany, tranz
    TRAN
    ZROTATETRANSLATE:
    1       358    270     -7    -13     0
    999,999      999              999,999,999
    -----------------------------------------
    -----------------------------------------
    first, last, zangle, tranx, trany, tranz
    TRAN
    ZROTATETRANSLATE:
    1        38      90    23.89   41.2    8
    201      238      0    .125    62.72   8
    401      438     90    .417    45.49   8
    999,999      999              999,999,999
    -----------------------------------------
    --------------------------------
    first, last, multX, multY, multZ
    TRAN
    RESIZE:
    1  7998     .75    .75    .75
    999,999              999,999,999
    --------------------------------
    --------------------------------
    first, last, tranx, trany, tranz
    TRAN
    TRANSLATE:
    1    7998     .5     0    0
    999,999              999,999,999
    --------------------------------
    ----------------------------------------
    first, last, yangle, tranx, trany, tranz
    TRAN
    YROTATETRANSLATE:
    1    7998    -90       0     0    0
    999,999      999             999,999,999
    ----------------------------------------
    ----------------------------------------
    first, last, xangle, tranx, trany, tranz
    TRAN
    XROTATETRANSLATE:
    1    7998    -90        0    0      0
    999,999      999             999,999,999
    ----------------------------------------

    ---------------- End pasting here.
    TRAN
    STOP

    The images in the right-hand panel are
    examples of skewing, rotations and translations.

    They are not related to the values in the
    snippets above.

    Creating mitered framing members by skewing
    cubics with STEP10TRANSLATE snippet:

    INSTRUCTIONS PART TWO

    -------------------------------------------------
    DISPLAY / RE-DISPLAY YOUR MODEL

      with:

      auto-surfacing

      screen capture and screen set

      macro files (macro-g and macro-a)

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

    AUTO-SURFACING INFORMATION

    Also see the section on data-file editing for auto-surfacing
    near the top of COMPREHENSIVE DATA ENTRY in PART ONE.

    RogCAD's auto-surfacing is performed by one of three
    plane-sorting algorithms.  On the RogCAD interface, they
    are designated by the buttons auto1, auto2 and auto3.

    Depending on the arrangement of modeling elements and
    current perspective, any one of them might work best.

      --------------------------------------------------------
      The better job you do of defining points, planes and
      cubics in your data files -- the better the auto-sorting
      of planes works:

      You might define planes or cubics separately for roof
      overhangs.  And as discussed early in this document, you
      should create openings in walls by defining sections of
      a wall, rather than defining a cubic as the opening.

      You should be able to achieve accurate plane-sorting
      for the auto-surfacing of your model with just a little
      care in defining the elements in your data groups.

      Also:

      The better job you do of splitting your project design
      into groups -- the easier and more enjoyable time you'll
      have with your project.

      Generally speaking, the more groups -- the better.

      There is no extra work involved to speak of
      and has the following advantages:

        It gives you more flexibility for
        customized presentations of your project.

        It gives you methods for analyzing
        elements of your project.

        It keeps your screen uncluttered during
        the design phase.

        It makes it easier to use portions of
        your design in other projects.
      --------------------------------------------------------

    If you need to make a correction after auto-surfacing
    completes, click on the "Plane" button underneath the auto3
    button before switching to another data group.  You will
    need only to provide the plane number.  It will be painted
    with the correct color and with whatever framing lines are
    associated with it.  Be sure to have the hide/show button
    toggled to "hide" before doing that, so that there will be
    no wireframe lines drawn.

      If you want to call auto functions for the active
      group one after another, such as when clicking auto2
      right after auto1, call the group again first, or you
      will get crazy colors.

    To repeat what's stated on the menu-explanation diagram
    further up:  HL1, HL2 and HL3 correspond to auto1, auto2 and auto3.
    Instead of using color, they create a surfaced model in white
    with black border lines.

    The Auto C button is for auto-surfacing curved surfaces with
    smooth gradient lighting.  This is discussed in more detail
    in the curves section further down.

    There is no auto-surfacing button for the mx,my,mz data
    groups in the downloadable versions of RogCAD.  Those data
    files are for combining rectilinear and curved elements,
    and the auto-surfacing routine for those groups combine
    the curve painting routine with the standard routines,
    necessarily sorting and painting the rectilinear elements
    ahead of the curved elements; meaning that it's only useful
    if your curved elements are in front of all the rectilinear
    elements.

    The primary purpose of having mx,my,mz data groups is that
    you can build a skeletal version of your project using
    just some major rectilinear and curved elements in one
    data group, thereby allowing you to rotate a wireframe
    model on the screen that shows the entire project so-to-speak
    all at once -- no stopping to switch groups.  It's a handy
    way to choose good perspectives for viewing your project.

    You can actually use the normal auto buttons to auto-surface
    the mx,my,mz groups, but you will get some odd colors on
    the curved elements.

    Finally, if you find that the manner in which you've defined
    elements in a data file is producing too many errors in the
    auto-surfacing function, it's easy to define a small group
    as needed at the end of your design process by appropriating
    whatever data you need from your troublesome data file(s).
    Redundancy is fine.

      -------------------------------------------------
      The other ever-present and excellent option for
      auto-surfacing, or auto-surfacing correction, is
      the macro-g and macro-a files.
      -------------------------------------------------

    SCREEN CAPTURE AND SET

    To capture your screen in a .bmp image file,
    click on the cap bmp button and enter a filename
    including the .bmp extension.

    To set a .bmp image, click on the set bmp button
    and enter a file name including the .bmp extension.

    You can thus back up your work, provided you use
    the exact same perspective/focus/magnification/
    vertical shift/horizontal shift when you continue
    your work.

    You can also use the set bmp function to import
    a photograph for use as background for your model.

    This function works in conjunction with the
    pic on / pic off button.

    If you have "pic on" activated, then the .bmp image
    remains displayed even as you move your wireframe
    model about on screen.  This is a useful method
    for duplicating perspectives based on a photograph.

    Also, with "pic on" activated, the .bmp image will
    disappear when you click CLS or FILL, but it will
    reappear when you click the SET button.

    With "pic off" activated (default mode), the .bmp
    image disappears when moving your wireframe model
    about.  It also disappears when you click CLS or
    FILL and won't reappear unless you load the image
    again using the set bmp button.

        The right-hand panel shows a RogCAD model
        which made use of imported .bmp images.

    -------------------------------------------------
    macro files

    Terminology:

      macro-a = macro-1, macro-2, macro-3, etc.

      There is no file named macro-a.
      It is short-hand terminology.

      macro-g performs functions on a per group basis.

      macro-a performs functions on a project-wide
      basis.

    Update your macro-g.txt file and possibly
    your macro-[1,2.. ].txt file(s) as you grow
    your design.

    The set of instructions pertaining to your
    data groups are the same in macro-a and macro-g.
    If one of those macro files gets ahead of the
    other during development, that's okay.  Just
    paste sections from one macro to the other.

    The macro-a format on a per group basis is
    slightly different from the macro-g format,
    but it is still easy to paste information from
    macro-g to macro-a and vice-versa.

    Both types of macros come in handy.  The macro-g
    file is nearly indispensible.

    You can use those macro files to get your design
    re-displayed quickly on the screen, provided you
    have not changed your perspective significantly.

    Otherwise, the auto-surfacing routine is the
    method for getting a good surfaced-model
    rendering of your project on screen.  It has
    little or no dependency on perspective point.

    Regardless of whether or not you use the
    screencapture/screenset method to re-display
    your model, you should still make use of the
    macro-g and macro-a files.  They give you
    more flexibility.

    They are fun!

    To make use of the .bmp screencapture/screenset
    as a back-up for your work, you must use the
    exact same view when doing a screen set as was
    in effect when you made the .bmp screen capture.

    Otherwise, any subsequent modeling will not
    mesh with the bitmap (.bmp) image.

    -------------------------------------------------
    MACRO-G

    First, note the following
    -------------------------

    In macro-g.txt only:

    You can disable sections for storage by placing
    an apostrophe in front of the name.  You can
    also store bits of data by placing them below
    the 0,0,0 marker at the bottom of a section.
    You thus give yourself the opportunity to enable
    and disable whole sections or bits of data,
    depending on which perspective you've chosen for
    the macro.

    You can of course also save an entire macro-g
    file pertaining to a particular perspective by
    giving it a meaningful name and storing in your
    datah folder or wherever.  Just change its name
    back to macro-g.txt to make it the current
    macro-g file.

    macro-a of course already has various names
    associated with it, namely macro-1, macro-2,
    macro-3, etc.  There is no file named macro-a.
    macro-a is simply the term used to refer to the
    files just mentioned.

    Building a macro-g file
    -----------------------

    Terminology:

      macro-g file = macro-g.txt

    Look at the macro-g files in the datah folders
    of the various projects that are included in
    this RogCAD software bundle in order to fully
    appreciate the manner and style of creating
    macro-g files.

    macro-g.txt is the macro file into which you type
    modeling instructions for as many data groups as
    you wish.

    Each section of instructions in the macro-g file
    is for a particular data group.

    You can have only one section of instructions
    for each particular group in macro-g.txt.

    In macro-g.txt only:

    Your sections for data groups can be placed
    in any order.  RogCAD will find the group it
    is looking for, which of course is the active
    group (the group you last called using the
    Group button).

    After calling a data group, you click the macro-g
    button.

    You can set the density for plane coloring used
    by the macro files.  200 - 500 are good numbers for
    MACROSJK, and 400 - 8000 are good numbers for
    for MACROPLANE.  Those are the two values beneath
    the filename in the snippet below.

    This is what an empty section in
    macro-g.txt looks like:

    s-filename.txt
    200,800
    ----------------------------SJK
    0,0,0,0,0
    ----------------------------PLANES
    0,0
    ----------------------------CROSSHATCH
    0,0,0,0,0,0
    ----------------------------FRAMINGLINES
    0,0,0,0,0,0
    ----------------------------LINES
    0,0,0

    (We of course also use data files of the
    ax,ay,az,cx,cy,cx,mx.my,mz,x8,y8,z8 variety
    in both the macro-g file and the macro-a files.)

    Refer to INSTRUCTIONS PART ONE and to the
    interface labeling to review what the above
    five functions do.

    They work in the precise same manner in the
    macro-g file and the macro-a files as they
    do in the RogCAD interface.

    Here is what a macro-g section might look
    like once you've entered instructions:

    cz-rockgarden.txt
    200,400
    ----------------------------SJK
       41  49  1  6  0
       101 109 1  6  0
       81  89  1  5  0
       21  24  1  5  0
       61  63  1  6  0
       1   5   1  6  0
    0,0,0,0,0
    ----------------------------PLANES
    0,0
    ----------------------------CROSSHATCH
       1  51  11  31  90  6
       61 111 71  91  90  6
    0,0,0,0,0,0
    ----------------------------FRAMINGLINES
    0,0,0,0,0,0
    ----------------------------LINES
       2   12  7
       3   13  7
       4   14  7
       12  32  6
       13  33  6
       73  93  6
       75  95  6
       77  97  6
       79  99  6
    0,0,0

    -------------------------------------------
    Do not change or rearrange the delineators.

    As always, there must be no line spaces
    between the lines of data.
    -------------------------------------------

    And as always, data may be separated by either
    a space, spaces, or a comma.

    Keep your columns straight for easy reading.

    end of macro-g

    -------------------------------------------------
    MACRO-A

    Refer to MACRO-G immediately above for general
    information.

    The differences between macro-a and macro-g
    are as follows:

      In macro-a, there must be no line spaces
      between sections.

      The filenames are specified in a different
      manner.

      macro-a has two additional functions in
      the group sections, namely AUTOSURFACE
      and HIDESHOW.

      In macro-a, the sections are read by RogCAD
      in sequence (the order in which they appear.)

      In macro-a, you may repeat data-groups.
      It comes in handy.  For instance --
      framinglines are carried out after planes
      are painted.  But perhaps that sequence
      is not working for you in a particular
      situation.  The solution is simple --
      Just add another section for that same
      data group, this time with values entered
      only for plane painting.

      Copy/paste makes everything go fast.

    Next, we look at an example of a macro-a
    file containing four group sections.

    At the end of this snippet, notice the
    GROUPEND command.  It ends the data-read.

    There must be just one MACROGROUPS header
    and one GROUPEND in a macro-a file.

    And just as with macro-g, do not make any
    changes to the delineators.

    MACROSJK and MACROPLANE density is set at
    the beginning of the macro-a file and
    applies to all data groups in the macro-a
    file.

    -------------------------------------------------
    PALETTES

    To change a single color:
    -------------------------

      Make sure the RGB increment is set to zero.
      (small gray Inc button)
      The default increment value is zero.

      Type in the color number you wish to change
      into either the top or bottom box to the left
      of the plus and minus buttons.

      Click each of the three "plus" buttons one time
      each.

      Now you will see the current RGB values for the
      particular color.

      Select a non-zero increment.  "1" or "5" is
      usually the best choice.

      Click plus or minus buttons and notice both the
      text box value changing and the color in the
      color chart changing.

      You can also type in RGB values followed by
      clicking the enter button.
      Valid RGB values are 0 to 255.

    Save Palette:
    -------------

    The changes you made to the palette are not saved
    as a new .pal file unless you click the "Save
    Palette" button and give the file a new name (or
    the same name as the current .pal file if you're
    sure you want to overwrite that file).

    Do not include the .pal extension.

    Get Palette works the same way.

    Palettes are saved to the pals folder.

    You can use the Make bmp button to create a .bmp
    picture of the current color chart.  Do type in
    the extension .bmp after your filename.  You will
    find your bitmap file in the pal-bmps folder.

    To use the Graduated feature:
    -----------------------------

    Type in a start color in the left upper box
    and an end color in the left lower box.

    The upper box must contain a lower numbered
    color than the lower box.

    Type in starting and ending RGB values.

    The red value must be higher in the upper box
    than the red value in the lower box.

    Same of course is true for green and blue.

    Click Graduated, then its enter button.

    Of very little importance:
    --------------------------

    BC background color button is for changing the
    color used in conjunction with the FILL button.

    To change background color:

      Make sure the RGB increment is set to zero.

      Click on the BC button.

      Type into the box just above the Back Color
      button your desired color number from the
      color chart.

      Click each of the three "plus" buttons
      immediately to the right one time each.

      Click the enter button immediately to the right.

      (All these clicks are on the lower set of the
      color buttons.)  This will fill the screen with
      your desired color.

    From then on, during your current session, the
    screen is filled with that color when you click
    the Fill Screen button.

    The above method is rarely used.

    Background color is edited in START.TXT.

    In the video below, an old house photo is imported
    into RogCAD.  Perspective, focus, magnification,
    vert & horiz shift are adjusted until the original
    parameters of the old photograph are matched.

    The pic off / pic on button is set to pic on.

    This type of work has come up several times for
    this author.  Old photos are often all we have to
    go by when modeling buildings or portions there-of
    that no longer exist.

    This author has been commissioned for just such
    tasks by renovators of historic buildings.

    After clearing the screen again, the "SET" button
    is clicked, restoring the .bmp image:

    Get commissioned for historic restoration.
    41 seconds:

    The images below were all helped along by
    utilizing the macro text files:

    macro-a, continued from left-hand panel:

    In the snippets that follow you'll see:

    ------------------------------------------
    s
    steps    (the front steps of a house)

    s refers to s type of group.
    s-steps.txt is the group thus referenced.
    ------------------------------------------

    The number entered into the AUTOSURFACE
    function corresponds to either Auto1, Auto2,
    Auto3, Auto1N, HL1, HL2, HL3 or HL1N
    as used in the RogCAD interface at run-time.

    1 = Auto1  2 = Auto2  3 = Auto3    7 = Auto1N
    4 = HL1    5 = HL2    6 = HL3     10 = HL1N

    Auto1N and HL1N can be used for narrow planes.
    The object might get rendered a couple seconds
    faster.

    Lightest and darkest side for auto-surfacing
    is set in the data-files.

    The other additional function in macro-a is
    the HIDESHOW function.  When the value is
    set to 0, the wireframe lines of that data group
    will not display.  That setting is by far the
    most common, since wireframe lines would defeat
    the purpose of surface-modeling.  However,
    situations do come up where it's actually
    desirable to display the wireframe lines for
    a data group as part of the finished model.

    MACROGROUPS:
    400,2000
    =======================================nextgroup
    s
    steps
    ----------------------------AUTOSURFACE
    2
    ----------------------------SJK
    0,0,0,0,0
    ----------------------------PLANES
    0,0
    ----------------------------CROSSHATCH
    0,0,0,0,0,0
    ----------------------------FRAMINGLINES
    0,0,0,0,0,0
    ----------------------------HIDESHOW
    0
    ----------------------------LINES
    0,0,0
    =======================================nextgroup
    cz
    walk
    ----------------------------AUTOSURFACE
    0
    ----------------------------SJK
    1  9  1  4  0
    0,0,0,0,0
    ----------------------------PLANES
    0,0
    ----------------------------CROSSHATCH
    0,0,0,0,0,0
    ----------------------------FRAMINGLINES
    0,0,0,0,0,0
    ----------------------------HIDESHOW
    1
    ----------------------------LINES
    0,0,0
    =======================================nextgroup
    cz
    rock
    ----------------------------AUTOSURFACE
    0
    ----------------------------SJK
    121 129 1   10  0
    21  29  1   10  0
    1   9   1   6   0
    61  70  1   10  0
    41  49  1   6   0
    101 109 1   10  0
    81  89  1   6   0
    0,0,0,0,0
    ----------------------------PLANES
    0,0
    ----------------------------CROSSHATCH
    1  11  10  20  18  7
    1  10  11  20  6   5
    41 51  50  60  16  7
    41 50  51  60  5   5
    81 91  90  100 11  7
    81 90  91  100 3   5
    0,0,0,0,0,0
    ----------------------------FRAMINGLINES
    0,0,0,0,0,0
    ----------------------------HIDESHOW
    0
    ----------------------------LINES
    0,0,0
    =======================================nextgroup
    s
    lsteps
    ----------------------------AUTOSURFACE
    2
    ----------------------------SJK
    0,0,0,0,0
    ----------------------------PLANES
    0,0
    ----------------------------CROSSHATCH
    0,0,0,0,0,0
    ----------------------------FRAMINGLINES
    233 234 235 236  9  7
    233 235 234 236  6  6
    0,0,0,0,0,0
    ----------------------------HIDESHOW
    0
    ----------------------------LINES
    0,0,0
    GROUPEND

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

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

    RogCAD now has a Grad 150 button on its
    interface.  It works like the Graduated
    button, except that you enter just high-
    value numbers for red, green, blue in the
    top row red/green/blue row.

    Graduated colors will fill the chart from
    colors 1 to 150.

    INSTRUCTIONS PART THREE

    CURVES:

    Curved surfaces are built from one of three basic
    orientations: x based, y based, or z based.  An
    arched doorway would be x or y based.  A curved
    walkway would be z based.  Other objects might
    land somewhere in between and be modeled using
    either x, y, or z, or rotated through any angle
    by using the TRANSFORMATION functions.

    The following image shows some simple arcs made
    with cx-.txt.  To the right is a snippet from
    cx-.txt used to generate them.
                                               ----->

    You'll notice in the images above and below that
    each arc consists of two long curved parallel
    lines and 50 short lines connecting them.  What
    we really have are 49 small rectangles simulating
    a curve.  Each (double) curve consists of 100
    data points, regardless of the arc length.

    You can specify any even number of points for
    your curve.

    The number of planes generated will be half the
    number of points you specify minus 1.
    More on that further down.

    These points, lines and planes are generated
    automatically by the curve routine.  You just
    specify the start degree, the arc length, two
    radii, the offset, and the modifiers (which
    consist of three numbers).

    If the radii (y and z in this case, since the
    curve is wrapping around the x-axis in cx-.txt)
    are equal, then you will generate a perfectly
    circular curve.

    If the radii are not equal, you will generate an
    elliptical curve.

    Each curve must consist of two curve-lines, though
    they need not be uniform within that pair in any
    manner:

    You can vary the radius between the top line and
    the bottom line, or you can vary the offset, or
    both, depending on what architectural element you
    are building.

    You can generate a limitless variety of irregular
    curved surfaces.

    You can also make the two curve-lines (top line
    and bottom line) identical, thereby effectively
    generating a single lined curve if you need to.

    You can terminate the data read by placing the
    999 beneath whichever line pair you wish to be
    your last.

    Curve painting

    Keep in mind that RogCAD's auto-surfacing
    routine will paint your curves for you with
    smooth gradient lighting.

    The Auto C button activates it at run-time.

    You edit DARKESTCOLOR in the cx,cy,cz,mx,my,mz
    data files by specifying a color number.  Your
    curves will be given smooth gradient lighting,
    with the closest plane based on perspective
    receiving the lightest color.

    But there are plenty of circumstances where
    you will prefer to use the macro-files,
    or -- when testing your design -- the string
    button on the user-interface.

    The string button is the equivalent of the
    SJK routine in macro-g.txt and the macro-a files.

    The methods described below might seem a bit
    slow, but once you've entered the numbers into
    macro-g.txt and/or macro-a.txt, you can display
    the curves in surfaced form with the click of
    a button.

    The above image shows the same simple arcs of the
    previous image after being auto-surfaced using
    the string routine manually or as part of
    macro-g.txt or a macro-a text-file.

    You can of course paint the planes of a curved
    surface one at a time, and you might find
    yourself doing that for a plane here and there
    on the user-interface while testing your design.

    But of course the simplest way to paint an arc
    or a portion thereof, is to use the string
    (or SJK) method.

    See the SJK section higher in this document,
    just above the TRANSFORMATIONS section, to review
    the methodology.

    Devote enough of your color palette to allow for
    the number of points (and therefore planes) you
    are specifying for your curve data.

    You use the "graduated" button on the user-
    interface to create a smooth gradient differential
    for your palette over your specified range of
    color numbers.

    Typically, when shading a full circle object
    using the string button (or SJK routine), one
    would shade the planes furthest away first,
    covering 180 degrees, then the planes that are
    nearest.

    And recall that a color increment of 0 will color
    all the planes the same color.

    Here is the code snippet that generated the image
    to the left.

    number
    of                radius   offset  weight
    points  start,arc  Z  Y    X,Y,Z  left,inc  stretch

    100
             90  180   10,10   0,0,0      0,0       0
             90  180   11,11   0,0,0      0,0       0
    100
            180  180   13,13   0,0,0      0,0       0
            180  180   14,14   0,0,0      0,0       0
    100
            270  180   16,16   0,0,0      0,0       0
            270  180   17,17   0,0,0      0,0       0
    100
            350  180   19,19   0,0,0      0,0       0
            350  180   20,20   0,0,0      0,0       0
    999
            360  180    0,0    0,0,0      0,0       0
            360  180    0,0    0,0,0      0,0       0

    number of points/pair must be even number.

    number of planes/pair = (num of points / 2) - 1

    Example:

    num of pts   point numbers    plane numbers
    ----------   -------------    -------------
    20            1-20             1-9
    20           21-40            21-29
    34           41-74            41-56
    12           75-86            75-79

                  8000 max

    Up to 400 pairs (you'll never come close).

    Obviously, it's advantageous to use multiples
    of ten for number of points if you want to
    get a handle on what the plane numbers are.

    There can be circumstances where you'll want
    to vary the number of points in the sections
    (pairs of curve lines) within a data file.

    But to make things easy to keep track of,
    it's best to use the same number of points
    throughout a data file.

    Beneath this image of chairs, you'll see the data that generates the chair-back.

    chair-back

    number                   radius            offset             weight
    of                      ---------         ------------       --------
    points  start   arc      X      Y         X     Y     Z      left inc   stretch

    CURVDATA:
    40
            295.9   51.8    17.75  17.75      7   17.05  32.5      0    0      0
            299     58      19.5   19.5       7   17.05  32.5      0    0      0
    40
            299     58      19.5   19.5       7   17.05  32.5      0    0      0
            299     58      19.5   19.5       7   17.05  20.75     0    0      0
    40
            299     58      19.5   19.5       7   17.05  20.75     0    0      0
            295.9   51.8    17.75  17.75      7   17.05  20.75     0    0      0
    40
            295.9   51.8    17.75  17.75      7   17.05  20.75     0    0      0
            295.9   51.8    17.75  17.75      7   17.05  32.5      0    0      0
    999
             0      90      10     10         0     0     0        0    0      0
             0      90      10     10         0     0     0        0    0      0

    Complex curves

    You can model complex shapes, such as a boat hull
    with complex curved boards, each board molded to
    its neighbor.  Molding one complex curve to another
    is very simple.

    You simply repeat the bottom line of a pair as the
    first line of the next pair.  The variation need
    (and typically should) occur only within a curve
    pair (of lines).

    The "left,inc" feature, as seen in the data segment
    below, is the trickiest to use.  Comprehensive
    instructions for it are just a bit difficult to
    put into writing.

    What it does is deform your curve in a "weighted"
    fashion in the direction parallel to the axis of
    rotation.  You can weight the deformation in
    various ways by choosing various values for "left"
    and "inc".

    More on that after the data segment:

    More discussion follows this data section:

    Here is the data that generated the boat hull with the dark blue background above:

    number                   radius            offset             weight
    of                      ---------         ------------       --------
    points  start   arc      X      Y         X     Y     Z      left inc   stretch

    CURVDATA:
    100
              90    160     18      44        0     0     8       -90   2.6   -4.0
              90    160     18      43        0     0     7       -90   2.6   -3.6
    100
              90    160     18      43        0     0     7       -90   2.6   -3.6
              90    160     17.33   41        0     0     5       -90   2.6   -3.2
    100
              90    160     17.33   41        0     0     5       -90   2.6   -3.2
              90    160     16      39        0     0     3       -90   2.6   -2.8
    100
              90    160     16      39        0     0     3       -90   2.6   -2.8
              90    160     14      37.5      0     0     1.5     -90   2.6   -2.4
    100
              90    160     14      37.5      0     0     1.5     -90   2.6   -2.4
              90    160     11.33   36        0     0     0       -90   2.6   -2
    100
              90    160     11.33   36        0     0     0       -90   2.6   -2
              90    160      8.33   35        0     0     -1      -90   2.6   -1.6
    100
              90    160      8.33   35        0     0     -1      -90   2.6   -1.6
              90    160       .33   33        0     0     -3      -90   2.6   -.8
    999
              0      90      10     10        0     0     0        0    0      0
              0      90      10     10        0     0     0        0    0      0

    Don't worry about what "left" or "inc" stand for.
    Try numbers between -90 and 90 for the value of
    "left".

    Choosing left = -90 and inc = 1.3 will gradually
    pull the curve higher from one end to the other.

    Having non-zero values for "left" and "inc" leads
    necessarily to assigning a value for "stretch".

    "stretch" provides the magnitude of the deformation.

    Assign positive or negative values, and remember,
    you can modify the top curve-line differently from
    the bottom curve-line with any of these variables.

    Choosing inc > 1.3 when left = -90 will cause the
    curve to begin to dive back down again along its
    way.  The higher the value for inc, the sooner the
    curve begins to dive again.

    Setting left = -90 and inc = 3.5 will bring the
    tail end of the curve back down to the same height
    as the front end.  Very high values of inc create
    a roller coaster curve.  The lower the value of
    "left", the higher the value "inc" can be without
    getting the roller coastering.

    Different values of "left" yield different shaped
    curves, even if the overall rise is the same.

    By the way, the use of the words "height", "rise"
    and "dive" above are arbitrary.  Depending on which
    curve module (x, y or z) you're in, those terms
    could just as well be referring to sideways motion.

    REPEATING CUBICS ALONG CURVED PATHS

    The first use of this routine was the modeling of
    port holes on the hull of a simple ship, the image
    of which is a little higher on this page.

    The key to success in using this routine is lots of
    experimenting, which fortunately does not take much
    time.

    The databases below will at least provide you with
    a good baseline.

    The most important thing to remember is to specify
    spacing = 0 in the "string of autocube" sections.

    The data files for that are x8, y8 and z8.

    Determining the correct xyz values for this
    routine can be vexing.  To avoid confusion, you
    might want to rely on the ZWRAP transformation
    snippet for all tasks of this nature, then rotate
    your database with the rotation snippets.

    hub1
                                        end
      min xyz       max xyz    spacing  cube  rot,col
      -------       -------    -------  ----  -------
    AUTOCUBE000:
    -1  -1  -.5     0   1  .5     0      35     0,52

    AUTOCUBE100:
     0  -1  -2      1   1   2     0     135     0,52

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

    hub2

    AUTOCUBE000:
    -1  -1  -2     0   1   -1     0      35     0,52

    AUTOCUBE100:
     0  -1  -2      1   1   2     0     135     0,52

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

    In the TRANSLATE snippets below, we create a
    diameter for our curve.  Since we're wrapping
    our curve around the y axis using YWRAP (see
    further down), we create a diameter by translating
    the x or z values.  Switching from x to z would
    necessitate switching the x and z values in the
    AUTOCUBE section above.

    Transformations snippets for hub1 and hub2

                   x     y     z
    TRAN
    TRANSLATE:
    1      358     50    0     0
    999,999      999,999,999

    TRAN
    TRANSLATE:
    1001  1358     50    0     0
    999,999      999,999,999

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

    start   start            how    lift
    first   last    angle    many

    TRAN
    YWRAP:
    1       8       10       36      0
    999,999         999        999,999

    TRAN
    YWRAP:
    1001    1008    10       36      0
    999,999         999        999,999

    You'll notice in the YWRAP snippets above for hub1
    and hub2 that the first and last point refer to
    the first autocube of the string.

    The number under "how many" needs to be less
    than or equal to the number of cubics you are
    stringing.

    Our end cube here is 35, therefore we are
    stringing 36 cubics (0 to 35).

    The lift value is a simple thing.  You'll see it
    used in the ZWRAP snippet for the spiraling steps
    below.  Any number, decimal or whole, is valid.

    -------------------------------------------------
    steps
                                        end
      min xyz       max xyz    spacing  cube  rot,col
      -------       -------    -------  ----  -------
    AUTOCUBE000:
    -3  -4   0     3   4   1      0     71      0,42
    -------------------------------------------------

    Transformations snippets for steps

    first  last     x    y    z
    TRAN
    TRANSLATE:
    1      718     0    50    0
    999,999         999,999,999
    ----------------------------------------
    start    start    angle      how
    first    last     per cube   many   lift
    TRAN
    ZWRAP:
    1          8        10       71      1
    999,999           999            999,999
    ----------------------------------------

    -------------------------------------------------
    hub1

    -------------------------------------------------
    hub2

    -------------------------------------------------
    steps

    INSTRUCTIONS PART FIVE

    Utilizing four methods to generate six facade elements in a single CAD model:

    The roof shingles, siding and garage door
    joints are simulated with framing lines.

    The rock gardens utilize SJK, varying both
    plane and color increments.

    The cement-block wall on the garage is
    modeled by using repeating autocubes in
    x8-.txt:

    The natural stone on the front of the house
    is a photograph.

      Paint Shop Pro version 4.12 freeware is
      used to give the photograph a perspective
      that matches the CAD model.

      The photograph is then imported into RogCAD
      using the set bmp button after the ground
      data group has been called.

      The rest of the data groups are then
      called by way of a macro file.

      This is just one of the many advantages
      of splitting your project into many small
      groups.

    GRIDS - PLAN AND ELEVATION VIEWS - INSIDE VIEWS

    We use the x8,y8,z8 data files to create custom
    grids by which to analyze the positioning and
    sizing of the elements of our project.  Using
    multi-color lines within the grids and within
    your objects makes for easy distinctions and
    measurements.

    x8-X-Y-GRID.txt, x8-X-Z-GRID.txt, x8-Y-Z-GRID.txt
    are general-purpose grids included in the sample
    datah folders.  To increase or decrease their
    magnification, you could simply use a RESIZE
    snippet.  Though to avoid confusion, you might
    want to change the values in the AUTOCUBES
    sections.

    It's definitely handy to use the TRANSLATE,
    XROTATETRANSLATE, YROTATETRANSLATE,
    ZROTATETRANSLATE snippets to shift grids around
    from time to time, possibly saving various
    incarnations of your grids using various names.

    Plan views and side elevation views of your
    model are obtained by choosing the x / y / z
    "full" or "zoom" views from the "fast change"
    button's list box.  It's useful, especially in
    conjunction with grids as a background, for
    showing you just what values are needed for
    rotating and sliding your objects using the
    transormation snippets.

    You can also use a RESIZE snippet to create a
    plan drawing by setting all the z values in your
    data file to zero.  Similarly, you can create
    side elevation views by setting x or y values
    to zero.

    You can take your perspective point inside an
    object.  Some errant lines can occassionally
    appear in such case.  Try shifting your
    perspective a bit.  If errant lines persist,
    you can simulate an inside view by placing your
    perspective point outside the object and
    adjusting your magnification and focal point
    to create the same view as if you were truly
    inside.  RogCAD allows for wide angle lens shots
    by bringing the perspective point in close and
    selecting a focal point and magnification to
    create the desired effect.

    x8-.txt was used to make three grids:

    x8-X-Y-GRID.txt
    x8-X-Z-GRID.txt
    x8-Y-Z-GRID.txt

                001-198   201-298   401-598   601-798
    WIRECOLORS:
                  200       200       200       231

    The z values are all zero of course.

    The top three rows have spacing of two
    which yields actual spacing of one
    (figure the logic) and form the gray lines
    of x8-X-Y-GRID.txt.

    The 600 group cubes have spacing of ten, and
    form the red lines of x8-X-Y-GRID.txt.

    300,400,500 are duplicates of 000,100,200.
    700 is a duplicate of 600.

    By subjecting 3001 - 5998 and 7001 - 7998
    to a rotation and translation we achieve
    x8-X-Z-GRID.txt.

    Additional rotations produce x8-Y-Z-GRID.txt.

    AUTOCUBE000:
    0  0  0      1  65  0       2       9        0,0
    AUTOCUBE100:
    0  0  0      1  65  0       2     109        0,0
    AUTOCUBE200:
    0  0  0      1  65  0       2     209        0,0
    AUTOCUBE300:
    0  0  0      1  65  0       2     309        0,0
    AUTOCUBE400:
    0  0  0      1  65  0       2     409        0,0
    AUTOCUBE500:
    0  0  0      1  65  0       2     509        0,0
    AUTOCUBE600:
    0  0  0      1  65  0      10     606        0,0
    AUTOCUBE700:
    0  0  0      1  65  0      10     706        0,0

    x8-Y-Z-GRID.txt
    transformations:

    ----------------------------------------
    first, last, zangle, tranx, trany, tranz

    TRAN
    ZROTATETRANSLATE:
    3001   5998    90      65      0      0
    7001   7998    90      65      0      0
    999,999      999             999,999,999
    ----------------------------------------
    ----------------------------------------
    first, last, xangle, tranx, trany, tranz

    TRAN
    XROTATETRANSLATE:
    1     7998     90      0      0      0
    999,999      999             999,999,999
    ----------------------------------------
    ----------------------------------------
    first, last, yangle, tranx, trany, tranz

    TRAN
    ZROTATETRANSLATE:
    1     7998     90      0      0      0
    999,999      999             999,999,999
    ----------------------------------------