G A M

G enerieren A bbilden M odellieren
General     Goals     How working     Primitives
Transformations      Modeling
Variants     Animations      Export

 

General

GAM is a synonym for G Generieren (Generate), A Abbilden (Imaging), M Modellieren (Modeling). The 3D - Software GAM works like a construction set. Many  PRIMITIVES (2D, 3D) are available, which are embedded per menuitems in a fix coordinate system. Then you can position them in space or change shape or size with TRANSFORMATIONS . All 3D - primitives consist of plane facets. For example a cylinder is a regular prism with 40 edges but it looks "round". Many imaging methods – TOP VIEW, FRONT VIEW, SIDE VIEW, AXONOMETRY, OBLIQUE PROJECTION, HORIZONTALPROJECTION, PERSPECTIVE, top and front view, front and side view, top, front and side view – are at your disposal. You can generate images in any direction of projection. You can consider hidden lines and width of lines. Drawings can be printed scaled.
You can select OBJECTS or POINTS by various SNAPPING methods. Standard is: point, endpoint, cutting point. Extended snap methods: point halve, proportion, distance and centerpoint.

GAM allows generating objects as WIREFRAME-, SURFACE- and SOLIDMODELS. With two solids you can do BOOLE operations, that means, you can generate the UNION, DIFFERENCE or the INTERSECTION of two solids. On solids you can do BORINGS with any coss-section. On solids you can CHAMFER corners and edges. In such manner "modeled" objects can be saved as "building-stones" for later use in a project. You can combine objects in any number and type to one object where all intersection points and intersection lines are computed.
You can CUT any object with a plane.
Making a FLATTEN of an object automatically is possible, if the object has the structure of prismatic, cylindric, pyramid or cone mantle. Special facetes of an object must be arranged step by step to an existing flatten. This is a good possibility to train spatial facilities.

back

 

Aims and Goals
It is important to note that while geometry education software shares many aspects with conventional 3D computer-aided design (CAD) software at a first glance, its aims and goals are fundamentally different. Geometry education software is not intended for generating polished results, but puts an emphasis on the construction process itself. While relatively simple geometric primitives and operations will suffice for the intended audience of age 10 to 20, the user interface must be both intuitive and instructive in terms of the provided visualizations and tools. Commercial CAD software offers an overwhelming variety of complex features and often has a step learning curve. In contrast, geometry educators are interested in simple construction tools that expose the underlying process in a comprehensive way.

GAM helps geometry educators by adding computeranimated models (VRML) to their collection of traditional models. Look at the Examples.

Goals and aims:

  • Training of spatial facilities
  • To get a good idea of 3D - construction processes.
  • To learn self-evident using coordinate systems (world - and user coordinate systems), coordinates und geometric primitives in space.
  • Simple installing of the program on PC or network
  • Small program (about 1.2 MB compressed), therefore easy to transport.
  • To learn about the features of conventional 3D computer-aided design (CAD) software.

Examples

THULE SYSTEM       HOLDING SET      TURBINE DRIVE

back

 

 

THULE SYSTEM

back

 

 

 

 

HOLDING SET

back

 

 

TURBINE DRIVE

back

 

How working
With the top menuitems 2D -, 3D – primitives you can place Primitives in a fix coordinate system (WKS, world coordinate system). Measurements are to type in the textfields of the appropriate window. In the example a rectangle pyramid is defined. A good help to see the position in the WKS is a raster (menuitem 2D - Primitives - Raster) and showing the WKS selecting the button WKS.
If you select a color (button Of, objectcolor) before you generate a geometric primitive, the primitive gets this color. Negative measurements place the selected primitive in the appropriate part of the WKS.

Defining the measurements you should note:

Measurements can include constants, variables and arithmetic terms. GAM includes a formula interpreter.

Besides variables are needed to generate animations und variants.
After defining the primitive in the WKS you can place it with transformations in any position. There are also transformations to change size and shape of a primitive.

back

 

 

Primitives

