FREEdraft 0.40m * Wed Feb 14 2001 // Copyright (C) 1997,1998,2001 Cliff Johnson iamcliff@freeengineer.org // // // // This program is free software; you can redistribute it and/or // // modify it under the terms of the GNU General Public // // License as published by the Free Software Foundation; either // // version 2 of the License, or (at your option) any later version. // // // // This software is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // // General Public License for more details. // // // // You should have received a copy of the GNU General Public License // // along with this software (see COPYING.LIB); if not, write to the // // Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // ****** FREEdraft 0.40m README ************** The readme file contains installation instructions and a elementary tutorial on using FREEdraft. The file doc/journal is both a historical document on the path to world domination and where changes are concieved, designed, and executed. ******UNIX BUILD AND INSTALLATION******** This program now uses the standard gnu build tools. ./configure make make install should work for most of you,provided you have the required libraries installed in the standard locations, and install the freedraft executable in /usr/local/bin. By default, freedraft will use the Athena widgets. If you want to use the motif interface, then add the configure option --with-lib-Motif : ./configure --with-lib-Motif If you want to install somewhere else then /usr/local, use the --prefix option, for example: ./configure --with-lib-Motif --prefix=/home/cliff/local --with-OCC-prefix=$CASROOT See the file INSTALL for more and more generic instructions. Quick list of required software and libraries: ============================================== g++2.95 with a contemporary libstdc++ OpenGL or Mesa, and widgets (libGLw) glut Motif or Lesstif or Athena V gui framework Open CASCADE ********** BUILD AND INSTALL ON WINDOWS **************************** The distribution contains the files freedraft.dsw and freedraft.dsp. These are the MS Visual C++ project files necessary to build freedraft on Windows. Currently, MSVC++ is the ONLY compiler that will work. That is because Open CASCADE in its distributed binary form is built using MSVC++ . If you want to build FREEdraft on windows using a different compiler, you must first build Open CASCADE using that compiler. Good luck. Also check out the Open CASCADE page about using MSVC++ environment at http://www.opencascade.org/needhelp/faqusevc.html You will likely have to adjust the project and build environment settings for the directories that MSVC++ is looking for V, OpenGL, and glut header files and libraries in. Once all your paths are good for your system, the program should build cleanly. Quick list of required software and libraries for Windows ========================================================= MSVC++ 6.0 SP3 or SP4 OpenGL glut V gui framework Open CASCADE 3.1 More in depth discussion of libraries ====================================== ************ Real OpenGL or Brian Paul's Mesa3d workalike. http://www.mesa3d.org/ The default Mesa3d compile builds libGL and libGLU. You will need to build the mesa-widgets as well (libGLw ) Mesa is licensed using the X license ***** Mark Kilgard's glut opengl utility library http://reality.sgi.com/mjk_asd/glut3/glut3.html There are links there to Windows versions of glut too. glut is available at with source and at no cost from SGI. ***** Bruce Wampler's V C++ application framework http://www.objectcentral.com The current release of V is 1.25. if you are using linux, and building the V 'linuxelf' target (like I am) there may be some problems with building this release of V with mesa3d/opengl . Pay attention that libV and libVgl are both built. You can build either for Motif or Athena widgets. Both should work. V is licensed using the LGPL. **** On UNIX, you can use Lesstif or Motif, or neither and Athena will be used. ( which looks remarkably good for such ancient stuff by the way). Lesstif http://www.lesstif.org One of the truly great achevments of free software is lesstif. A workingman's motif library. All hail and bow your heads in respect to the coding gods, and they high priests who do their bidding. If you want to use lesstif, then you must build amonst the latest versions (88.1 today) then you must buildith the V library for motif, then you must buildith freedraft with the --with-lib-Motif configure option. Only then shall you be able to execute the holy motif executable, and be totally motificated. Lesstif is licensed using the LGPL Motif http://www.openmotif.org Real Motif is now available on a mostly free basis (free for use on free OS's) . It works fine too. **** Open CASCADE http://www.opencascade.org With versions >= 0.40 FREEdraft uses Open CASCADE 3.1 for its geometry library. OCC is a very big library and FREEdraft uses just a few pieces of it. Theoretically you can download and install a minimum of these: pre-built libraries for Linux: ftp://ftp.matra-dtv.fr/pub/bin31/LinuxFoundationClasses-3.1.tar.gz ftp://ftp.matra-dtv.fr/pub/bin31/LinuxModelingData-3.1.tar.gz ftp://ftp.matra-dtv.fr/pub/bin31/LinuxModelingAlgorithms-3.1.tar.gz ftp://ftp.matra-dtv.fr/pub/bin31/LinuxVisualization-3.1.tar.gz pre-built libraries for Windows: ftp://ftp.matra-dtv.fr/pub/bin31/WindowNT_FoundationClasses-3.1.zip ftp://ftp.matra-dtv.fr/pub/bin31/WindowNT_ModelingData-3.1.zip ftp://ftp.matra-dtv.fr/pub/bin31/WindowNT_ModelingAlgoritms-3.1.zip ftp://ftp.matra-dtv.fr/pub/bin31/WindowNT_Visualization-3.1.zip If you download pre-built libraries for any platform, you will need the header files too: ftp://ftp.matra-dtv.fr/pub/bin31/HeaderOpenCascade-3.1.zip non-platform specific source files: ftp://ftp.matra-dtv.fr/pub/bin31/sourceFoundationClasses-3.1.tar.gz ftp://ftp.matra-dtv.fr/pub/bin31/sourceModelingData-3.1.tar.gz ftp://ftp.matra-dtv.fr/pub/bin31/sourceModelingAlgorithms-3.1.tar.gz ftp://ftp.matra-dtv.fr/pub/bin31/sourceVisualization-3.1.tar.gz You don't need to download the header zip file if you download source and build yourself. Open CASCADE is licensed using the Open Cascade Public License (OCPL) which is roughly the equivalent to the LGPL. ********** A simple yet forever incomplete tutorial **************** ___________________________ 1) Shut up and drive. To start the program the executable is freedraft 2) What it looks like. When you start the program there will be (from top to bottom) a menubar, a drawing area, a bar of buttons (control buttons) , another area of buttons (function buttons), and a text area. _convention_ : The function button labeled "pick" under the title Points == Points:pick _convention_ : > means that you have to push the correct button. >Select Points:pick This activates free point creation. i >Select a free point (MB2) a location in the drawing window. The system will create a point there. >Create another point. >Create yet another point. >Select Point:constr. This activates points by two constraints. The two constraints can be two or any type of geometry - point, line, circle, segment, or arc. The general solution is the intersection of the two entities. If there are multiple solutions, the closest to second selection screen position is used. If the case of a point and a line/circle/arc/segment, the solution is the point projected on the line/circle/arc/segment. If there are multiple solutions, as in the case of a circle, the solution closest to where you select the circle is used. If two points are selected, the solution is the midpoint between them. >Select 2 of the points (using MB1) you just created. The system will create a new point midway between the two selected points. >Select Line:vert. > Select the new point (MB1) The system will create a vertical line through the point. >Select Line:constr. >Select 2 points The system will create a line passing through the two points. >Select a point and a line The system will create a line parallel to the line passing through the point. >Select two lines like this: | |x | | x --------+---------- | | | | The system will create the bisector: | / | / | / |/ --------+---------- /| / | / | / | 3) Free points and modifiers. Instead of picking a point entity, equal satisfaction may be found by a) selecting a free point using the middle mouse button b) using a modifier - INtersection CEnter,EXtremity, and MIdpoint - then selecting the required geometry. For example you can make a horizontal line passing through the intersection of two other lines by selecting Line:horz, selecting the "In" modifier, and selecting the two lines. 4) Zooming and all that The Page Up and Page Down keys turn up and down the scale. The Arrow keys can be used to pan. IMPORTANT NOTE: The GL canvase window that comes with the V toolkit is broken in that keystroke while the cursor in position in the window are NOT passed to the keystroke handlers. So for now, (until it is fixed) you have to POSITION THE MOUSE OUTSIDE THE DRAWING WINDOW TO USE THESE KEYS. Positioning the mouse over the menu area will work just fine. In addition there is one function key so far: Ce = Center the view on this spot. 5) Selection mask The buttons CLEAR ALL SUM along with the entity type buttons P and L constitute the 'selection mask'. It has two related functions. When a funciton is activated the display mask is set to indicated which types of entities are valid input for the function. The user may modify the mask to aid with selection of specific types. For example for... 6) Deletion Deletion is activated with the D button. Set up the selection mask to indicate what types you want to delete and then pick them from the screen. If you change you mind press NO! To kill them all press YES There is no undo (yet). 7) Tracing Say you have 4 lines like this: | | | | ------+----------------+-------- | | | | | | ------+----------------+-------- | | | | And you want to make a solid square of 4 segments. Pick the "Trace" function, then pick the 4 lines 5 times like this: | | | 5 1 | ------+----------------+-------- | | 4| | 2 | | ------+----------------+-------- | 3 | | | See how easy that was? It also works with points and circles. 8) Trimming/extension and cutting (splitting) of segments and arcs. The Trim function can be used to change the position of one end of a segment or arc. > Select the segment/arc you wish to edit at the end you wish to modify. > Select a new constraint for the selected endpoint, like an intersecting circle, line, > or a point. > The segment/arc endpoint should adapt the new constraint. 9) Color editing Pick the little colored button (which is white by default) and a dialog appears. Pick a new color, then pick some segments or arc to change their color. Sketch geometry - lines and circles - are fixed colors. I will probably change this. You can select a new function with the color dialog still displayed, when you do this color edit mode is turned off and you can build as normal. You can turn off the dialog whenever you please. Linestyle and thickness editing work much the same way. The linestyle/thickness dialog is activated by choosing "line type" from the "attrib" pulldown menu. 10) Save and recall After you save or recall a model, you have to use the "Modules" pulldown to return to the geometry menu. This will be changed ( maybe) soon - but there are a few more things that need implementing as far as recall/store yet, like being selective while saving or specifying a new relative origin on recall.