Varkon MBS Programmers manual
Creates a local coordinate system using one position and three optional angles of rotation.
csys_1p(id, name, p, rotx, roty, rotz:attributes);
REF | id; |
STRING | name*10; |
VECTOR | p; |
FLOAT | rotx; |
FLOAT | roty; |
FLOAT | rotz; |
id | - Local identity |
name | - User defined name |
p | - Position of origin |
rotx | - Rotation around X-axis, default = 0 |
roty | - Rotation around Y-axis, default = 0 |
rotz | - Rotation around Z-axis, default = 0 |
PEN | - Pen or colour number |
LEVEL | - Level number |
BLANK | - Visible(0) or invisible(1) |
csys_1p(#1,"Origin",vec(0,0), , ,30);
Creates a coordinate system rotated 30 degrees around the active Z-axis.
BASIC GEOMETRY MODULE coor_sys(); BEGINMODULE csys_1p(#1,"BASIC", vec(0, 0, 0), 0.0, 0.0, 0.0); csys_1p(#2,"ROTATED", vec(1, 0, 0), 0.0, 0.0, 0.0); mode_local(#2); ENDMODULE
This module creates two coordinate systems, the first as a Basic "Reference" coordinate system with Origin at point (0,0,0) without any rotation around the Axes , The second is a Local coordinate system with Origin at point (1,0,0), also without any rotation as in figure 1.
To illustrate how the coordinate system works, we will use the second coordinate system with diferent orientations in following examples.
Figure 1
In figure 1 the two coordinate systems had the same orientation for all Axes. To rotate the second coordinate system 90 degrees around X-axis, use the module listed below. The result is shown in figure 2.
BASIC GEOMETRY MODULE coor_sys(); BEGINMODULE csys_1p(#1,"BASIC", vec(0, 0, 0), 0.0, 0.0, 0.0); csys_1p(#2,"ROTATED", vec(1, 0, 0), 90.0, 0.0, 0.0); mode_local(#2); ENDMODULE
Figure 2
To therafter rotate the local coordinate system 90 degrees around Y-axis, use the module listed below. The result is shown in figure 3.
BASIC GEOMETRY MODULE coor_sys(); BEGINMODULE csys_1p(#1,"BASIC", vec(0, 0, 0), 0.0, 0.0, 0.0); mode_local(#1); csys_1p(#2,"ROTATED", vec(1, 0, 0), 90, 0, 0:BLANK=1); mode_local(#2); csys_1p(#3,"ROTATED", vec(0, 0, 0), 0, 90, 0:BLANK=0); mode_local(#3); ENDMODULE
Figure 3
Finally to rotate the local coordinate system also 90 degrees around Z-axis, use the module listed below .The result is shown in fingure 4.
BASIC GEOMETRY MODULE coor_sys(); BEGINMODULE csys_1p(#1,"BASIC", vec(0, 0, 0), 0.0, 0.0, 0.0); mode_local(#1); csys_1p(#2,"ROTATED", vec(1, 0, 0), 90, 0, 0:BLANK=1); mode_local(#2); csys_1p(#3,"ROTATED", vec(0, 0, 0), 0, 90, 0:BLANK=1); mode_local(#3); csys_1p(#4,"ROTATED", vec(0, 0, 0), 0, 0, 90:BLANK=0); mode_local(#4); ENDMODULE
Figure 4
In the last three active modules and figures specified rotation is done in three steps around local coordinate system , the first around the X-axis ,Then around Y-axis, the last around Z-axis. When all three angles are specified in one csys_1p-instruction, varkon calculates the rotaion in order X,Y,Z. To confirm this investigate the module listed below . The result is shown in figure 5.
BASIC GEOMETRY MODULE coor_sys(); BEGINMODULE csys_1p(#1,"BASIC", vec(0, 0, 0), 0.0, 0.0, 0.0); mode_local(#1); csys_1p(#2,"ROTATED", vec(1, 0, 0), 90, 90, 90); mode_local(#2); ENDMODULE
Figure 5
Varkon 1.19D svn # 120M