All of the material in this distribution is Copyright (C) 1988 Gary Hale. Please distribute this program far and wide using any means at your disposal, but do not charge any money for it beyond a nominal copying charge. Read this: Plans was written to speed up the drafting process on the Amiga. Plans is being released as SHAREWARE. It is not in the public domain. I recommend a donation of $50.00 for non-commercial use and $150.00 for commercial use of this program (I will accept smaller amounts). When I receive a donation I will send more information about using this program and news about upgrades and other utilities I am working on. Gary Hale 1156 West 2nd Street Eugene, OR 97402 (503) 342-4583 (503) 925-4130 This program is provided without any warranty, expressed or implied. Docs for Plans 2D CAD Software Version 1.0 Date: 8/22/88 I. Introduction Plans is a high speed, versatile drafting program. Plans uses a heirarchical (DOS like) data structure allowing the user to manipulate low level primitives or higher level objects (including the entire drawing). The operations permitted on the directory (object) level include: Copy, Move, Delete, Array Angle, Array Grid, Translate, Rotate, Color, Size (distort), Group and Rename. In addition the user may set the view to include the entire drawing or only any directory. Ia. General The library file arp.library must be in your LIBS: directory. A powerful Undo function is available after almost any action by pressing 'u' on the keyboard or clicking the 'Undo' gadget. II. User Modes A. Creation Modes About the drawing process: Any process in which items are being created may be aborted at any time prior to the final action by pressing the right menu) mouse button. 1. Line To begin a line, click the left mouse button inside the drawing window. To continue a line, click again. To finish a line, click twice in the same place. 2. Rectangle To begin a rectangle, click inside the drawing window. Move the mouse. When the rectangle is the right size, click again. 3. Polygon To begin a polygon, enter the number of sides desired in the PP gadget, then click in the drawing window. When the polygon is the correct size and orientation click again. 4. Box To begin a box, enter the angle of the ends desired in the EA gadget, enter the width of the box in the LW width gadget, then click in the drawing window. When the box is correct click again. 5. Arrow To begin an arrow, enter the width in the TW text width gadget, the height in the TH text height gadget, the slant (0 - 4.0) in the TS text slant gadget, then click in the drawing window. When the arrow is correct, click the left mouse button again. 6. Freehand To begin a freehand line, press the left mouse button and hold it down while drawing by moving the mouse. Releasing the left mouse button finishes the line. To erase anything immediately after creating it, press 'u'. 7. Circle To begin a circle, click the left mouse button inside the drawing window where the center should be. Stretch the circle to the correct size and click again. 8. Arc To begin an arc, click where the center should be. The second click establishes the beginning angle, and the third click determines the finished radius and ending angle. 9. Ellipse To begin an ellipse, enter the ellipse rotation angle in the EA ellipse angle gadget and click where the center should be. Stretch the ellipse to the correct width and height and click again to finish the ellipse. 10. Part To use a part, choose the part you want a copy of in the Part gadget (use the left and right gadgets to cursor through your choices), then click in the drawing window. A copy of your choice will appear. When in the proper position, click again. See more Parts Information below. 11. Dimension To begin a dimension line, enter the desired text width in the TW gadget, the desired text height in the TH gadget, the desired text slant (0 - 4.0) in the TS gadget, and the desired number of digits following the decimal point in the DP gadget. Now click in the drawing window. Stretch to the other point and click again. Now the dimension line can be moved anywhere in the drawing until the third click positions it. 12. Text To begin text, enter the desired text width in the TW gadget, the desired text height in the TH gadget, the desired text angle in the TA gadget and the desired text slant (0 - 4.0) in the TS gadget. Now click in the drawing window. Enter text by typing on the keyboard. If you make a mistake, use the backspace key to erase it. Hitting the return key finishes one line of text and begins another. Hitting the return key twice or clicking the menu button finishes the text. 13. Point To mark a point in the drawing, set the width of the marker in the LW width gadget and the angle of the crossbar in the EA angle gadget. Now click where a point marker is desired. 14. Isometric Cylinder Enter the isometric width of the cylinder desired in the LW width gadget. Now draw a cylinder with two clicks. 15. Isometric Block Enter the isometric width of the block desired in the LW width gadget. Now draw a block with two clicks. B. Editing Modes About the editing process: Any process in which items are being edited may be aborted at any time prior to the final action by pressing the right (menu) mouse button. Selection of an object to modify (Color, Rotate, Size, Move, Translate, Array Angle, Array Grid, Delete, Group) is normally done by clicking the left mouse button when the mouse cursor is over a line. This selection process may be extended to the directory level by holding down the left shift key during the first mouse button click, then moving through the directory tree by using the cursor keys (Up, Left, Down, Right) to move from one branch to another. 1. Make Line Make Line changes entities that are not lines into lines, so that they can be edited with the line editing tools (hook, insert, break, fillet and round corners). The entities do not look any different, but they can no longer be modified in their original forms. 2. Hook Hook allows the user to move points on a line to a new position. Click on the desired line within the snap size of an endpoint, and the point will follow the cursor to a new position. Click the left button to finish, or the right button to abort. Hook also allows resizing of circles, ellipses, and polygons, re-entry of arcs, and moving either end of dimension lines, boxes, isometric cylinders, isometric blocks, and arrows. 3. Insert Insert inserts new points in a line. Click on a line to begin, and click again to finish. 4. Break Break makes one line into two lines. Click on a line to begin, A new point appears to follow the mouse. Click to position the first end. Now another new point appears, connected to the second line. Position and click, or press the menu button (right button) to abort the entire process. 5. Move Move allows the user to re-position an item. Just click on the item to be moved, now the item will follow the cursor. Click again to set the item down in the new place. 6. Copy Copy makes copies, one at a time. To begin, double-click on an item. A copy will appear to follow the cursor, position and click when ready. Now the user may click again with the left button to place another copy in the drawing, or press the menu button to select another item to copy. 7. Undo Undo restores the drawing to the state it was in before the last action was taken. When an action cannot be undone the screen will blink. 8. Size Size enables entities to be scaled up or down or distorted or mirrored. To begin, enter the width multiplication factor (1.0 = same width, -1.0 to mirror horizontally) in the W width gadget, and the height multiplication factor (1.0 = same height, -1.0 to mirror vertically) in the H height gadget and the position of the sizing cursor. The sizing cursor may be located at the crosshairs by pressing the 'x' key. Now select an entity to scale or distort. Sizing an item (width factor = height factor) leaves the item in it's original type, but distorting (width factor does not = height factor) will convert a circle to an ellipse, a rotated ellipse to a curved line, and an arc to a curved line. 9. Rotate Rotate rotates entities around the rotation-sizing cursor. To begin, enter the rotation increment in the A angle gadget. Now select the item to rotate. The item will appear in it's new position. Now one more left button click will finish the operation or a menu button press will abort. 10. Color Color changes the color and linetype of an entity to the current color and linetype. 11. Modify Modify enables the user to modify the attributes of an item, such as angle, width and height. To use this tool, enter the desired attributes in the appropriate text gadgets, then click the mouse pointer over an item. The item will be highlighted in its new form, click the left button again to finish this operation or the right button to abort. 12. Delete Delete deletes items. To restore them press 'u' on the keyboard. 13. Array Angle To use array angle, enter the desired angle increment in the A angle gadget, enter the desired number of copies in the I counter gadget and position the rotation-sizing cursor at the position around which the copies should rotate. Now choose the item to array. 14. Array Grid Array grid makes linear or rectangular arrays at any angle. To begin, enter the desired angle of the grid in the A angle gadget (0 is the most common angle), enter the width (X) offset in the W width gadget, enter the height (Y) offset in the H height gadget, enter the number of items across in the I counter gadget and enter the number of items down in the J counter gadget. I and J must both be greater than 0 (one of them may be set to 1). 15. Translate Translate moves items a specified width and height from their origin. To begin, enter the width offset in the W width gadget (may be negative), enter the height offset in the H height gadget gadget. Now each item selected will be moved (translated) this distance and direction. 16. Group Group makes onscreen items available for use as parts. If this should be a new Part, choose New Part in the List Functions menu. This will begin a new Part. Now, set X and Y gadgets to a good place to use as a reference point for the Part. Now, select an item (this may be a high level object), the final click will put a copy of the item in the current Part. Multiple items may be added to a Part at any time. 17. Fillet This can only be used on lines. Enter the desired fillet radius in the LW width gadget. Now click on a line near a point where two segments of a line meet. An arc will be highlighted. Click the left button again to add this arc to the drawing or the right button to abort the operation. 18. Round Corners This can only be used on lines. Enter the desired corner radius in the LW width gadget. Now click on a line near a point where two segments of a line meet. An arc will be highlighted. Click the left button again to replace the sharp corner with this arc or the right button to abort the operation. C. List Functions 1. Rename Rename changes which directory an item resides in. To begin, scroll the destination directory into view in the Dir gadget. Now each item selected will be renamed into the current directory. 2. Set View Set view enables the user to set the current view to the root directory (to see the entire drawing) or the current directory (to look at only a branch of the directory tree). 3. New Child New child creates a new directory in either the root directory or in the current directory. The new directory becomes the current directory. 4. New Parent New Parent creates a new directory, putting either the root directory or the current directory inside it. If the current directory had a parent, that parent is now the parent of the new directory. 5. Delete Directory This deletes the current Directory (named in the Dir gadget). 6. New Part This creates a new Part. To make the Part useful, give the Part a name and use Edit Parts and/or Group to define the new Part. 7. Delete Part This deletes the current Part (named in the Part gadget). 8. Edit Parts Choosing edit parts allows the user to draw any part as if it were a drawing unto itself. All the usual functions are available. To choose a different Part for editing, use the left and right part selection gadgets. 9. Edit Drawing When finished editing parts, this returns to the normal drawing mode. 10. Purge Directories This function removes empty directories from the drawing database. 11. Purge Parts This function removes empty directories or parts from the parts database. D. Project Menu 1. Save a. Root Save root saves the entire directory tree to disk. The great file name requester is provided courtesy of Microsmiths' Charlie Heath. Be sure that arp.library resides in your LIBS: directory or Plans will not run. b. Dir Save Dir saves the current directory to disk. c. Parts Save Parts saves all of the Parts to a file which can be reloaded at another time or into another drawing. Parts files look funny if loaded as a drawing. d. Part Save Part saves just the current Part to disk. 2. Load a. Root Load Root loads a drawing or partial drawing saved previously as a child of the root directory. b. Dir Load Dir loads a drawing or partial drawing saved previously as a child of the current directory. c. Parts Load Parts adds Parts to the Parts list, making them available to the user. d. Part Load Part adds a single Part. 3. Plot a. Full Plot Full writes plotter instructions to a file describing the entire drawing in a size that will fill the plotter paper. Plot asks for a filename to send a plot file to. This name may be PAR: or SER: for a direct plot. See the Plans- Configuration instructions below. b. Scaled Plot Scaled writes plotter instructions to a file in a size that is specified in the PX plot X center, PY plot Y center, and SC scale gadgets. These are the same gadgets that are used to specify the drawing zoom window. See Frame elsewhere. Also see the Specification instructions below. c. Window Plot Window writes plotter instructions to a file describing the current view in the drawing window. 4. Export Drawing Export Drawing writes the entire drawing or the current directory to a file in a format that a particular CAD program can read. This format has turned into a pseudo standard for importing drawings into desktop publishing and other programs. 5. Import Drawing Import Drawing loads files that are in another format into the drawing database. 6. Start Over After asking "Delete everything?" this deletes everything so the user may start a new drawing. 7. Quit After asking "Really quit?" this quits the program. E. Preferences Menu 1. Modify Colors The Microsmiths palette requester adjusts the screen colors. To make the program start with new colors edit the Plans-Configuration file. 2. Set Background Pen Set the back ground color to the current pen color. Any drawing with the current pen color is now invisible (but it will still show up on the plotter). 3. Crosshairs This toggles the crosshair display. 4. Status Line This toggles the status line display. 5. Highlighting If you are going to manipulate directories a lot, this may save some time. Instead of highlighting all the parts in a directory, the program just draws a box around the parent. F. Drawing Control 1. Redraw a. Frame Frame sets the limits of the "zoom window". It does this by changing the variables PX (plotter X center), PY (plotter Y center and SC (plotter scale). These three variables may be entered by clicking in their gadgets and typing. The SC (scale) determines the true size of objects on the screen or on the plotter (see Plans-Configuration File below). b. Window Window draws the currently defined "zoom" window. c. Draw Draw redraws the screen in place. This is sometimes useful after an object is erased. d. Full Full draws the entire drawing. If the first thing drawn is a border rectangle this will provide a frame of reference for the rest of the drawing. e. Last Press the TAB key. This can save a lot of time. This toggles between two views. 2. Panning Press the SPACE bar. This will center the screen on the mouse cursor. Panning may also be accomplished with the cursor keys while they are not being used to select objects. Panning may be done while entering a new object. 3. Zooming Zooming may be accomplished with the ZM proportional gadget. Also, 'z' will zoom out (make things smaller) and 'Z' will zoom in (make things bigger) at any time. G. Variables 1. Dir The name of the current directory appears here and may be changed at any time. If the name is changed to nothing or the name matches the name of another directory in the same branch of the tree this will be pointed out. 2. Part The name of the current part appears here and may be changed at any time. If the name is changed to nothing or the name matches the name of another part in the part list this will be pointed out. 3. X - X Coordinate This is the X coordinate of the center of rotation for functions that rotate around an axis (Array Angle, Rotate) and the point towards which sizing operations occur. This variable and Y below may be entered by positioning the mouse and pressing the 'x' key. 4. Y - Y Coordinate This is the Y coordinate of the center of rotation for functions that rotate around an axis (Array Angle, Rotate) and the point towards which sizing operations occur. This variable and X above may be entered by positioning the mouse and pressing the 'x' key. 5. A - Angle This is the angle objects are rotated when Array Angle or Rotate functions are used. 6. W - Width This is the Width offset for Array Grid and Translate. 7. H - Height This is the Height offset for Array Grid and Translate. 8. I - counter This is an X counter for Array Grid and Array Angle. 9. J - counter This is a Y grid counter for Array Grid. 10. Text Variables a. TW - Text Width This specifies the size to use for the width of characters (including inter-character spaing). This may be negative for backwards writing. b. TH - Text Height This specifies the size to use for the height of characters (including inter-character spaing). This may be negative for upside-down writing. c. TA - Text Angle This specifies the angle at which text will be written on the drawing. d. TS - Text Slant This specifies the slant text will have when written on the drawing. This number represents a fraction of the text height that the text will be slanted at (the tangent of the slant angle). 11. LW - Line Width This specifies the end length of boxes, the size of points, the radius of fillets and rounded corners, and the size of isometric cylinders and blocks. 12. PP - Polygon Points This specifies the number of points to draw subsequent polygons with. 14. DP - Dimension Precision The rounding precision to use with dimension lines. 15. EA - Ellipse Angle This specifies the rotation angle of subsequent ellipses. Also specified is the angle of the crossbar of point markers and the angle of the ends on boxes. 17. PX - Plot X The center coordinates of the plot and the center of the zoom window are specified here and in the next gadget. 18. PY - Plot Y The center coordinates of the plot and the center of the zoom window are specified here and in the previous gadget. 19. SC - Scale This specifies the plot scale and the zoom window scale. If this is 1.0 then things appear full size on the screen and in the plot. 20. Snap Variables The snap type may be changed at any time by pressing 's', even while entering a new item. a. SS - Snap Size This snap size is in pixels. It specifies how far from the mouse cursor to look for lines, points et cetera when snapping to objects. b. GX - Grid X Spacing When grid snap is used this is the spacing of vertical lines which determine the position of the crosshairs. c. GY - Grid Y Spacing When grid snap is used this is the spacing of horizontal lines which determine the position of the crosshairs. d. SA - Snap Angle When Angle snap is used, this specifies the angular increments to which the cursor will snap. Angle snap defaults to grid snap when no object is being defined. e. SL - Snap Length When Angle snap is used, this specifies the length increments to which the cursor will snap. Angle snap defaults to grid snap when no object is being defined. f. ST - Snap Type Snap type can be changed by clicking on the ST gadget. Snap type may be changed at any time by pressing a function key F6 - F10 (see key definitions below). It is often very useful when drawing to change to a different type of snap. These are the types of snap provided followed by the keys to select them: NONE - F6 The window pixels are translated directly to drawing coordinates. GRID - F7 The drawing coordinates lie on an invisible grid. POINT - F8 When near enough to a point, the crosshairs will snap to that point. Otherwise, snaps to grid. LINE - F9 When near enough to a line, the crosshairs will snap to that line. Otherwise, snaps to grid. ANGLE - F10 When an object is being constructed, SL (snap length) and SA (snap angle) determine where the next point will lie. Otherwise snaps to grid. H. Picking a Color Click on a color gadget. Subsequent objects will have this color. The status line is underlined with the current color and linetype. I. Picking a Linetype Click on a linetype gadget. Subsequent objects will have this linetype. J. Plans-Configuration File The Plans-Configuration File may be edited to allow the user to match the plotter output of this program to a particular plotter. This file gets read by Plans everytime Plans starts up. Other variables in this file include the size of the user's monitor (for precise on-screen scaling) and user definable linetypes (on-screen and plotter). K. Plans-Font File This file defines the font used by Plans for all text rendering. L. About Parts When a part is used in a drawing, an exact copy is placed in the drawing. This copy is an item just like any other, and can be manipulated as a unit. When a drawing is saved, all of the parts used in the drawing are saved but the part definitions are not. Therefore it is a good idea to save the part definitions with Save Parts if they could be useful in another drawing or at some other time in the current drawing. The format of a Parts file is identical to a drawing file and it is possible to load a drawing file into the Parts database to make the items in the first level available as parts, likewise it is possible to load a Parts file as a drawing. M. Keyboard shortcuts: SPACE - Center window on mouse pointer (used for panning) TAB - Toggles between any two views UP - Pan up LEFT - Pan left DOWN - Pan down RIGHT - Pan right a - Arrow A - Arc b - Break B - Box c - Copy C - Color d - Dimension e - Ellipse f - Full F - Frame h - Hook i - Insert I - Isometric Cylinder l - Line L - MakeLine m - Move M - Modify o - Circle p - Polygon P - Part r - Rectangle R - Rotate s - Size t - Text T - Translate u - Undo w - Redraw W - Window (shows window defined in PX PY SC gadgets) x - Set X & Y cordinates of Rotate, Size and Group center z - zoom out (make things smaller) Z - Zoom in (make things bigger) During extended selection (Hold down left shift key when clicking on an object to initiate extended selection): UP - Use Parent Directory LEFT - Use Directory sibling left DOWN - Use First child in the Directory down RIGHT - Use Directory sibling right