You are on page 1of 41

# 1.

Introduction
The modeling of historical buildings requires a lot of ornamental details that are not or much less found in modern buildings: • Columns (including twisted columns) • Balusters • Cornices • Arches • Friezes • Towers This note is a primer for a novice user who needs to create such special components with Archicad GDL and shows how they can be parameterized. The GDL reference guide is online at http://www.graphisoft.com/ftp/gdl/manual/14/wwhelp/wwhimpl/js/html/wwhelp.htm There exists add-ons that can make things much easier but they are not really indispensable.

1

2

2. Concepts
b. Polyline
A polyline is nothing more than a line consisting of multiple line segments. It is defined by a series of points that are interconnected, either by straight lines or arc segments. The additional status codes allow to create arc segments. GDL Reference Guide > Status Codes > Additional Status Codes We will demonstrate the polyline in 2D using POLY2_. We neglect the fill and concentrate on the contour line. Example 1 : basic polyline with straight segments
POLY2_ 6, 1, ! The polyline is defined by 6 points ! Only the contour is displayed - there is no fill inside ! Now the points are defined with coordinates x,y ! The third parameter 1 means segment starting from there is visible ! If you specify 0, the segment that starts there is invisible ! Point 1 0,0 ! Point 2 4,0 ! Point 3 7,3 ! Point 4 7,7 ! Point 5 0,7 ! Point 6 0,0

0, 0, 1, 4, 0, 1, 7, 3, 1, 7, 7, 1, 0, 7, 1, 0, 0, 0

If we specify a zero as third parameter for point 7,3 : 7, 3, 0, ! Point 3 7,3 Then the 3th segment starting at 7,3 is omitted and invisible

3

Example 2 : Polyline with an arc segment. We will not only define points but also add information on the arc segment. As a result, we will have 7 defining lines. There are several possibilities to draw an arc segment. We will define the centerpoint of the arc and the endpoint. The startpoint is the point before we started the arc definition.
POLY2_ 7, 1, ! The polyline is defined by 7 instructions ! Only the contour is displayed - there is no fill inside ! Now the points are defined with coordinates x,y and special lines for the arc ! The third parameter 1 means segment starting from there is visible ! If you specify 0, the segment that starts there is invisible ! Point 1 0,0 ! Point 2 4,0 ! We define an arc segment : ! Use code 900 to define the centerpoint of the arc at 4,3 ! Use code 3000 to draw the arc from previous point 2 to endpoint 7,3 ! The code to draw the arc is 3000 - we add the code 1 to make the next segment visible ! Point 4 7,7 ! Point 5 0,7 ! Point 6 0,0

0, 0, 1, 4, 0, 1, 4, 3, 900, 7, 3, 3001, 7, 7, 1, 0, 7, 1, 0, 0, 0

Example 2 : Polyline with 2 arc segments. We can define consecutive arc segments.
POLY2_ 8, 1, 0, 0, 1, 4, 0, 1, 4, 3, 900, 7, 3, 3001, 7, 5, 900, 7, 7, 3001, 0, 7, 1, 0, 0, 0 ! The polyline is defined by 8 instructions ! Only the contour is displayed - there is no fill inside ! Point 1 0,0 ! Point 2 4,0 ! We define an arc segment : ! Define the centerpoint of the arc at 4,3 ! Draw the arc from previous point 2 to endpoint 7,3 ! The code to draw the arc is 3000 - we add the code 1 to make the next segment visible ! We define an arc segment : ! Define the centerpoint of the arc at 7,5 ! Draw the arc from previous point 2 to endpoint 7,7 ! The code to draw the arc is 3000 - we add the code 1 to make the next segment visible ! Point 5 0,7 ! Point 6 0,0

4

1. 4.3 ! The code to draw the arc is 3000 . we define another direction dx = -1. 1. 1. It is also possible to have it “bulging in” by defining the direction of the arc segment in point 7. 1. 7.3. the arc is bulging out. 1001. 900. 800. 3. POLY2_ 8.3 ! Draw the arc from previous point 2 to endpoint 7.Example 3 : Polyline with 2 arc segments and direction specified In the previous example. 1. 0 ! We define an arc segment by centerpoint and end point ! Define the centerpoint of the arc at 4. 0. 7. Example 4 : Polyline with 2 arc segments and direction specified As a variation on example 3. 0.3 to endpoint 7. 0. 0. -1. 0. 3001. 0.7 . 7. 4. -1. 5 . 0. 800. dy = 1 So. 3. 7. In that case we only have to specify the endpoint – the centerpoint will be automatically be calculated by ArchiCAD.we add the code 1 to make the next segment visible ! We define an arc segment by tangens in the startpoint and end point ! Define the tangens (direction) of the arc in the startpoing by dx=-1 dy=0 ! Draw the arc from previous point 7.

