home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 52
/
Amiga_Dream_52.iso
/
Linux
/
Divers
/
freedraft.tar.gz
/
freedraft.tar
/
FREEdraft-050298
/
README
< prev
Wrap
Text File
|
1998-04-24
|
11KB
|
348 lines
FREEdraft 0.30 README - Mon Apr 20 18:57:11 EDT 1998
// Copyright (C) 1997,1998 Cliff Johnson //
// //
// 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.3 README **************
The readme file contains installation instructions and a elementary tutorial
on using FREEdraft.
The file journal is both a historical document on the path to world domination
and where changes are noted.
******INSTALLATION********
This program is developed running linux-x86. The makefiles build a shared library the linux elf
way. If you want to try to build it on a different unix,
you will need to change the makefile in the GEOMLIB2D directory to build libraries the
proper way for your system.(If you do this, please ifdef the makefile and send it back to me. thanks.)
*** 2/25/98 - EGCS NOTE ***
I am using egcs 1.0.1. It used to compile and build fine under gcc 2.7 as
well, but since then I've added a bunch of exception handling stuff so gcc 2.7 probably won't work
anymore. gcc 2.8 should also work (if you are successful compiling FREEdraft with gcc 2.8
please let me know).
*****
Required libraries:
*****
Real OpenGL or Mesa
http://www.ssec.wisc.edu/~brianp/Mesa.html
GL, GLU and the widgets GLw
Some folks have reported that the latest mesa release a) is totally missing the widgets, or b)
that the widgets are there but they won't compile unless you have the mesa demos package
and compile that too, and C) that some binary packages of mesa - debian linux in particular -
do not include the widgets.
Just in case any of these things are true, the widgets are available on my web page at
http://www2.netcom.com/~iamcliff/mesa_widgets.tar.gz
*****
V C++ application framework
http://www.objectcentral.com
The current release of V is 1.18.
In the HACK directory there is a patch for v-1.18 called "freedraft_v1_18.patch".
This patch is also on my web page at
http://pw2.netcom.com/~iamcliff/freedraft_v_18.patch
You need to apply this patch to the v sources before building the V libraries
++ patching instructions +++
1. copy the patch to the directory where the v sources are unpacked ( the directory just
above the main v directory)
$ cp freedraft_v1_18.patch /somepath/somedirectory
2. cd the the same directory
$ cd /somepath/somedirectory
3. run patch
$ patch < freedraft_v1_18.patch
++ end patching instructions ++++
The patch does several wonderful things
- enables me to provide a default directory for file selection dialogs
- allows dialogs that read data from keyboard entry to return when the
return key is pressed instead being forced to click OK. (Thank you Dr. Wampler!)
- repairs a very minor #include ommission in vutil.h
You need to configure and build V to use the Athena toolkit.
v-1.18 includes support for the Motif toolkit (and works with Lesstif! as well -
http://www.lesstif.org ) I would like to use the lesstif instead of the Athena...
I think they look better and the non-posting pulldown menu behavior of Athena drives my nuts!
However, there is a problem with the V gl canvas pane right now in somewhere in
combination with lesstif and mesa, so for now...
The skuttlebutt on the V mailing list is that the OpenGL stuff will soon be working for both
unix and win32, so maybe when the lesstif thing is fixed, running on windoez will also be possible.
Compile the nice libraries
Install shared libraries in /usr/local/lib (or whatever is right for you).
Install the V headers in /usr/local/include/v.
**** building FREEdraft
Edit Makefile.in for your configuration.
If you need to touch anything, it will be CXX = , and VINC = ( v header location) .
Everything else should be set for the distribution tree.
Install environment setup file ".fdrc" in your home directory
The file "fdrc" defines some basic environment variables, such as the default
location for drawaing files. and the LD_LIBRARY_PATH extension for the libGeom2D library.
Edit "fdrc" as appropriate, and copy it to your home directory as ".fdrc".
Then add these 4 lines to your .bash_profile (assuming you are using bash):
# FREEdraft environment
if [ -f ~/.fdrc ]; then
. ~/.fdrc
fi
If you are not using bash, do whatever is appropriate to have the environment variables
defined.
Just one more thing, since V is a C++ library, you must build both it and the application with
the same compiler.(i.e. You can't use a V compiled with 2.7.2 with a FREEdraft compiled using 2.8.1)
********** 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.