Primitives are placed in the world coordinate system (WKS). If a user coordinate system (BKS) is activ, the primitive is placed relative to the BKS. You can select placing between WKS and BKS. You can define and handle as many BKS as you want.
LINE SEGMENT
SQUARE
RECTANGLE
CIRCLE
ELLIPSE
REGELAR POLYGON
POLYGON (SPLINE)
SEGMENT
SECTOR
PARABOLA
HYPERBOLA
CURVE x(t),y(t),z(t)
CUBE
CUBOID
QUADR. PYRAMID
RECT. PYRAMID
REGULAR PRISM
REGULAR PYRAMID
CYLINDER, CONE
SPHERE
TORUS
SURFACE OF ROTATION
SURFACE z=f(x,y)
SURFACE x=x(u,v)
....y=y(u,v), z=z(u,v)
SURFACE OF SPIRAL
SADDLE - ROOF
HIP - ROOF
WEDGE
TETRAEDER
OCTAEDER
DODEKAEDER
IKOSAEDER

CYLINDRIC SURFACE
CONOID SURFACE
SURFACE of TRANSLATION
RULED SURFACE (conoidal)
RULED SURFACE (c1, developable)
RULED SURFACE (c1,c2, developable)
HP SURFACE
PROFILE SURFACE
FREEFORM SURFACE
back


Transformations

To transform objects of the project:

  • Select appropriate menuitem in topmenu Transform...
  • Select the objects you want to transform by mouseclick (click on a corner or edge)
  • Close selection pressing the <enter> key
  • Type in the items of the transformation in the textfields of the appropriate window.

The Transformation is done relative to the WKS or relative to the active BKS (you can select).

With

CONGRUITY-
TRANSFORMATIONS

TRANSLATE
ROTATE about an axis
SYMMETRY at a plane
MOVE
SPIRAL about an axis
you can position objects in space
with

TRANSFORMATIONS

SCALE
SHEAR
SCALING about a CENTRE
TAPER in height z
you can change size and shape of objects
SCALE
SCALING about
a CENTER
SHEAR
(translate in height z)
TAPER
(scale in height z)
You can animate in GAM all transformations (not SYMMETRY). If the transformations SCALE, TRANSLATION, ROTATE, SCALING about a CENTRE, MOVE, SPIRAL are animated you can decide that the export in VRML is also animated.
back

 

TRANSLATION

To translate the rectangle pyramid (2x3.5x4) in x - direction obout 2.5, in y - direction about 4 and in z - direction about 2 units, you must define the vector s of translation in the window: s = (transx, transy, transz) = (2.5, 4, 2).

back

 

ROTATE about an axis
The sign of the angle of rotation depends on the orientation of the axis. The axis is an orientated line segment. The orientation of the axis a = P1P2 is fixed by the sequence selecting the beginpoint P1 and endpoint P2. The sign of the angle of rotation is positiv if it rotates clockwise when you look in direction of the orientated axis. The orientation of the x – axis is fixed by P1(0,0,0) P2(1,0,0), of the y – axis by P1(0,0,0) P2(0,1,0) and of the z – axis by P1(0,0,0) P2(0,0,1).
Notes:

The orientated axis of rotation can be selected by mouseclicks:

  • select P1, then P2
  • select a point of the axis near P1
  • select P1, then press the <enter>  key.

In the last case the axis begins in P1 and is orientated against the direction of the actual image projection. In this case for example it is easy to select a vertical axis of rotation, if the actual image method is top view (G).

back

 

MOVE
The pyramid is to move, so that the groundplane becomes to lay in the right plane of the prism.

You must select per mouseclick 3 pairs of points (source point -> destination point) in the sequence P1,Q1; P2,Q2 and P3,Q3 .

That causes:
P1 and Q1 will be coincident.
The edge P1P2 will coincide with edge Q1Q2.
The plane P1P2P3 will coincide with the plane Q1Q2Q3 .

If you close the selection of points after selection of Q1 pressing <enter> the pyramid will be moved along the vector P1Q1. This is a translation.

back

 

