TEXT(GSET COMMAND TUTORIAL 1 :B538
TITLE
display
#$b001
This Q1 demonstrates the use of 5 operations used
for the creation of BFC grids, namely:
* defining points,
* defining lines,
* defining frames,
* setting grid dimensions, and
* matching a grid to a frame.
Those operations are used here in order to:
1. create a circle,
2. create a square, and
3. to match them to the two sides of a constant-I plane,
(namely I2 and I1 respectively).
IVIEW=2
The relevant PIL commands will be displayed, then processed.
The first sets the grid type to BFC
CT1=BFC=T
#$b002
REAL(RADIUS,ROOT,SIDE)
Please enter the circle radius (default 0.25m)
READVDU(radius,real,0.25)
Please enter the side-length of the square (default 0.5m)
READVDU(side,real,0.5)
INTEGER(NAB,NBC)
root=0.707*radius
#$021
The input data to be used in this example are..
mesg( radius=:radius:
mesg( side =:side:
The centre of the circle will be placed at:
x = 0.0
y = - square root of 2 times the radius
z = + square root of 2 times the radius
mesg(square root of 2 times the radius, called root, = :root:
Now define points A,B,C and D, positioned as follows:
A at (0,-root,root)
B at (0,root,root)
C at (0,root,-root)
D at (0,-root,-root)
by the commands:
for A
CT1=GSET(P,A,0,-root,root)
#$b003
for B
CT1=GSET(P,B,0,root,root)
#$b003
for C
CT1=GSET(P,C,0,root,-root)
#$b003
and for D
CT1=GSET(P,D,0,-root,-root)
#$b003
#$021
Now draw four arcs (AB,BC,CD,DA) from A to D
to create a circle.
Arcs AB and CD must have equal numbers of intervals;
so must arcs BC and DA.
The intervals will be supposed uniform on each arc.
Please enter nab, the number of cells for AB and CD (default 5)
readvdu(nab,int,5)
The command to create arc AB, with nab uniform intervals,
which also goes through the point (0,0,radius),
is:
CT1=GSET(L,AB,A,B,NAB,1.0,ARC,0,0,RADIUS)
#$b003
Please enter nbc, the number of cells for BC and DA (default 5)
readvdu(nbc,int,5)
The command to create arc BC, with nbc cells
which also goes through the point (0,0,radius),
is:
CT1=GSET(L,BC,B,C,NBC,1.0,ARC,0,RADIUS,0)
#$b003
The corresponding command for CD is:
CT1=GSET(L,CD,C,D,nab,1.0,ARC,0,0,-RADIUS)
#$b003
and for DA:
CT1=GSET(L,DA,D,A,nbc,1.0,ARC,0,-radius,0)
#$b003
Now define a frame ABCD which has corner points
A,B,C & D by the command:
CT1=GSET(F,ABCD,A,-,B,-,C,-,D,-)
#$b003
Now set the BFC grid dimension as 1 x nab x nbc, with
reference length 1m x side x side, by the command:
CT1=GSET(D,1,nab,nbc,1,side,side)
#$b003
Now match grid plane I2 on frame ABCD using the
trans-finite method, by the command:
CT1=GSET(M,ABCD,+J-K,2,1,nbc+1,TRANS)
#$b003
Now create the square on plane I = 1
iview=1
Define points E,F,G and H, with positions:
E at (-side,-side/2,side/2)
F at (-side,side/2,side/2)
G at (-side,side/2,-side/2)
H at (-side,-side/2,-side/2)
by the commands:
for E:
CT1=GSET(P,E,-SIDE,-SIDE/2,SIDE/2)
#$b003
for F:
CT1=GSET(P,F,-SIDE,SIDE/2,SIDE/2)
#$b003
for G:
CT1=GSET(P,G,-SIDE,SIDE/2,-SIDE/2)
#$b003
and for H:
CT1=GSET(P,H,-side,-side/2,-side/2)
#$b003
Now draw four lines (EF, FG, GH, HE) from E to H
to create a square.
Lines EF & GH each have nab uniformly-distributed intervals,
and lines FG & HE each have nbc uniformly-distributed
intervals, so as to match the numbers of intervals on the
circle.
The commands are:
CT1=GSET(L,EF,E,F,NAB,1.0)
#$b003
then
CT1=GSET(L,FG,F,G,NBC,1.0)
#$b003
then
CT1=GSET(L,GH,G,H,NAB,1.0)
#$b003
and finally
CT1=GSET(L,HE,H,E,nbc,1.0)
#$b003
Now define a frame EFGH (square) which has corner points
E, F, G and H, by the command:
CT1=GSET(F,EFGH,E,-,F,-,G,-,H,-)
#$b003
Now match grid plane I1 on frame EFGH using the trans-finite
by the command:
CT1=GSET(M,EFGH,+J-K,1,1,nbc+1,TRANS)
#$B004)
This completes the exercise.
However, you may now wish to type VIEW, so as to be able to
inspect, or indeed alter, the grid by means of the graphical
grid generator.
enddis