home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / freedraft.tar.gz / freedraft.tar / FREEdraft-050298 / README < prev   
Text File  |  1998-04-24  |  11KB  |  348 lines

  1. FREEdraft 0.30  README  -  Mon Apr 20 18:57:11 EDT 1998
  2.  
  3. // Copyright (C) 1997,1998  Cliff Johnson                                  //
  4. //                                                                         //
  5. // This program is free software; you can redistribute it and/or           //
  6. // modify it under the terms of the GNU  General Public                    //
  7. // License as published by the Free Software Foundation; either            //
  8. // version 2 of the License, or (at your option) any later version.        //
  9. //                                                                         //
  10. // This software is distributed in the hope that it will be useful,        //
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of          //
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       //
  13. // General Public License for more details.                                //
  14. //                                                                         //
  15. // You should have received a copy of the GNU General Public License       //
  16. // along with this software (see COPYING.LIB); if not, write to the        //
  17. // Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //
  18.  
  19.  
  20. ****** FREEdraft 0.3 README **************
  21.  
  22. The readme file contains installation instructions and a elementary tutorial 
  23. on using FREEdraft.   
  24.  
  25. The file journal is both a historical document on the path to world domination 
  26. and where changes are noted. 
  27.  
  28.  
  29. ******INSTALLATION********
  30.  
  31. This program is developed running linux-x86. The makefiles build a shared library the linux elf
  32. way. If you want to try to build it on a different unix, 
  33. you will need to change the makefile in the GEOMLIB2D directory to build libraries the
  34. proper way for your system.(If you do this, please ifdef the makefile and send it back to me. thanks.)
  35.  
  36. *** 2/25/98 - EGCS NOTE ***
  37. I am using egcs 1.0.1.  It used to compile and build fine under gcc 2.7 as
  38. well, but since then I've added a bunch of exception handling stuff so  gcc 2.7 probably won't work
  39. anymore. gcc 2.8 should also work (if you are successful compiling FREEdraft with gcc 2.8 
  40. please let me know). 
  41.  
  42. *****
  43.  
  44. Required libraries:
  45.  
  46. *****
  47.  
  48. Real OpenGL or Mesa  
  49.  
  50.      http://www.ssec.wisc.edu/~brianp/Mesa.html    
  51.  
  52.     GL, GLU and the widgets GLw  
  53.  
  54. Some folks have reported that the latest mesa release a) is totally missing the widgets, or b)
  55. that the widgets are there but they won't compile unless you have the mesa demos package 
  56. and compile that too, and C) that some binary packages of mesa - debian linux in particular -
  57. do not include the widgets. 
  58.  
  59. Just in case any of these things are true, the widgets are available on my web page at
  60. http://www2.netcom.com/~iamcliff/mesa_widgets.tar.gz 
  61.  
  62. *****
  63.  
  64. V C++ application framework
  65.  
  66.      http://www.objectcentral.com
  67.  
  68.  
  69.   The current release of V is 1.18.  
  70.  
  71. In the HACK directory there is a patch for v-1.18 called "freedraft_v1_18.patch".
  72.  
  73. This patch is also on my web page at
  74.     http://pw2.netcom.com/~iamcliff/freedraft_v_18.patch 
  75.  
  76. You need to apply this patch to the v sources before building the V libraries
  77.     
  78. ++ patching instructions +++
  79.  
  80.    1. copy the patch to the directory where the v sources are unpacked ( the directory just
  81.       above the main v directory) 
  82.         $ cp freedraft_v1_18.patch /somepath/somedirectory
  83.  
  84.    2. cd the the same directory
  85.     $ cd /somepath/somedirectory
  86.  
  87.    3. run patch 
  88.     $ patch < freedraft_v1_18.patch
  89.  
  90. ++ end patching instructions ++++
  91.  
  92.   The patch does several wonderful things 
  93.   - enables me to provide a default directory for file selection dialogs
  94.   - allows dialogs that read data from keyboard entry to return when the
  95.     return key is pressed instead being forced to click OK. (Thank you Dr. Wampler!) 
  96.   - repairs a very minor #include ommission in vutil.h
  97.  
  98.  
  99. You need to configure and build V to use the Athena toolkit. 
  100.  
  101.   v-1.18 includes support for the Motif toolkit (and works with Lesstif! as well -  
  102.   http://www.lesstif.org ) I would like to use the lesstif instead of the Athena...
  103.   I think they look better and the non-posting pulldown menu behavior of Athena drives my nuts!  
  104.   However, there is a problem with the V gl canvas pane right now in somewhere in 
  105.   combination with lesstif and mesa, so for now...
  106.  
  107.   The skuttlebutt on the V mailing list is that the OpenGL stuff will soon be working for both
  108.   unix and win32, so maybe when the lesstif thing is fixed, running on windoez will also be possible. 
  109.  
  110.  
  111. Compile the nice libraries
  112.  
  113.   Install shared libraries in  /usr/local/lib (or whatever is right for you).
  114.   Install the V headers in /usr/local/include/v.
  115.  
  116.  
  117. **** building FREEdraft
  118.  
  119. Edit Makefile.in for your configuration. 
  120.  
  121.   If you need to touch anything, it will be CXX = , and VINC = ( v header location) .  
  122.   Everything else should be set for the distribution tree. 
  123.  
  124.  
  125. Install environment setup file ".fdrc" in your home directory 
  126.  
  127.   The file "fdrc" defines some basic environment variables, such as the default
  128.   location for drawaing files.  and the LD_LIBRARY_PATH extension for the libGeom2D library. 
  129.   Edit "fdrc" as appropriate, and copy it to your home directory as ".fdrc".   
  130.   Then add these 4 lines to your .bash_profile (assuming you are using bash):
  131.   
  132.     # FREEdraft environment
  133.     if [ -f ~/.fdrc ]; then
  134.         . ~/.fdrc
  135.     fi
  136.  
  137.   If you are not using bash, do whatever is appropriate to have the environment variables
  138.   defined. 
  139.  
  140. Just one more thing, since V is a C++ library, you must build both it and the application with 
  141. the same compiler.(i.e. You can't use a V compiled with 2.7.2 with a FREEdraft compiled using 2.8.1)
  142.  
  143.  
  144.  
  145. ********** A simple yet forever incomplete tutorial ****************
  146. ___________________________
  147.  
  148. 1) Shut up and drive.
  149.  
  150. To start the program the executable is
  151.  
  152. FREEdraft
  153.  
  154. 2) What it looks like. 
  155.  
  156. When you start the program there will be (from top to bottom) 
  157. a menubar, a drawing area, a bar of buttons (control buttons) , 
  158. another area of buttons (function buttons), and a text area. 
  159.  
  160. _convention_ : The function button labeled "pick" under the title Points == Points:pick
  161. _convention_ : > means that you have to push the correct button.  
  162.  
  163. >Select Points:pick
  164.  
  165. This activates free point creation. i
  166.  
  167. >Select a free point (MB2) a location in the drawing window. 
  168.  
  169.     The system will create a point there. 
  170.  
  171. >Create another point. 
  172. >Create yet another point. 
  173.  
  174. >Select Point:constr. 
  175.  
  176. This activates points by two constraints. The two constraints can be two or any type of geometry -
  177. point, line, circle, segment, or arc.
  178.  
  179. The general solution is the intersection of the two entities. If there are multiple
  180. solutions, the closest to second selection screen position is used. 
  181.  
  182. If the case of a point and a line/circle/arc/segment, 
  183. the solution is the point projected on the line/circle/arc/segment. If there are multiple
  184. solutions, as in the case of a circle, the solution closest to where you select the circle
  185. is used. 
  186.  
  187. If two points are selected, the solution is the midpoint between them. 
  188.  
  189.  
  190. >Select 2 of the points (using MB1) you just created. 
  191.  
  192. The system will create a new point midway between the two selected points. 
  193.  
  194. >Select Line:vert.
  195.  
  196. > Select the new point (MB1)
  197.  
  198. The system will create a vertical line through the point.
  199.  
  200. >Select Line:constr.
  201.  
  202. >Select 2 points
  203.  
  204. The system will create a line passing through the two points.
  205.  
  206. >Select a point and a line
  207.  
  208. The system will create a line parallel to the line passing through the point. 
  209.  
  210. >Select two lines like this:
  211.  
  212.     |
  213.     |x
  214.     |
  215.     |   x
  216. --------+----------
  217.     |
  218.     |
  219.     |
  220.     |
  221.  
  222. The system will create the bisector:
  223.     |   /
  224.     |  /
  225.     | /
  226.     |/  
  227. --------+----------
  228.        /|
  229.       / |
  230.      /  |
  231.     /   |  
  232.  
  233.  
  234.  
  235. 3) Free points and modifiers. 
  236.  
  237. Instead of picking a point entity, equal satisfaction may be found by a) selecting
  238. a free point using the middle mouse button b) using a modifier - INtersection 
  239. CEnter,EXtremity, and MIdpoint - then selecting the required geometry. 
  240.  
  241. For example you can make a horizontal line passing through the intersection of two other lines
  242. by selecting Line:horz, selecting the "In" modifier, and selecting the two lines. 
  243.  
  244. 4) Zooming and all that
  245.  
  246. The Page Up and Page Down keys turn up and down the scale. 
  247. The Arrow keys can be used to pan.
  248.  
  249. IMPORTANT NOTE:  The GL canvase window that comes with the V toolkit is broken
  250. in that keystroke while the cursor in position in the window are NOT passed to
  251. the keystroke handlers. 
  252.  
  253. So for now, (until it is fixed) you have to POSITION THE MOUSE OUTSIDE THE DRAWING
  254. WINDOW TO USE THESE KEYS.  Positioning the mouse over the menu area will work just 
  255. fine. 
  256.  
  257. In addition there is one function key so far:
  258.  
  259. Ce = Center the view on this spot. 
  260.  
  261. 5) Selection mask
  262.  
  263. The buttons CLEAR ALL SUM along with the entity type buttons P and L constitute
  264. the 'selection mask'. It has two related functions. When a funciton is activated
  265. the display mask is set to indicated which types of entities are valid input for
  266. the function. 
  267.  
  268. The user may modify the mask to aid with selection of specific types. 
  269.  
  270. For example for...
  271.  
  272. 6) Deletion
  273.  
  274. Deletion is activated with the D button.
  275.  
  276. Set up the selection mask to indicate what types you want to delete
  277. and then pick them from the screen.
  278.  
  279. If you change you mind press NO!
  280.  
  281. To kill them all press YES
  282.  
  283. There is no undo (yet). 
  284.  
  285. 7) Tracing 
  286.  
  287. Say you have 4 lines like this: 
  288.  
  289.       |                |
  290.       |                |
  291. ------+----------------+--------
  292.       |                |
  293.       |                |
  294.       |                |
  295. ------+----------------+--------
  296.       |                |
  297.       |                |
  298.  
  299. And you want to make a solid square of 4 segments.
  300.  
  301. Pick the "Trace" function, then pick the 4 lines 5 times like this:
  302.  
  303.       |                |
  304.       | 5     1        |
  305. ------+----------------+--------
  306.       |                |
  307.      4|                | 2
  308.       |                |
  309. ------+----------------+--------
  310.       |        3       |
  311.       |                |
  312.  
  313. See how easy that was?
  314.  
  315. It also works with points and circles. 
  316.  
  317.  
  318. 8) Trimming/extension and cutting (splitting) of segments and arcs. 
  319.  
  320. The Trim function can be used to change the position of one end of a segment or arc. 
  321.  
  322. > Select the segment/arc you wish to edit at the end you wish to modify.
  323. > Select a new constraint for the selected endpoint, like an intersecting circle, line, 
  324. > or a point. 
  325. > The segment/arc endpoint should adapt the new constraint. 
  326.  
  327. 9) Color editing
  328.  
  329. Pick the little colored button (which is white by default) and a dialog appears.
  330. Pick a new color, then pick some segments or arc to change their color.
  331.  
  332. Sketch geometry - lines and circles - are fixed colors. I will probably change this. 
  333.  
  334. You can select a new function with the color dialog still displayed, when you do this
  335. color edit mode is turned off and you can build as normal. You can turn off the dialog
  336. whenever you please. 
  337.  
  338. Linestyle and thickness editing work much the same way. The linestyle/thickness dialog
  339. is activated by choosing "line type" from the "attrib" pulldown menu. 
  340.  
  341. 10) Save and recall
  342.  
  343. After you save or recall a model, you have to use the "Modules" pulldown to return
  344. to the geometry menu. This will be changed ( maybe) soon - but there are a few more
  345. things that need implementing as far as recall/store yet, like being selective while saving
  346. or specifying a new relative origin on recall. 
  347.  
  348.