1. 1 In the simple example above. let GDL remember each point in a memory buffer and then let GDL pass all results as parameters. 1*scale. cos θ y = 2. 0. 1*scale. After the call of GET.2 Parameter and parameter buffers The creation of GDL objects exists in calling “GDL-functions” with a series of parameters.1. sin θ We can easily program the calculation of 36 values . 0. Take a simple example : POLY2_ 5. 1 For really complex objects. 0. 1. we only used a small number of fixed parameters. 1. 0. The parameters need not be fixed but can be calculated. Fortunately GDL offers a more easy way. The call to POLY_2 then becomes : POLY2_ 108. 0. 1.0. 0. 0. 1. GET (108) Using this technique we do not have to note down 108 points one by one. 1. 1.1. 1. for i = 1 to 36 PUT 3*cos(10*i) PUT 2*sin(10*i) PUT 1 next i ! calculate x coordinate and PUT it in a memory buffer ! calculate y coordinate and PUT it in a memory buffer ! PUT also the 3th parameter on each line in the POLY_2 After this operation. 1. the memory buffer contains the 36*3=108 parameter values for the POLY2_ command. 0*scale. 0*scale.and store them in a memory buffer using the command PUT. 0. 1*scale. If we want to make the object scalable we can introduce a parameter scale and write POLY2_ 5. 1.1*scale. we use POLY2_ to draw an ellipse defined by x = 3. We can now pass them all 108 to POLY_2 by retrieving them from the memory buffer using the command GET (108). 1.one each 10° . It is also possible to read values from the buffer while keeping them in the buffer. 6 . 1. We can calculate the points before. the 108 values are no longer available in the memory buffer. a large number of points need to be calculated. We could just calculate the points beforehand and then introduce the results one by one them as parameters to the GDL-function. 1. This item is presented in the GDL reference in paragraph GDL Reference Guide > Control Statements > Flow Control Statements As an example of this. 0. 1.

Ex. 1. 0. 2. PRISM (several variants) • by defining the cross section with EXTRUDE. PRISM is limited to polylines with straight line segments. Columns c. Colums with fixed diameter Columns with a fixed diameter of any form can be created by • using basic shapes like CYLIND. 0. PRISM 7. 2. 2. 1. PRISM With PRISM and its more complex variants. In example below the polyline is defined by 7 points. 1 BRICK 1.3. 1. 1. • by defining the outline of the column with REVOLVE. 0 ! 7 points for the polyline of the cross section ! Height 5 The resulting cross section and column : 7 . 5 ! Height ! Radius ! width ! depth ! height Ex. we can define arbitrary cross sections. BRICK. The contours of the cross section are defined with a polyline. CYLIND and BRICK CYLIND 5. -1. 2. 0. 0. 5. TUBE. 0.

0 ! The cross section is a polyine described by 6 instructions ! The height of the column is 5 ! First point of the polyline cross section ! Second point of the polyline cross section ! We define an arch with centerpoint at 1.5. The resulting cross section and column : Imagine that we do not want to see the first face starting at 0.1 ! Next point ! Next point Next to each x. PRISM_ PRISM_ is an extension of PRISM where additional status codes allow to • Create arc segments • Control the visibility of edges and surfaces • Define holes An example of use of arc similar to the examples of polylines. The result is : As can be seen in the picture. 1. the rounded face approximated by a number of straight surfaces. 15. 15. 0. 3015.0. 8 . The smoothness of the rounding can be enhanced by increasing the resolution using the command RESOL. 900. 1. RESOL 128 results in a much smoother surface.0. PRISM_ 6. y coordinate we now specify status code 15 in order to : • Display the contour line at top and bottom for the segment starting at that point • Display the side faces for the segment starting at that point • Display the vertical edges for the segment starting at that point The different possible values for status codes are described in the reference guide. 5. 1. 15. 1. 0. 0. 1.Ex. 0. 0. 1. 0. We define a status code 0 for point 0. 0.5 ! The arch is drawn with endpoint 1.

! 32: top edges are visible 0. ! 4: side (closing) surface is present. ! Next point 0. ! Flags that dermine visibiity ! 1: base surface is present.y. 1. ! Second point of the polyline cross section 1. 1. 5. ! The arch is drawn with endpoint 1.z coordinates of displacement . ! First point of the polyline cross section ! The additional parameter 1 means that edge is not drawn ! but only used to display the contour 1. 0. ! The cross section is a polyine described by 6 instructions 0. ! 2: top surface is present. we specify 0 as third parameter for each point . 1 ! Next point The resulting column : If we want to explicitly display the lateral edges. 3001. 0. The other variants allow to specify top and bottom surfaces and are not interesting for columns. We can define a displacement of bottom and top surface EXTRUDE 6. ! We define an arch with centerpoint at 1.5. 1.1 0. 0. ! The x. 901. 0. EXTRUDE We can use EXTRUDE in a similar way as PRISM in order to define the cross section. side.height of the column is 5 1+2+4+16+32.There are still a large number of variants to PRISM. 1. 1. The usage of flags and status to control visibility is different.5 1. bottom. CPRISM_ for example allows to define the materials of top. Ex. 1. 0. 9 . ! 16: base edges are visible.