MODELING
Solids

BOOLE operations
UNION
DIFFERENCE
INTERSECTION

Solids

CHAMFER a corner
CHAMFER an edge

Solids

BORING
any cross-section
always boring through


Solids
Surfaces

DELETE EDGES
DELETE FACETES

Solids
Surfaces
wireframes

CUTTING with a PLANE
Solids
Surfaces

FLATTEN
MOUNTING LINKS

back
Mathematical functions
In all textfields you can type in constants, variables and arithmetic terms.
Examination of syntax and calculation is the job of the integrated formula interpreter.
Arithmetic operation
Function
GAM Notes
Addition +  
Subtraction -  
Multiplication *  
Division /  
Parentheses ( )  
sin x SIN(X) X in degrees
arcsin x ASIN(X) -1<=x<=1-> -90..90 degree
cos x COS(X)  
arccos x ACOS(X) -1<=x<=1 -> 0..180 degree
tan x TAN(X)  
arctan x ATN(X) result in degrees
ex EXP(X)  
ln x LN(X) X > 0, base e
lg x LG(X) X > 0, base 10
x2 SQR(X)  
x0.5 SQRT(X) X >= 0
|x| ABS(X)  
sinh x SINH(X)  
arsinh x ASINH(X)  
cosh x COSH(X)  
arcosh x ACOSH(X) X >= 1
tanh x TANH(X)  
artanh x ATANH(X) 1 < X < 1
rad x RAD(X) X in degrees -> radiant
deg x DEG(X) X in radiant -> degree
round x RND(X)  
sign(x) SGN(X) x<0 -> -1, x=0 -> 0, x>0 -> 1
if (...) IF(condition:yesvalue:novalue) example IF(b>600:12:8)
back

 

Variants
How to work with variables in GAM to create variant constructions will be demonstrated by the example Gabelkopf.
The object shown right should have variable measurements:
l = 66 mm, b = 48, d = 40, d1 = 20, h = 20, h1 = 50, h2 = 35, b1 = b/3.
Changing the values of one ore more variables should change shape and size of the object.
First you must define the variables l, b, ...using menuitem Edit - Variables, animation. Do not forget to evaluate the definitions selecting the button Examine .
In the next step you must create und position the needed primitives. In the textfields for length, width and so on you use the variables l, b, ... instead of the constants 66, 48,...:
Following primitives are needed:

Cuboid Q1: b x l x h

Cuboid Q2: b x d x h1
translation (0, (l-d)/2, h).

Cylinder Z1: d/2 x b
rotation about y-axis about  90o
translation (0, l/2, h+h1).

Cylinder Z2: d1/2 x b
rotation about y-axis about  90o
translation (0, l/2, h+h1).

Cuboid Q3: b1 x l x (h1+d)
translation ((b-b1)/2,   0,  h+h1-h2).

In this phase you can create a variant of the project by changing the values of one or more variables, evaluate by selecting button examine and update the drawing by selecting button draw,.. .
It is a good idea to connect the actual project (before doing any modeling) with a bookmark, for example "before": menuitem Edit - Bookmarks ("before") - set .
To generate the wanted object BOOLE operations are necessary ( menuitem Modeling - .. ):
Union (Q1, Q2) -> Q
Union (Q, Z1) -> K
Difference (K, Z2) -> K1
Difference (K1, Q3) -> Gabelkopf.
If now you want to change the values of one or more variables you must go back to the situation of the project before modeling. You can do this selecting menuitem Edit - back a few times but better selecting menuitem Edit -Bookmarks ("before") - go to . After changing variables you must repeat the steps for modeling.
Notes:
  • Definitions of variables are global and are actualized selecting the examine button.
  • If you save a project (menuitem File - Save project as ) variable definitions are not saved, but the variables are replaced by their values.
  • The name of a variable (left from the "=" character) consists of literal characters and digits. The first character must not be a digit.
  • Right from the "=" character are allowed constants, variables and arithmetic terms, for example: a2 = b1*tan(55) ).
  • But recursive definitions are not allowed, for example: r = r + 2.
  • If you delete variables (window Variables,Definitions, directly in the memofield or button Clear ) the commands Edit - back and Edit - forward will not work correctly.