5*sin(0). 900. 3001. located at -30° on a radius of 4. 5 sin 0°. ! Define startpoint 1 on circle at radius 4 and angle 30° In order to define an arc segment to point 2. -270° -240° -210° -300° 30° Point 1 -180° Point 4 -150° Point 3 -120° Centerpoint 1 Point 2 Centerpoint2 -60° -30° -90° We start at point 1 in the picture. So the coordinates are 5cos 0°. 4*sin(30). we can add an incliniation to the column although that is not required for most columns. 4 sin 30°. 1.cos(-30°). That point is located at 30° on a radius of 4. we investigate a typical Roman column.By specifying non zero values for the x and y displacement.5 As a more interesting example of fixed diameter column.1. > 4*cos(-30). So.sin(-30°). > 5*cos(0). the coordinates are 4 cos30° . 4*sin(-30). If we specify 1. The centerpoint 1 is located at 0° on a radius of 5. The coordinates of this point are 4. we first define a centerpoint for the arc. > 4*cos(30). ! Draw the arch from point 1 to point 2 located at radius 4 and angle -30° We continue by defining centerpoints and endpoints for the arches. 4. ! Define centerpoint of an arch at radius 5 and at angle 0° We then draw an arch till point 2. 10 .

! Simpliest column with revolve Roty -90 REVOLVE 2. 1. 0 ! Polyline of 2 points ! Revolve 360° ! Flag 1= base present Flag 2 = bnd present. 1+2. 1. 1. 1. 10. ! Point 1 ! Point 2 13 . then the columns is standing up. 0. 0. 1+2. 0 ! Polyline of 2 points ! Revolve 360° ! Flag 1= base present Flag 2 = bnd present. 0. This line is revolved around the x-axis and generates a flat lying column ! Simpliest column with revolve REVOLVE 2.Ex. 0. 360. REVOLVE With revolve we can turn a line around an axis so that it generates a surface. 360. The simpliest example is where the line only exists of 2 points with x. 10. ! Point 1 ! Point 2 If we rotate this by -90° around the y-axis (roty -90°).y coordinates.

0. 0.0] 0. 0. 0.1.0.5.5. 15.0.5. REVOLVE offers much more possibilities and allows to create any round column with varying diameter of cross sections. 0. 90. 1. diffuse. DEFINE MATERIAL "Concrete" 1. ! shining [0.2 Columns with variable diameter Columns with a variable diameter are created with the commands CONE. 0. RADIUS height=10 radiusBottom=3 radiusTop=2 CONE height. FPRISM FRISM makes it possible to define a PRISM where the top cross section is smaller than the bottom cross section. radiusBottom. "Concrete".. nrPoints.5. 1.5. inclination_height. 15. 0.0. Using CONE and FRISM we can create simple columns were the diameter of the cross section varies linearly from bottom to top.0. ! Here follow the 7 points of the polyline of the cross section 0. 0. ! ambient.0. 15. -0. inclination. 0.1. 15 14 . ! surface RGB [0. radiusTop.8.4] nrPoints=7 height = 5 inclination_height=4 inclination=85 ! Number of points defining the polyline of the cross section ! The total height of the column ! The surfaces at the top are inclined over a height of inclination_height ! The inclination angle of the top is 85° FPRISM_ "Concrete". 15.0. 0. 0.0. "Concrete". 15. 15.100] 0 ! transparency attenuation [0. height . specular.8.. 1. FPRISM and REVOLVE. -0. 90 ! parameters 90 are inclination of top and bottom surface compared to z-axis.5.. Ex.0. ! The cross section is a hexagon. 0. -0. -0.5. Ex.5.8.3.. ! The extra parameter 15 determines visibility of edges and surfaces -1.0. "Concrete".0.0] 1.transparent ! coefficients [0.0.

0. 0. 0.0. 1. 1. REVOLVE With REVOLVE we define the outline (shape) of column as a polyline – the top and bottom must not be specified.y plane and then rotated around the x-axis REVOLVE 4. 1. 0 ! Polyline of 4 points ! Revolve 360° ! Flag 1= base present Flag 2 = bnd present.4.0.0. 1. 10.0.0. ! Point 1 – bottom point ! Point 2 ! Point 3 ! Point 4 – top ponit The resulting column with varying diameter lies flat : 15 . 1.The column seen from side and top : Ex. 2. 1+2. The outline is drawn in the x. 0. 0. 360.4.

0.0. 1. 1. 10. 10.0. 2.We can draw the polyline of the outline with a mixture of straight and arc segments. 1. 1.4. 10. 0. 1. 0. This makes it possible to create a wide variety of columns.0.0.4. A simple example with 1 arc segment at the top.0.0.4. 0.0. 0.2. 1+2. REVOLVE 6. 900. 3000 ! Polyline of 6 defining lines ! Revolve 360° ! Flag 1= base present Flag 2 = bnd present. 1.centerpoint ! Define arc .0. 1. ! Point 1 ! Point 2 ! Point 3 ! Point 4 ! Define arc .endpoint 16 . 360.

5.y surface. 14 ! the polyline of the cross section is a rectangle and exists of 4 points ! we will sweep the cross section along a sweep path consisting of 6 points ! between each of these 6 points. 20. 2.5. 0. so we sweep upwards on the z-axis This example in itself is not very useful but the idea can be extended to much more interesting forms. -0. It is also possible to define a scaling factor that is applied to each consecutive point on the space path the crossection. -1.3.3 Twisted columns Twisted columns are created with the command SWEEP. 0. 0. 6. The cross section in x.y and the first step upwards the z-axis are shown below : Cross section moved one step upwards on z-axis and rotated by 20° Polyline of cross section in x. 0. 1. 0. 8. We define the polyline of the cross section in the x. we will SWEEP across a space path parallel with the z-axis.show the existence of the bottom .0. 12.z while at the same time it can be rotated. 1+2+4+16+32. 0. 10.y surface – sweep it along the z-axis while at the same time rotate the rectangle with 20° each time we move upwards on the z-axis. -0.0.top . We will move upwards 6 times. 0. 0.it is possible to scale the cross section for each of the sweep path ! Mask . 0.y. 1.0. 6.y of the polyline of the cross section ! Here are the 6 points x. 0. the cross section will be rotated over 20 degrees ! scale factor .5. 0. 0. -1.y SWEEP 4. 0. We will draw a simple rectangle in the x.y.0. 0. The concept can best be demonstrated with an example that is not too complicated. It is the rotation that results in a twisted form.z of the polyline sweep path ! Only the z coordinate is different from 0. 1. In the case of straight upstanding columns. 0.5. 0. 0. 17 . 0. This cross section can be swept on a space path in x.edge surfaces ! Here are the 4 points x.

If we lower the height for one rotation to 10 meter. If we lower the height for one rotation too much. we can increase the number of sweep points from 20 to 100 : The same with only 4 sides for the cross section : 21 .We can now easily change height. we will need to increase the number of SweepPoints to increase the resolution. cross-section number of sides. height for one rotation. we get : To get a better resolution. cross-section diameter.

particularly if the diameter of the cross section is not constant. 22 .Another example : We can become all sorts of good looking twisted columns by choosing different cross sections.

0.8. -0. 5. SIN(345).8. 0.2.4. 0. 4. SIN(30). 1. SIN(330).0. SIN(210). SIN(270).8. 1.0. 0. 1. SIN(360). 1. SIN(375). 27. 0. COS(330). COS(90).4. 3.6. 0. 0. SIN(255).0. 2. SIN(240).2. 0. COS(375).8 END "PUTSEGMENT": CYLIND 4.6. SIN(285).0. COS(360). COS(270). COS(180). 0. COS(210). 1. 3.0. COS(15).0 TUBE 4. 0. COS(120). COS(345). SIN(90). 0. 0. SIN(315). 0. 0. 0. COS(75). COS(315). 0.8 GOSUB "PUTSEGMENT" ADDZ 4.3. 1.4. 2. SIN(0). 4. 0 RETURN 23 . 0. COS(135). 4. SIN(165). SIN(75). 2. 2. SIN(105). COS(225). COS(285). COS(60).8. COS(165). 0. COS(255). 1. SIN(15).0.0.8 GOSUB "PUTSEGMENT" ADDZ 4. COS(0). 0. 2. 0. 0. 2. 1+2+16+23.4.2.6. COS(240). SIN(225). COS(105). COS(-15). 1. 4. COS(30). 1.0 .8 GOSUB "PUTSEGMENT" ADDZ 4. 0. 0.0. 0. SIN(-15). 0. 1. 0. COS(300). 3.8 GOSUB "PUTSEGMENT" ADDZ 4. COS(195). SIN(180).2.0. 1.4. SIN(60).8. SIN(150).6.0. 0. 0. 0. 0.8.6.8.4 Special columns GOSUB "PUTSEGMENT" ADDZ 4.0.8 GOSUB "PUTSEGMENT" ADDZ 4.0. 3. 1. SIN(120).2. 0. 2.0 . 3. SIN(45). SIN(135).4.8 GOSUB "PUTSEGMENT" ADDZ 4. SIN(300). 0. COS(45).8 GOSUB "PUTSEGMENT" ADDZ 4. 0. 4.2. COS(150). SIN(195).

24 .

4. They can be modeled with REVOLVE or SWEEP. 25 . Balusters Balusters are similar to complex columns.

With TUBE it is possible to define the angle of the first and last surface. therefore. With TUBE we can easily create a tube with a constant cross section. The tube is defined by its cross section (a two-dimensional polyline contour) and the path that the tube follows (a 3 dimensional polyline in x.). The intersection with the first and last segment. The TUBE command is can best be demonstrated by some simple example where the 3D polyline remains in 2 D: z=0. existing of one or more segments. Imaginary segment after last segment.y. The definition of these extra 2 imaginary segments is made by 2 extra points. Last surface First surface Bisector plane Bisector plane It is easy to understand how 2 segments meet and in mathematical language. we define two extra imaginary segments : one before the first and after the last. To that purpose. Cornices 5. SWEEP however offers the additional possibility to have a not constant cross section. the cross section of the second segment makes an angle of 90° with the horizontal.5. Imaginary segment before first segment. teh cross section makes an angle of (90+45)/2=67. define the angle of top and bottom surface. Therefore TUBE is basically is similar to SWEEP : a two-dimensional polyline swept across a 3D path. Same cross section of each segment.5°.z. this is described as “the cross section where two segments meet lays in the bisector plane” : The cross section of the first segment makes an angle of 45° with the horizontal. A simple straight tube : 26 .1 The command TUBE Cornices are most easily modeled with TUBE. Below an example with 3 segments – each segment has the same cross section.

3 and 5.3 0. 0. 1.3 0. 3 0. y 0. 3 5. The last real point is 5. 0.0. 5. 7. 0. 0.0.3 make a 90° turn with respect to the tube. 0.0 5. 0.0. 1.0. 0. 0. 0. 0. 0. 1. 0 x 27 . the first and last surfaces are orthogonal with the tube path. 1. ! The first point only is there to define the imaginary section ! that determines the rotation of the first surface ! The first real point of the tube segment ! The last real point of the tube segment ! The last point only is there to define the imaginary section ! that determines the rotation of the last surface As you can see from the picture.0.TUBE 5. 0.0 x As a result the first and last surfaces lay at 45° angles.0 and 7.0. 0. The imaginary first and last extra segments defined by points -1. the imaginary first and last extra segments. 0. -1. 0. 1. 4. 0. 0 5. 1+2+16+32. the first real point of the tube path is 0. 0. 2. y 5. 0. 2. 1.0 lay in the same direction as the tube. 0 ! The cross section is described by 5 points ! The path is described by 4 points ! Mask that determines the surfaces that are visible ! The definiton of the 2D polyline of the cross section ! The 3th parameter 1 indicates that edges are not visible ! The definition of the 3D polyline of the cross section ! The 4th parameter 0 indicates the angle that the surface makes. defined by extra points 0. In the next example. 1. Therefore.

1. 0. 0. 0. 0. ! The 2D polyline has 5 points 5.y. 0. 0. 3. 0. 0. 0. 0. 0. ! Mask defining visibility of surface ! Points defining the 2D contour – the contour must be closed. 0. 0. 0 Result : A simple tube with a 90° elbow TUBE 5. 0. 0 28 . 2. 0. 0. the edges are displayed. 0. ! The 3th parameter defines if lateral edges are visible or just used for displaying the contour ! If 0. 0.TUBE 5. ! Points (x. 0. 0. 0. ! Points (x. the edges are displayed.z) defining the 3D sweep path ! The fourth parameter defines an angle. 0. 0. 0. 0. ! The 3D polyline has 5 points 1+2+16+32. 0. 0. 0. 0. 0. 0. 0. 5. 5. 2. 0.z) defining the 3D sweep path ! The fourth parameter defines an angle. 1. 7. 0. 0. 5. 7. 0. ! The 2D polyline has 5 points 4. 0. 5. 2. 0. 3. 0. 0. 2. 1. 1. 0. 0. 0. ! The 3D polyline has 4 points 1+2+16+32. 0. 0.y. ! The 3th parameter defines if lateral edges are visible or just used for displaying the contour ! If 0. ! Mask defining visibility of surface ! Points defining the 2D contour – the contour must be closed. 0. 0. 0.

0. 2. 0.0. 0. 0. 1. 0. 0. 0.0. 0. 0. 0. We can extend this example to 5 segments. 7.0. 1.0. 0.0.0. 0. 0.0. 0.5.0. 0. 0. 0.0.5. 4. 0. 20. 1+2+16+32. 0. 1. 0. 0. 0. 0. 1+2+16+32. 1. 10. 0. 2. 0. 0.0. 0.0.5.0. 4. 3000.0.0. 0.0. 0.0. 0 ! The 2 D polyline of the cross section is described by 7 lines ! The path is described by 4 points ! Mask that determines the surfaces that are visible ! The definiton of the 2D polyline of the cross section ! The 3th parameter 0 indicates that edges are visible ! Define the centerpoint of the arc ! Define the end point of the arc ! The definition of the 3D polyline of the path ! The first point only is there to define the imaginary section ! that determines the rotation of the first surface ! The first real point of the tube segment ! The last real point of the tube segment ! The flast point only is there to define the imaginary section ! that determines the rotation of the last surface It is clear that we can draw cross sections with multiple arcs and straight lines and therefore can create cornices of any complexity. 0. 1. TUBE 7. 0. 5. 0. 1. 0. -1. 0. 0. 0. 0. -1. 0.0. 0. 0. 3000.0. 0. 0. 0. 1.5. 900. 1. 0. 0.0. 0.0. 0. 0.5. 0. 0.0. 1. ! 5. 1. 0.2 Corniches and frames with TUBE We can also use special status codes as 3th parameter of the 2D polyline points to create arc’s in the 2 D polyline of the contour. 0.0. 0. 900. The most simple example : TUBE 7. 0. 0. 15. 0. 0. 10. 0.0. 0 ! The 2 D polyline of the cross section is described by 7 lines ! The path is described by 4 points ! Mask that determines the surfaces that are visible ! The definiton of the 2D polyline of the cross section ! The 3th parameter 0 indicates that edges are visible ! Define the centerpoint of the arc ! Define the end point of the arc ! The definition of the 3D polyline of the path ! The first point only is there to define the imaginary section ! that determines the rotation of the first surface ! The first real point of the tube segment ! The last real point of the tube segment ! The last point only is there to define the imaginary section ! that determines the rotation of the last surface 29 . 0. 0. 0. 5. 0. 0.

10. 0. 0. 0. 0. 0. 0. 0. 1.0. 0. -1. -1.0.0.0. 1+2+16+32.0. 0. 3000.0.0. 0. 0. 0 ! The cross section is described by 7 lines ! The path is described by 7 points ! Mask that determines the surfaces that are visible ! The definiton of the 2D polyline of the cross section ! The 3th parameter 0 indicates that edges are visible ! Define the centerpoint of the arc ! Define the end point of the arc ! The definition of the 3D polyline of the path ! The first point only is there to define the imaginary section ! that determines the rotation of the first surface ! The first real point of the tube segment ! ! The last real point of the tube segment ! The last point only is there to define the imaginary section ! that determines the rotation of the last surface . 1. 0. 7. 0. 10. 0. 1. 0.0. 0. 10. 0. 0. 0. 0. 0.5. 1. 0.0. 0.0. 30 . 0. 900. 0.TUBE can also be used to draw frames. 0. 1. TUBE 7. 0. 0. 0.5. 0. 0.0. 10. 1. 0.0. 0. 0.

0. 17. 0. 2. 1.0.1. 0. 0. 0. 0.4. 6+4*SIN(165). 4 . 0.4*COS(120).5. 0. 6+4*SIN(60). 0. 6+4*SIN(45). 1. 6+4*SIN(15).0.0. 0. ! The path of the tube is defined by 17 points -1. 0. 1. 6+4*SIN(150).4. 4 . 0.4*COS(15). 0.5. 1.0.4*cos(165). 4 . 16+32.4*COS(75). 0.4*COS(135).0. 4 . 0.4*COS(150). 8. 0.5. 6+4*SIN(105). 4 .4*COS(60). 0. 0. 0. 0. 0. 8. 0. 0. 0. 0. 1.0.5. 0. 0. 6+4*SIN(135). 0. 6. 4. 0. 1. 0 ! The polyline of the cross section is defined by 12 lines ! The path of the tube is defined by 17 points ! Mask that determines visibility of surfaces ! The polyline of the cross section is defined by 12 lines 31 .0. 0. 4 . 0. 0. 0.0.4*COS(105). 0.0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 4 . 0.0. Example.0. TUBE 12. 0. 0. 0. 0. 0. 0. 0.4*COS(30). 0. 0. 6+4*SIN(30). 6+4*SIN(120). 0. 4 . 1. 0. -1. 6+4*SIN(75). 0.3. 0.4*COS(45). 0. Arches Arches can easily be made with TUBE.4. 0. 0.1. 8.0. 0. 4 . 10. 0. 4 . 0.3. 0.4. 6.6. 2. 0.

0. In example below. 0. 0. -4*COS(15). 6+4*SIN(45). ! The path of the tube is defined by 17 points ! This path is now symmetrical with respect to x-axis -1. 0. 0.0. the arch is symmetrical around x-axis. 0.4. 0 32 . 0. 0.0. 6+4*SIN(60). 6+4*SIN(105). 0. 6+4*SIN(165). 0. 0. 0. 0. 6. 0. 6+4*SIN(15). 0. 0. 0. -6. ! The path of the tube is defined by 17 points 16+32. -4*COS(45).0. 6+4*SIN(120). -4*COS(150). 0. -4*COS(105). -4*COS(135).0. 0. 0. 0. 0. 6. -4*COS(120). !roty -90 TUBE 5. 0. 0. 6. 0. 1. 0. 6+4*SIN(150). 6. 0.0. 0. 6+4*SIN(30). 0. -1. ! Mast that determines visibility of surfaces ! The polyline of the cross section is defined by 12 lines 0. 0. 0.0. 1.0. 0. ! The polyline of the cross section is defined by 4 points 17.4. 6+4*SIN(90). It shows that the polyline of the cross section has no relation to the path : the cross-section is defined in a “temporary u-v” coordinate system that is dragged along the path. 0. 0. 0. 0. 6+4*SIN(135).One can complete different shapes of arches. 0. -4*COS(75). -4*cos(165). 0. 0. 0. -4*COS(60). 6+4*SIN(75). 0. 0. 6. -6. 0. 0. -4*COS(90). -4*COS(30).0. -6. 0. 0. 0.

0. 0. 0. 0. 0. 6. 0. 2-6*COS(45). 0. 0. 0.0.0.0. 2-6*COS(30). 0. 0. 0. 0. 2-6*COS(70). 6+6*SIN(70). 0. 0.4. -2-6*COS(120). -2-6*COS(150). 0. 0. 0.4. ! The path of the tube is defined by 16 points ! This path is now symetrical with respect to x-axis -1. ! The path of the tube is defined by 16 points 16+32.0. -4. ! First part of the arch 6+6*SIN(15). 0. -4. 0. 0 33 . 0. the y value becomes 0 : y=2-R cos α = 0 R cos α = 2 6 cos α = 2 α = 70. y=2 !roty -90 TUBE 5. 1.0. -2-6*COS(110). -2-6*COS(135). ! Mast that determines visibility of surfaces ! The polyline of the cross section is defined by 12 lines 0. 2-6*COS(60).0. 0. 0. 6+6*SIN(60). 0. 0. 2-6*COS(15).5° R=6 α y y=2-R cos α x=R sin α x=0. 0. -4. 0. 6.0. 0. 0. 0. 6+6*SIN(120). 0. 0. 0. ! Second part of the arch – symmetrical of first part 6+6*SIN(110). 4. 6+6*SIN(45).0. 0. 0. 0. 6+6*SIN(165). 0. 6+6*SIN(30). 0. 4. 1. 0. -2-6*COS(165).Another typical not round arch is constructed by adding 2 arch segments. ! The polyline of the cross section is defined by 4 points 16. 0. 4. 6+6*SIN(150). First arch segment x In the endpoint. 0. -1. 6+6*SIN(135). 0. 0. 0. 0.

y. These functions allow to model any 3D surface by specifying the x. 34 . the pattern can be drawn as an extruded polyline or a rather flat tube moving along a polyline. For more complex friezes you need MESH or MASS.y coordinates were estimated and noted.7. The form was first drawn on paper from which x. This shows that with some effort. Below an example by an extruded polyline. Friezes For simple friezes. a lot becomes possible. z-coordinates.

7. 0. 26. 0. 20.0.5.0.0. 20. 0.85.0. 4.0. 0. 21. 0. 0. 0. 3. 0. 0.0.0.8.15. 4. 10. 26.0 .5.0.3. 0.EXTRUDE 118.2.0.0. 0. 15.25.0. 0. 25.0. 0.7.0. 22. 21. 0. 7.0.1.0. 0.0.0. ! point 64 18. 24.0. 23. 22.0.0. 0. 0. 7. 0. 10. 22. 0. 20.0.0.6. 0. 22. ! point 35 26.0. 0. 25.2. 0. 5. 0. 24.0.0. 9.6. 0.55.2. 9. 25.0. ! point 32 27. 0. 28. 7. 20. 12. 0.9.0. 0.5. 8. 21. 20. 27. 28. 19.0. 28.1. 0.0. ! point 48 26.0.0 . 23.0.4.0.8. 0. ! point 51 24. 7. 21. 16. 4. 0.0. 4. 4.2. 3. 0. 27. 12. 25.3.0. 0.2. 0. 24. 0.0. 7.0. 24.0. 23. 0.8. 0.0 .15. 20. 26. 25.0.6.2.2.55. ! point 23 23. 0. 0. 21.5 . 22. ! point 70 21.0.0. 0.5.45.0.0. 22.4. 17.0. 20. 15. ! point 55 23. 13.2.0 . 0.0. 0.0. 25.7. 10.0. 4.8. 0.0.2. 24.0. 0. 0. 26. 23. 0.0.2. 25. 19. 0. 0.0. 24. 8.2.7. 20. 23. 24.0. 5. ! point 71 35 .2. 17. 0. 25. 20. 0. 26.7. 6. 17. 0. 0. 22.0.4. 16.15.0.6.0.0.0. 0. 0. 0.0. 5. 9. 19. 0. 21.0. 0.3. 5. 0. 24. 21.5. 0. ! point 42 27.0. 28. 29. 21.0.0. 18. ! point 59 21. 5. 14. 0. 0. 0. 0. 14.5. 20. 6. 0. 20.2. 24.0. 14. 5. 0. 20.0. 21. 0. 0.0. 24.8. 5.0. 22. 0. 1+2+4+16+32. 27. 13. 26.0.95.2.0. 6. 11.5.0.0. 11. 0. 23. 0.5.0. 0. 22. 2.0 .3.0. 23. 4.7. 0.0.0. 22.0.2. 20. 27.2. 0. 13.0. 20. 0. 18. 8. 6. 21. 26.0 .4.0. 26.

36 . 0. 7. 7. 0. 0. 0. 13. 21.4. 19. 0.0. 23.0. 0.0.0. 6.0. 25.8. 8. 8. 11.5. 0.8.0. 24. 15.7. 13.0.0.4.0.0. 0. 7. 9. 19. 7.9.20. 0.0.0. 19. 10.0. 0. 24. 12.0.0. ! point 77 24.0.2. 11.0.0.8. 8.0. 4.0. 19. 0.2.0. 8. 0.2. 0. 10.4. 7. 9.3. 0. 19. 11. 0.3. 6. 0. 17. 16. 0. 0. 0. 10. 0.0.3. 0. 5. 9. 10. 8.8.5. 22. 0.0. 0.0. 0. 9. 13. 0. 0.5 . 2. 0.0. 24.7. 0. 6.4.0. 10.1.0.0.0. 14.0. 8. 21.0. 11.7. 8.0.5.0.0. 0. 10. 17. ! point 89 22. 0. 9. 24. 0.6. 18.5.0. 15. 0. The top surface is not flat now and FPRISM allows to define immediately the material. 10.0.0.0. ! point 111 8. 0. 0.0. 11. 13. 10. 24. 8.0. 18. 0.0. 0.5.1. 11.5. 0 We can make it somewhat more beautiful by using FPRISM.0. 0.2.0. 0. 24. 19. 0.7.0. 17.0.0. 23. 7.0.0. ! point 104 11.0. 23.0. 6.0.0. 23. 9.0. 0. 16.0.5. 10. 0.2. 7.6.0. 10.8. 7. 0.0.0.0. ! point 98 15. 5. 16. 24. 0. ! point 85 24. 22. 0. 0. 12. 0.0.6. 6. 13.

4] FPRISM_ "Concrete". 0.1. diffuse. 15. 0. specular. And so on for all 118 points..0. 0.. ……. ! shining [0. ! ambient.. 37 . 13.0] 1.0. ! surface RGB [0.0.0 .0..0. 4. 15.5 .5. "Concrete". "Concrete". 0. "Concrete".transparent ! coefficients [0.1. 11.8..0. the frieze script becomes DEFINE MATERIAL "Concrete" 1. 3. …….2. 15.8.8..0] 0. 45.0. 0.0 . 10. 2. 3.8.When using FPRISM. 1. 118.100] 0 ! transparency attenuation [0. 1.

8. 15. 15.0.0] 1. cos(120). 0. sin(180). nrPoints. sin(60). cos(240). cos(300). FPRISM For towers with a ground plan that is not round. Example of a tower with hexagonal cross section.0.0. sin(120). inclination_height.transparent ! coefficients [0.8. FRISM makes it possible to define a PRISM where the top cross section is smaller than the bottom cross section. 0. "Concrete". cos(0).1. ! Here follow the 7 points of the polyline of the cross section cos(60). 1. Towers Typical towers can be made with REVOLVE – FPRISM – TUBE and SWEEP REVOLVE For round towers. 15. ! The extra parameter 15 determines visibility of edges and surfaces cos(180).. 15. "Concrete"..4] nrPoints=7 height = 5 inclination_height=4 inclination=78 ! Number of points defining the polyline of the cross section ! The total height of the tower ! The surfaces at the top are inclined over a height of inclination_height ! The inclination angle of the top is 78° FPRISM_ "Concrete".0.8. ! surface RGB [0. 15. 0. 15.. specular.0.6. sin(300).1. diffuse. height . ! shining [0. inclination. "Concrete". sin(360).. 0. 15 TUBE 38 . sin(240). DEFINE MATERIAL "Concrete" 1. ! ambient. sin(0). 0. cos(360).100] 0 ! transparency attenuation [0. ! The cross section is a hexagon.0.0] 0.

0.We can also rotate any polyline contour around the z-axis for a number of degrees. ! The definition of the 2D polyline of the cross section 0.01. 0. 1+2+16+32. 0.01. The form that we obtain in such way can then be repeated 4 times to complete the 360°.1. 0. 0. 0. ! This is one 45° part TUBE 5. ex. 1.7. 5. then we become the full tower. 0.0. The polyline of the contour can naturally much more complicated and contain also arcs. 39 .01. 0.1. 0. ! The definition of the 3D polyline of the path section -1.01.1. 0. 0. 0. -1. 90°.01. 0. -0. 0. 0.1. 0 If we repeat this 4 times and before each time write rotz +90. 0.0. 3. 0. 0.1.1.0.