EW schwarz
S(b, l, h)
EW schwarz
S(b, d, h1)
T(0, (l-d)/2, h)
DZ2 schwarz
S(d/2, d/2, b)
D(0, 90, 0)
T(0, l/2, h+h1)
DZ2 schwarz
S(d1/2, d1/2, b)
D(0, 90, 0)
T(0, l/2, h+h1)
EW schwarz
S(b1, l, h1+d)
T((b-b1)/2,0,h+h1-h2)
*****
l=66
b=48
d=40
d1=20
h=20
h1=50
h2=35
b1=b/3
Saving a project, which uses variables, the list of variables will be added to the lines of the protocol after a row "*****". Have a look at the left column.
Variables are not object- or projectoriented, but global. Therefore, of you add a project, which includes variables, you should control the variablelist. The window, which shows the variables, is opened automatically.


back

 

Animations
The project tangram demonstrates how to animate one ore more objects of a project.
Tangram is an old chinese game. Look at the grafics pattern and solution. (Source: Salzburger Nachrichten, 9.1.2002).
Generate with GAM the parts, place them like the pattern and put them together with menuitem Transform - translation . Create an animation, in which the necessary translations run automatically and export in VRML (option animate objects by turns ) !
First we generate a raster (2D – Primitives – Raster in the [xy]-plane:
xmin = 0, xmax = 10, increment  x = 1, ymin = 0, ymax = 10, increment y = 1.
For example we generate the pink element of the puzzle. Select pink as objectcolor (button Of) and draw a closed polygon in the [xy] - plane (menuitem 2D-primitives - Polygon,spline ). Select Polygon option in [xy] -plane and the button new. Clicking near a fitting rasterpoint will "catch" this point exactly and add to the pointlist in the memofield Points Pi. You should answer the question 'The polygon is closed and plane. Do you want to create a surface?'  with Yes.
After creating all parts of the puzzle translate them out of the raster to generate the pattern. Translate the raster about (0, 0, -0.1). Now you can save the project.
 

To animate the translations the check box animated must be checked. After clicking OK a range variable w is definded automatically:
w = 0..1, 0.025.
For example we must translate the green part by the vector (-11, 7, 0). To animate this translation the vector is automatically changed to (-11*w, 7*w, 0*w). Analogous for the other parts.
Selecting the button Animate in the window Variables, Animations all transformations, in which w occurs, run animated. That means: at the beginning the value of w is 0, then 0.025, then 0.05 and so on. Last value of w is 1. After every modification of w the green part will be translated by the vector (-11*w, 7*w, 0) relative to the origin position and the whole project is redrawn. In GAM all polygons are animated simultaneous, on export as VRML – file you can attain that one part after another will be animated: window Variables, Animations , checkbox animate objects by turns.

Note
  • The transformations translate (T), rotation about a coordinate axis (D), rotation about an axis (DG), spiral,move (DG, T) about an axis, scaling about a centre (Z), and scaling (x,y,z) (S) are considered if you export a project as VRML.
  • Per object  up to 3  transformations from (D,Z,T) respectively (DG,Z,T) or (S,T), (S,D) or (S,DG) are allowed as animated transformations. You get correct results if you pay attention to:
  • The animated transfornations concerning an object must be from different type.
  • If a translation is animated, it must be the last transformtion of the object.
  • If a rotation is animated, it must be the first animated translation of the object.
  • Animated transformation must be the last transformations in the protocoll concerning the object.
back

 

Export
For further working up of the drawing there are available  4 formats of EXPORT.
EMF Windows Metafile : ideal for implementing the drawing in text editing software. You can transfer the drawing into  the Windows Clipboard by typing <strg><M>.
DXF AutoCad 2D
Bitmap Export of the drawing as pixelgrafic
VRML Virtual Reality Modeling Language
back