This chapter is concerned with a number of surface types which can be defined from two parametric curves. In each case the surface produced is a patched bi-parametric surface but the relationship between the initial curves and the final surfaces depends upon the definition statement. In the simplest case two curves can be used to define a ruled surface, this is described in section 5.1. The remaining sections of this chapter are concerned with the 'cross-product' definitions of surfaces. In each case one of the two curves defines a profile curve for the surface and the second curve controls the generation of the surface from the profile curve. Section 5.2 describes the 'TRANSL' type of cross product surface in which the profile curve is translated or swept along the control curve to generate the surface. Section 5.3 is concerned with the rotated types of cross product surfaces. Finally, Section 5.4 describes a type of surface produced by translating and scaling the profile curve. All these types of surface definition can be used to produce smooth sculptured surfaces and the definitions allow great flexibility to the user but in some cases the result can be difficult to visualise from the basic curves.


A ruled surface can be defined as a surface generated by a family of straight lines, at each point of the surface the curvature is zero in the direction of the ruling. In practice the simplest method of generating a ruled surface is to start with two profile curves and connect corresponding points on these curves with straight lines. It is important to note that the shape of the surface produced depends not only upon the profile curves but also on the point to point association between the curves. In the sculptured surfaces system a ruled surface is defined by two profile curves which must be divided into the same number of segments. The rulings on the surface then connect points on the surface with the same parameter value. The two definition formats for ruled surfaces are in fact special cases of the GENCUR and SMESH surface definition statements. For a GENCUR type of ruled surface the curves must have a 'FLOW' structure, which is used to define the rulings. For an SMESH type ruled surface the natural curve parameter is used. 107


In the first simple example the profile curves are both plane curves defined in parallel planes. C5 is a semi circle in the plane z = 0 and C6, in the plane z = 8, consists of two short line segments at right angles to each other. A = POINT/-5,0,0 B = POINT/0,5,0 C = POINT/5,0,0 D = POINT/-5,0,8 E = POINT/0,5,8 F = POINT/5,0,8 T = VECTOR/1,0,0 C1 = SCURV/CURSEG,A,B,TANSPL,T C2 = SCURV/CURSEG,B,TANSPL,T,C C3 = SCURV/CURSEG,D,E C4 = SCURV/CURSEG,E,F C5 = SCURV/COMBIN,C1,C2,FLOW,ARC,0,2,SEG,LENGTH,0,1, $ LENGTH,1,2 C6 = SCURV/COMBIN,C3,C4,FLOW,ARC,0,2,SEG,LENGTH,0,1, $ LENGTH,1,2 RS = SSURF/GENCUR,C5,C6 In this example RS is defined as a ruled surface with boundary profile curves C5 and C6. These are both two segment flow curves with the flow proportional to the arc length. The resulting surface is shown in Figure 5.1, it is a ruled surface with two patches, one for each segment of the boundary curves. The parametric curves v = constant, r = r(u) include the two boundary curves (v = 0 and v = 1) intermediate curves are a blend between the two boundary curves. The parametric curves u = constant are all straight lines, this is referred to as the cross spline direction in the standard print out. The full verification listing for this surface is: 108 Figure 5.1 109 SCULPTURED SURFACE RS PT = SURFACE POINT, TN = FIRST (SPLINE) DIRECTION, CS = SECOND (CROSS SPLINE) DIRECTION, NR = SURFACE NORMAL. EACH PATCH HAS FOUR CORNERS PT00, PT10, PT01, PT11. BOUNDARY B1 = PT00 - PT10 , B2 = PT00 - PT01 , B3 = PT10 - PT11 , B4 = PT01 - PT11. NR50, NR05, ETC REPRESENT SURFACE NORMALS AT INTERIM POINTS NR05 REPRESENTS A NORMAL AT u = 0 , v = 0.5 MIDWAY BETWEEN PT00 - PT01. POSITIVE RADII AND CURVATURES ARE CUPPED IN THE DIRECTION OF THE SURFACE NORMALS NRI, NRT, NRK SS HEADER TABLE VALUE TABLE SIZE 263 TOPOLOGY TABLE SIZE 8 NUMBER OF PATCHES 2 SURFACE TYPE (MESH = 2) 2 PNTVEC,POLYGN,PNTSON 6 SIGN OF NORMAL (TN x CR) 1 TOTAL SIZE OF SURF 293 NUMBER OF SPLINES 2 NUMBER OF CROSS SPLINES 3 X Y Z W X Y Z W PATCH NUMBER 1 PT00 -5.000 0.000 0.000 1.000 CR00 0.000 0.000 8.000 1.000 PT50 -3.543 3.529 0.000 1.000 CR50 1.043 -1.029 8.000 1.000 PT10 0.000 5.000 0.000 0.000 CR10 0.000 0.000 8.000 0.000 PT01 -5.000 0.000 8.000 0.000 CR01 0.000 0.000 8.000 0.000 PT51 -2.500 2.500 8.000 0.000 CR51 -1.043 -1.029 8.000 0.000 PT11 0.000 5.000 8.000 0.000 CR11 0.000 0.000 8.000 0.000 PT05 -5.000 0.000 4.000 0.000 CR05 0.000 0.000 8.000 0.000 PT15 0.000 5.000 4.000 0.000 CR15 0.000 0.000 8.000 0.000 110 NRI NRJ NRK NR00 1.00000 0.00000 0.00000 NR50 0.69692 -0.69417 -0.18007 NR10 0.00000 -1.00000 0.00000 NR01 0.70711 -0.70711 0.00000 NR51 0.69555 -0.69555 -0.18006 NR11 0.70711 -0.70711 0.00000 NR05 0.93171 -0.36319 0.00000 NR15 0.36319 -9.93171 0.00000 B1 = 0, B2 = 0, B3 = 2, B4 = 0 PT55 -3.021 3.014 4.000 NR55 0.6963 -0.6948 -0.1801 PATCH AREA 59.0091 CURVATURES 0.1089 0.0000 MEAN & GAUSS = 0.0544 0.0000 RADII = 9.183 105506.803 X Y Z W X Y Z W PATCH NUMBER 2 PT00 0.000 5.000 0.000 1.000 CR00 0.000 0.000 8.000 1.000 PT50 3.529 3.543 0.000 1.000 CR50 -1.029 -1.043 8.000 1.000 PT10 5.000 0.000 0.000 0.000 CR10 0.000 0.000 8.000 0.000 PT01 0.000 5.000 8.000 0.000 CR01 0.000 0.000 8.000 0.000 PT51 2.500 2.500 8.000 0.000 CR51 -1.029 -1.043 8.000 0.000 PT11 5.000 0.000 8.000 0.000 CR11 0.000 0.000 8.000 0.000 PT05 0.000 5.000 4.000 0.000 CR05 0.000 0.000 8.000 0.000 PT15 5.000 0.000 4.000 0.000 CR15 0.000 0.000 8.000 0.000 NRI NRJ NRK NR00 0.00000 -1.00000 0.00000 NR50 -0.69417 -0.69692 -0.18007 NR10 -1.00000 0.00000 0.00000 NR01 -0.70711 -0.70711 0.00000 NR51 -0.69555 -0.69555 -0.18006 NR11 -0.70711 -0.70711 0.00000 NR05 -0.36319 -0.93171 0.00000 NR15 -0.93171 -0.36319 0.00000 B1 = 0, B2 = 1, B3 = 0, B4 = O PT55 3.014 3.021 4.000 NR55 -0.6948 -0.6963 -0.1801 PATCH AREA = 59.00091 CURVATURES = 0.1089 0.0000 MEAN & GAUSS = 0.0544 0.0000 RADII = 9.183 105506.803 APPROXIMATE TOTAL SURFACE AREA = 118.00182O CRITICAL CURVATURES ON THE SURFACE MAXIMUM SIGNED CURVATURE AND RADIUS = 0.10889 9.18266 AT PATCH NUMBER 2 MINIMUM SIGNED CURVATURE AND RADIUS = 0.0000 105506.80300 AT PATCH NUMBER 2 111 MESH PATTERN OF POINTS AND NORMALS POINT X Y Z SNI SNJ SNK SPLINE NUMBER = 1 (v=0) 1 -5.00000 0.00000 0.00000 1.00000 0.00000 0.00000 (u=0) 2 0.00000 5.00000 0.00000 0.00000 -1.00000 0.00000 (u=1) 3 5.00000 0.00000 0.00000 -1.00000 0.00000 0.00000 (u=2) SPLINE NUMBER = 2 (v=1) 1 -5.00000 0.00000 8.00000 0.70711 -0.70711 0.00000 (u=0) 2 0.00000 5.00000 8.00000 -0.70711 -0.70711 0.00000 (u=1) 3 5.00000 0.00000 8.00000 -0.70711 -0.70711 0.00000 (u=2) CROSS SPLINE NUMBER = 1 (u=0) 1 -5.00000 0.00000 0.00000 1.00000 0.00000 0.00000 (v=0) 2 -5.00000 0.00000 8.00000 0.70711 -0.70711 0.00000 (v=1) CROSS SPLINE NUMBER = 2 (u=1) 1 0.00000 5.00000 0.00000 0.00000 -1.00000 0.00000 (v=0) 2 0.00000 5.00000 8.00000 -0.70711 -0.70711 0.00000 (v=1) CROSS SPLINE NUMBER = 3 (u=2) 1 5.00000 0.00000 0.00000 -1.00000 0.00000 0.00000 (v=0) 2 5.00000 0.00000 8.00000 -0.70711 -0.70711 0.00000 (v=1) The above print out was obtained using the SSTEST option, the default print out omits all the patch data and consists of the header table, the surface area and critical curvatures and the mesh pattern of points and normals. Much of the above is self explanatory but some further clarification is needed for some of the details. The explanatory note is used for all patch data output but the format of the actual data depends upon the type of patch. In spite of the reference to tangent data in the spline direction (TN) this is not given for a ruled surface. All output coordinates are given in Cartesian form, the W values although tabulated should be ignored. The boundary data at the end of the patch data is taken from the topology table and shows precisely how the patch is connected to its neighbours. PT55 refers to the central point of the patch, (u = 0.5, v = 0.5) and it is at this point that the curvatures and associated radii are computed. The values printed out are the two principal curvatures (i.e. curvatures in the principal directions which may not coincide with the parametric curves), the arithmetic mean of these two quantities and the Gaussian curvature which is defined as the product of the principal curvatures. 112 The area is obtained by a simple numerical integration method which uses data only from the patch corners, the mid points of the edges and the central point of the patch, the result should be taken as only an approximate indication of the true surface area. Any modification of the segment structure of the boundary curves will have no effect upon the shape of the ruled surface but can alter the computed area. In the condensed form of the output the total surface area is the sum of the computed patch areas and the critical curvatures are the extreme values occurring at the middle of all patches of the surfaces. In this particular example, boundary curve C6 had a tangent discontinuity at its mid point, this discontinuity affects the patch data. The two patches join along edge PT10 - PT11 of patch 1 and edge PT00 - PT01 of patch 2. At the point u = 1 , v = 1 of patch 1 the surface normal has direction cosines (0.70711, -0.70711, 0.00000) but at the same point ( u = 0 , v = 1 ) of patch 2 the direction cosines are (-0.70711, -0.70711, 0.00000) and the two normals are in fact at right angles. At the mid point of this common boundary the data for NR15 of patch 1 and NR05 of patch 2 shows that the change in surface normal is less abrupt and at the opposite end NR10 and NR00 are in precisely the same direction. The printed value of 105506.803 for the radius of curvature is in fact a default value corresponding to zero curvature, normally the radius is the reciprocal of the curvature. The first example was of a simple ruled surface defined between two curves in parallel planes, if the basic curves are parametric curves in 3 dimensional space the resulting surface is more complex but still consists of straight lines in the v direction. A more general example is: 113 Figure 5.2 114 P1 = POINT/0,0,0 P2 = POINT/1,2,0 P3 = POINT/2,0,-2 P4 = POINT/4,1,-1 Q1 = POINT/0,0,5 Q2 = POINT/2,3,7 Q3 = POINT/3,4,6 Q4 = POINT/5,2,7 C1 = SCURV/SPLINE,P1,P2,P3,P4, $ FLOW,ARC,0,3,SEG,LENGTH,0,1,LENGTH,1,2,LENGTH,2,3 C2 = SCURV/SPLINE,Q1,Q2,Q3,Q4, $ FLOW,ARC,0,3,SEG,LENGTH,0,1,LENGTH,1,2,LENGTH,2,3 SURF = SSURF/GENCUR,C1,C2 The above statements define SURF as a ruled surface between the spline curves C1 and C2. In each case the curve is not a plane curve and the final surface is more complex than the first example. SURF has 3 patches and is illustrated in Figure 5.2. Note that if the segment structure of C2 is changed to SEG,LENGTH,0,3 the attempt to define SURF will fail with the error message DEFINITION ERROR 5033 THE NUMBER OF FLOW SEGMENTS DIFFERED BETWEEN TWO SPLINE CURVES.


A ruled surface can also be defined as a special case of the SMESH definition. The ruled surface is once more defined between two curves but the natural parameterisation is used to determine which points are to be joined by the rulings. This method will work best when the natural parameterisation for each definition curve is fairly uniform, this is likely to be the case if the data points are approximately equally spaced. For a valid definition each boundary curve should contain the same number (30 or less) of points. Unlike the GENCUR type of ruled surface the boundary curves and the ruled surface are defined in a single statement with the SMESH definition. A simple example is: 115 Figure 5.3 116 P1 = POINT/0,0,0 P2 = POINT/1,0,0 P3 = POINT/2,1,0 P4 = POINT/3,2.5,1 Q1 = POINT/0,0,2 Q2 = POINT/1,-0.5,2 Q3 = POINT/2.2,0,2 Q4 = POINT/3.5,0.5,1.8 T1 = VECTOR/1,1,0 MS = SSURF/SMESH,XYZ,SPLINE,P1,TANSPL,T1,P2,P3,P4,$ SPLINE,Q1,Q2,TANSPL,T1,Q3,Q4 The surface defined by these statements is shown in Figure 5.3 The verification listing for this surface includes the following. SS HEADER TABLE VALUE TABLE SIZE 149 TOPOLOGY TABLE SIZE 12 NUMBER OF PATCHES 3 TYPE OF SURFACE (MESH = 2) 2 PNTVEC,POLYGN,PNTSON 4 SIGN OF NORMAL (TNXCR) 1 TOTAL SIZE OF SURF 189 NUMBER OF SPLINES 2 NUMBER OF CROSS SPLINES 4 APPROXIMATE TOTAL SURFACE AREA = 8.490937 CRITICAL CURVATURES ON THE SURFACE MAXIMUM SIGNED CURVATURE AND RADIUS 0.36271 2.75695 AT PATCH NUMBER 3 MINIMUM SIGNED CURVATURE AND RADIUS -0.51013 -1.96033 AT PATCH NUMBER 1 117 118 MESH PATTERN OF POINTS AND NORMALS POINT X Y Z SNI SNJ SNK SPLINE NUMBER = 1 (V=0) 1 0.00000, 0.00000, 0.00000, 0.70711, -0.70711, 0.00000 (u=0) 2 1.00000, 0.00000, 0.00000, 0.03060, -0.96969, -0.24242 (u=10) 3 2.00000, 1.00000, 0.00000, 0.83405, -0.45555, -0.31118 (u=2) 4 3.00000, 2.50000, 1.00000, 0.89740, 0.04895, -0.43850 (u=3) SPLINE NUMBER = 2 (V=1) 1 0.00000, 0.00000, 2.00000, -0.98995, 0.14142, 0.00000 (u=0) 2 1.00000, -0.50000, 2.00000, 0.69631, -0.69631, -0.17408 (u=1) 3 2.20000, 0.00000, 2.00000, 0.23173, -0.86061, -0.45348 (u=2) 4 3.50000, 0.50000, 1.80000, -0.07293, -0.38606, -0.91959 (u=3) CROSS SPLINE NUMBER = 1 (u=0) 1 0.00000, 0.00000, 0.00000, 0.70711, -0.70711, 0.00000 (v=0) 2 0.00000, 0.00000, 0.20000, -0.98995, 0.14142, 0.00000 (v=1) CROSS SPLINE NUMBER = 1 (u=1) 1 1.00000, 0.00000, 0.00000, 0.03060, -0.96969, -0.24242 (v=0) 2 1.00000, -0.50000, 2.00000, 0.69631, -0.69631, -0.17408 (v=1) CROSS SPLINE NUMBER = 3 (u=2) 1 2.00000, 1.00000, 0.00000, 0.83405, -0.45555, -0.31118 (v=0) 2 2.20000, 0.00000, 2.00000, 0.23173, -0.86061, -0.45348 (v=1) CROSS SPLINE NUMBER = 4 (u=3) 1 3.00000, 2.50000, 1.00000, 0.89740, 0.04895, -0.43850 (v=0) 2 3.50000, 0.50000, 1.80000, -0.07292, -0.38606, -0.91959 (v=1) The above is an example of the default output produced for a sculptured surface (PRINT/SSPRT,ON). Note it was possible to include TANSPL constraints in defining the boundary curves for this surface. Any attempt to include a CRSSPL constraint or a NORMAL constraint would produce a more general type of SMESH surface unless the constraints happened to be consistent with the direction of the rulings. (Note that NORMAL constraint is specifying the surface normal not the normal to the spline curve). A simple ruled surface could also be defined from the other types of SMESH definitions XYPLAN YZPLAN, or ZXPLAN which require a regular spacing for the data points. For example with XYPLAN the data points have to lie in a rectangular mesh when projected onto the XY plane. This means that the curves should project onto parallel lines and the spacings on these lines should be the same for each set of data points. A mesh definition with these properties would be: (0,2,0), (2,2,1), (3,2,1.5), (4.5,2,1) (0,5,1), (2,5,3.1), (3,5,2.5), (4.5,5,1.6) In effect only the z coordinate can be freely varied in this definition to control the shape of the surface and this restriction makes this definition rather impractical. 119


Unlike the canonical array for a curve sculptured surface canonical forms cannot be produced by including a PRINT/SSTEST,ON statement in the part program. The full external canonical form, with the exception of the first record, can be obtained by using the PUNCH command. The data below, which relates to the simple ruled surface example of Section 5.1.1 was produced by using the statement PUNCH/RS. The canonical form differs both in detailed contents and in total size for different types of sculptured surface but in every case is divided into 4 major sections, these are: Section 1: Surface header table. Section 2: Patch header tables. Section 3: Patch geometry data. Section 4: Patch topology data. Section 1 always consists of precisely 10 real numbers. In the first location is a record number which identifies the location of the data on external storage, this is not output by the PUNCH command. Locations 2 to 10 contain precisely the data printed out as the SS header table in the normal verification listing for the surface . Location 2 = Total size of Section 3 (Patch geometry data). Location 3 = Total size of Section 4 (Patch topology). Location 4 = Number of patches. Location 5 = Type of topology structure (1.0 for general topology, 2.0 for a mesh structure). Location 6 = Type of single patch input (1.0, 2.0 or 3.0 for PNTVEC, POLYGN, PNTSON respectively any other value is irrelevant). Location 7 = Sign of surface normal (+1.0 or -1.0). Location 8 = Total size of surface canonical array. Location 9 = Number of spline curves in surface. Location 10 = Number of cross spline curves in surface. Note that the contents of locations 9 and 10 relate only to a mesh type surface. 120 Section 2 contains the header table for each patch and consists of a block of 6 data items for each patch. For each of these blocks the individual items, for a bicubic patch type of surface are: 1st entry: Flag for x coordinate matrix type. 2nd entry: Flag for y coordinate matrix type. 3rd entry: Flag for z coordinate matrix type. 4th entry: Flag for w coordinate matrix type. 5th entry: Location of start of patch geometry data in canonical array. 6th entry: Location of start of patch topology data. The flag which defines the matrix type for the coordinate data takes one of 4 possible values. These are 1.0 for a single number, 2.0 for patch corner points only, 3.0 for points and tangent vectors but zero twist and 4.0 for a full 4*4 matrix corresponding to the PNTVEC type of data for each patch. For the RS example the data in location 2 to 25 of the canonical form was: 2: 263.000000, 8.000000, 2.000000, 2.000000 6: 6.000000, 1.000000, 293.000000, 2.000000 10: 3.000000, 23.000000, 91.000000 0.000000 14: 0.000000, -1.000000, 286.000000 155.000000 18: 223.000000, 0.000000, 0.000000 -1.000000 22: 290.000000, 0.000000, 1.000000 10.000000 For this data the contents of locations 2 to 10 are the surface header table and can be compared directly with the verification listing in Section 5.1.1 of this Chapter. The header table for patch 1 is contained in locations 11 to 16 of this canonical form. This block of 6 data items follows the alternative format for a GENCUR type surface. For this type of surface the interior of the patch is interpolated directly from the boundary curves by subroutine CNSURF rather than using the bicubic form of definition. The items in this block are: Item 1 (Locaton 11): Start of geometric data for boundary curve 1. Item 2: Start of boundary curve 2 data. Item 3: Start of data (if any) for boundary curve 3. Item 4: Start of data for boundary curve 4. Item 5: Two digit flag to indicate type of interpolation. Item 6: Location of start of topology table. 121 The flag in item 5 is a negative two digit number -AB.0 where A = 0 if boundary curves 3 and 4 (in the v parametric direction) are absent, A = 1 if the interpolation between boundaries 3 and 4 is by rulings and A = 2 if tangent vectors are also used to calculate the interpoltion in this direction. The second digit B refers to the interpolation between boundary curves 1 and 2. B = 1 for a ruled surface, and B = 2 if CRSSPL tangent vectors are used in the interpolation. In the example above, locations 11 and 12 contain the numbers 23 and 91 and location 16 contains -1.0. This indicates that the patch is a simple ruled surface between 2 boundary curves whose canonical forms begin in locations 23 and 91 respectively. Locations 17 to 22 contain corresponding data for patch 2. Locations 23 and 24 contain the first two data items of the canonical array for boundary curve 1. Note that this curve canonical array will contain simple geometric data and flow data. Section 3 contains all the patch geometry data. For a bicubic patch type surface this will consist, for each patch, of 4 matrices giving the homogeneous coordinates of the type defined in the first 4 entries of the patch header table. For a GENCUR type surface, which is defined in terms of its boundary curves, the data in this section consists entirely of curve canonical forms. Section 4 contains the topology data which defines the manner in which the patches are inter-connected to form the surface. For each boundary of each patch the topology table gives the number (if any) of the adjoining patch. With the simple rectangular topology currently implemented in the system the topology table for each patch has 4 entries. Note that for reference purposes in the topology table (but not in the GENCUR surface geometry definition) the boundary curves are: Boundary 1: From u=0, v=0 to u=1, v=0 (AB in Fig. 5.1) Boundary 2: From u=0, v=0 to u=0, v=1 (AD in Fig. 5.1) Boundary 3: From u=1, v=0 to u=1, v=1 (DE in Fig. 5.1) Boundary 4: From u=0, v=1 to u=1, v=1 (BE in Fig. 5.1) For the canonical form of surface RS the topological data of Section 4 starts in loction 286, it consists of: 286: 0.000000, 0.000000 2.000000, 0.000000 290: 0.000000, 1.000000, 0.000000, 0.000000 This data confirms that patch 2 is adjacent to boundary 3 of patch 1 and that patch 1 is the only neighbour of patch 2 joining it along boundary 2. 122 The total size of the canonical array depends upon surface type. The surface header table always contains precisely 10 data items. The individual patch headers and topology tables account for 10 data items per patch. The data in Section 3 is however dependent upon the surface type as well as the number of patches.


Each of the cross product surface definitions uses two curves to define a sculptured surface. The two curves are referred to as the profile curve and the control curve and the surface can be considered the result of manipulating the profile curve in a manner directed by the control curve. The simplest type of cross product surface is the translation in which the surface is generated by translating, or sweeping, the profile curve along the control curve. The resulting surface is such that each parametric curve v = constant is a geometric copy of the profile curve and each member of the family of curves u = constant is like the control curve. Mathematically the relationship between points on the profile and control curves and a point on the surface can be simply described. If the profile curve has equation r = r (u) and - - the control curve is r = r (v) then the point r(u,v) on the - - - surface is given by the vector sum r(u,v) = r (u) + r (v). - - - Clearly this relationship is symmetrical and precisely the same surface is defined if the profile curve and control curve are interchanged. The format of the definition is SURF = SSURF/TRANSL,C1,CROSS,C2 In this definition C1 and C2 are previously defined SCURVs, C1 is the profile curve and C2 the control curve or 'cross command' curve.


As an example of a TRANSL definition a torus like figure can be generated by sweeping a small circle round a larger circle. It is necessary that the larger circle should pass through the centre of the small circle and lie in an orthogonal plane. In the statements below the circles are first defined by COMBIN statements from semi-circular CURSEG curves, the final statement defines the torus which has major and minor radii of 15 and 5 respectively. 123 P1 = POINT/-5,0,0 P2 = POINT/5,0,0 T1 = VECTOR/0,1,0 T2 = VECTOR/0,0,1 T3 = VECTOR/1,0,0 T4 = VECTOR/0,0,-1 Q1 = POINT/0,0,0 Q2 = POINT/15,0,15 Q3 = POINT/30,0,0 Q4 = POINT/15,0,-15 C1 = SCURV/CURSEG,P1,TANSPL,T1,P2 C2 = SCURV/CURSEG,P2,P1,TANSPL,T1 C3 = SCURV/COMBIN,C1,C2 C4 = SCURV/CURSEG,Q1,TANSPL,T2,Q2 C5 = SCURV/CURSEG,Q2,TANSPL,T3,Q3 C6 = SCURV/CURSEG,Q3,TANSPL,T4,Q4 C7 = SCURV/CURSEG,Q4,Q1,TANSPL,T2 C8 = SCURV/COMBIN,C4,C5,C6,C7 TORUS = SSURF/TRANSL,C3,CROSS,C8 In these statements C3 is defined as a circle centred 0 of radius 5 in the plane z = 0 and C8 is of radius 15 centred at 15,0,0 in the plane y = 0. C3 has 2 segments and C8 has 4 segments. The torus is then defined as a TRANSL type CROSS product with C3 as the profile curve and C8 as the control curve. The torus itself consists of 8 patches. Because C8 passes through the origin C3 actually lies on the surface with C1 as a boundary of patches 1 and 7 and C2 as a boundary of patches 2 and 8. Note that neither the profile curve or control curve had a flow structure, this is not necessary and, even if present, would be ignored for all types of cross product surface. 124 On the torus all parametric curves v = constant are circles of radius 5 and all parametric curves u = constant are circles of radius 15 in planes parallel to y = 0. If the torus had instead been defined as TORUS = SSURF/TRANSL,C8,CROSS,C3 the resulting surface would be identical in shape but the parametric curves v = constant would now be circles of radius 15. The detailed output for a patch of a cross product surface has a different format from that previously described. For patch 1 of the torus the data is: X Y Z W PATCH NUMBER 1 PT00 -5.000 0.000 0.000 0.333 PT10 5.000 0.000 0.000 0.333 TN00 0.000 10.000 0.000 -0.666 TN10 0.000 -10.000 0.000 0.666 CR00 0.000 0.000 21.212 -0.194 CR10 0.000 0.000 21.212 -0.194 TW00 -1.952 -1.952 -14.142 0.391 TW10 -1.952 1.952 -14.142 -0.391 X Y Z W PT01 10.000 0.000 15.000 0.333 PT11 20.000 0.000 15.000 0.333 TN01 0.000 10.000 0.000 -0.666 TN11 0.000 -10.000 0.000 0.666 CR01 21.212 0.000 0.000 0.194 CR11 21.212 0.000 0.000 0.194 TW01 -18.047 1.952 -5.857 -0.391 NRI NRJ NRK NR00 1.00000 0.00000 0.00000 NR50 0.00000 -1.00000 0.00000 NR10 -1.00000 0.00000 0.00000 NR01 0.00000 0.00000 -1.00000 NR51 0.00000 -1.00000 -0.00001 NR11 0.00000 0.00000 1.00000 NR05 0.70710 0.00000 -0.70710 NR15 -0.70710 0.00000 0.70710 FLAGS 4,4,4,4, B1 = 0, B2 = 0, B3 = 2, B4 = 3 PT55 4.393 5.000 10.607 NR55 0.0000 -1.0000 0.0000 PATCH AREA = 170.71067 CURVATURES = 0.4000 0.0000 MEAN & GAUSS = 0.2000 0.000 RADII = 2.5000 100000.000 125 Figure 5.4 Figure 5.5 126 Much of this data has the same interpretation as the ruled surface output, once more the W coordinates should be ignored. For this type of surface the data now includes the tangent vectors in the spline direction (TN) and in the cross spline direction (CR), these vectors are the values of dr/du and - dr/dv at the appropriate points. - Also included are the so called 'twist vectors' (TW) at the patch corners. These are the values of d(dr/du)dv but it - should be noted that a non zero value of this quantity does not necessarily mean that the surface is twisted in any normal geometric sense. A more detailed examination of this data shows that the surface defined is not quite a true torus. The parametric curve v = 1 is indeed a semi-circle of radius 5 centred at the point (15,0,15) but it lies in the plane z = 15 rather than in the plane x = 15; this can be seen by inspecting the point and tangent (TN) data at 01 and 11. With this type of construction the profile curve has been simply translated rather than translated and rotated as would be necessary to produce a solid of revolution. The topology data shows that internally the figure is not stored as a closed surface, B1 should adjoin patch 7 and B2 should adjoin patch 2. These errors arise because C3 and C8 were not recognised as closed curves. Figure 5.4 shows the construction curves and Figure 5.5 shows the complete surface from the same viewpoint.


In the previous example the profile curve and the control curve were both plane curves, this, together with the fact that one of the curves passed through the origin, produced a simple surface. If both construction curves are spline curves in 3-D space the surface defined by the TRANSL definition is more complex but bears a similar relationship to the two basic curves containing copies of these curves in the two parametric directions. 127 Figure 5.6 128 P1 = POINT/1,0,1 P2 = POINT/2,-1,2 P3 = POINT/3,-2,2 P4 = POINT/5,-1,3 Q1 = POINT/0,0,5 Q2 = POINT/2,3,7 Q3 = POINT/3,4,6 Q4 = POINT/5,2,7 C1 = SCURV/SPLINE,P1,P2,P3,P4 C2 = SCURV/SPLINE,Q1,Q2,Q3,Q4 TSURF = SSURF/TRANSL,C1,CROSS,C2 In the statements above C1 and C2 are defined as spline curves each with 3 segments. TSURF is then defined as a TRANSL type cross product surface with C1 as profile curve and C2 as control curve. This surface consists of 9 patches and is illustrated in Figure 5.6. Because neither of the construction curves passes through the origin neither of these curves is contained in the surface.


There are 3 types of cross product surface which are defined by a form of generalised rotation plus scaling from the profile curve. In each case the rotation is determined by the projection of the control curve onto one of the axial planes. The general form of the definition is, XYROT surfname = SSURF/YZROT, curve 1,CROSS,curve 2 ZXROT For XYROT the control curve is projected onto the XY plane and the surface is formed by a generalised rotation of the profile curve about the z axis. The angle of rotation depends upon the angular distance from the point on the control curve to the x axis and the scaling factor is the distance from the origin to the projection onto the XY plane of the control curve. In the simplest case a surface of revolution is produced if the control curve (C2) is a circular arc centred at the origin of the XY plane, in all other cases the 'radius' varies during the revolution. 129 Figure 5.7 Figure 5.8 130


As a simple example of this variable radius rotation we consider the case where the control curve lies on the XY plane and the profile curve lies in the YZ plane. P1 = POINT/0,2,1 P2 = POINT/0,1.8,2 P3 = POINT/0,2.2,3 P4 = POINT/0,2,5 Q1 = POINT/0,-1,0 Q2 = POINT/1.8,0,0 Q3 = POINT/0,0.4,0 C1 = SCURV/SPLINE,P1,P2,P3,P4 C2 = SCURV/SPLINE,Q1,Q2,Q3 ROTSUR = SSURF/XYROT,C1,CROSS,C2 Figure 5.7 shows the two curves used to define the surface ROTSUR. For this surface the 'radius' depends upon the distance from points on curve C2 to the origin. This distance increases from 1 at Q1 to a maximum of 1.8 at Q2 before reducing to a minimum value of 0.4 at Q3. The profile curve is rotated through 180 degrees (angle 0Q1Q3) to form the surface. Figure 5.8 shows the surface which has been defined by the above statements. This surface consists of 6 patches and is represented by the constant parameter lines at intervals of 0.5 in each direction. The scaling effect can be most clearly seen in the varying degrees of undulation for the parametric curves in the u direction which all have a similar profile to C1. 131 132


The effect of the XYROT construction on curves which are not simple plane curves is more difficult to visualise but can be described in simple mathematical terms. The construction curves C1 and C2 have vector parametric equations: C1 : r = r1(u) = ( x1(u), y1(u), z1(u) ) - - C2 : r = r2(v) = ( x2(v), y2(v), z2(v) ) - - Since the generalised rotation takes place about the z axis neither z1(u) nor z2(v) are relevant to this part of the operation. The x and y coordinates x(u,v) and y(u,v) of the point r(u,v) on the surface are obtained by rotating (x1(u), y1(u)) and scaling the distance from the origin, both the angle of rotation and the scaling factor are specified by (x2(v), y2(v)). In fact this generalised rotation is exactly analogous to the product of complex numbers. If w1 = x1(u) + i y1(u) and w2 = x2(v) + i y2(v) then x(u,v) and y(u,v) are the real and imaginary parts of w1*w2, z(u,v) is not defined by the rotation but is defined by the system as z(u,v) = z1(u) + z2(v) this is a simple translation along the z axis. Since for complex numbers w1*w2 = w2*w1 we can deduce that the relationship between the two curves in the surface definition is actually a symmetric one and precisely the same surface, but with interchanged parameters, is defined by the alternative statement: RSURF = SSURF/XYROT,C2,CROSS,C1 For two general curves, neither of which lies in the XY plane the effect of the XYROT definition is that of a generalised rotation, with varying radius, about the z axis together with a translation along the z axis. If either curve passes through the origin there is likely to be a singular point on the surface in the corresponding position. An example of this situation is: 133 Figure 5.9 Figure 5.10 134 P1 = POINT/-3,0,3 P2 = POINT/-0.5,3,1 P3 = POINT/1.5,2.4,1 P4 = POINT/3.5,0,2 Q1 = POINT/-1,1,-2 Q2 = POINT/0,0,0 Q3 = POINT/1,-2.1,3 Q4 = POINT/2.5,-2.4,4.8 C1 = SCURV/SPLINE,P1,P2,P3,P4 C2 = SCURV/SPLINE,Q1,Q2,Q3,Q4 SRF2 = SSURF/XYROT,C1,CROSS,C2 In this example both the profile curve C1 and the control curve C2 are 3 dimensional spline curves but the point Q2 is at the origin. SRF2 is formed by rotating, scaling and translating C1 and consists basically of 9 patches. Figure 5.9 shows the construction curves and Figure 5.10, which is drawn to a different scale, shows the surface SRF2. The singular point of SRF2 lies on the second cross-spline (u=1) of the surface and is due to the facts that Q2 is at the origin and P2 and P3 have the same z coordinate. Note that only a section of the parametric curve v = 1 corresponds to this singular point the remainder of this curve is a section of the z axis. Although the surface SRF2 has been geometrically defined it would in practice be difficult to machine. The singularity could be removed by re-defining Q2 so that its x and y coordinates are non-zero. (Simply making the z coordinate non zero would merely translate the singular point on the surface). For example Q2 = POINT/0.3,-0.5,0 will produce the surface shown in Figure 5.11 if the remainder of the statements above are unaltered. 135 Figure 5.11 Figure 5.12 136


Other definitions of the same type are YZROT and ZXROT. Like XYROT these definitions use the control curve data to define a generalised rotation plus translation. The axes of rotation are the X axis for YZROT and the Y axis for ZXROT. The rotation and scaling is determined by projecting the control curve onto the YZ plane or (for ZXROT) the ZX plane. Unless the control curve lies in the appropriate plane there is also a translation along the axis of rotation. As an example, using the data from Section 5.3.2 with Q2 = POINT/0.3,-0.5,0 SRF3 = SSURF/ZXROT,C1,CROSS,C2 defines the surface shown in Figure 5.12.


The final type of cross product definition uses the data from the control curve to define a generalised scaling operation which is applied to the profile curve in order to define the surface. This operation has a particularly simple mathematical description but the geometry of the final surface can be difficult to visualise from a knowledge of the component curves. If the component curves are C1 : r (u) = (x1(u), y1(u), z1(u)) (Profile curve) and C2 : r (v) = (x2(v), y2(v), z2(v)). (Control curve) Then the surfaces SRFSC = SSURF/SCALE,C1,CROSS,C2 has the parametric vector equation r(u,v) = (x(u,v), y(u,v), z(u,v)) where x(u,v) = x1(u) x2(v) y(u,v) = y1(u) y2(v) z(u,v) = z1(u) z2(v) 137 Figure 5.13 138 These equations show that scaling factors of x2(v), y2(v) and z2(v) are applied independently to the x,y and z components of points on the profile curve. The surface has parametric curves in the u direction (v = constant) which are generally distortions of the profile curve. Since the relationship between the profile and control curves is again symmetrical all parametric curves in the v direction are distortions of the control curve. Again the same surface but with interchanged parameters is defined by: SRFSC = SSURF/SCALE,C2,CROSS,C1


A simple scaling effect is produced if the profile curve is a plane curve in a plane parallel to an axis plane and the control curve is a straight line whose extension passes through the origin. As an example: P1 = POINT/-3,0,2 P2 = POINT/0,3,2 P3 = POINT/3,0,2 Q1 = POINT/1,2,2 Q2 = POINT/2,4,4 Q3 = POINT/3,6,6 C1 = SCURV/CURSEG,P1,P2,P3 C2 = SCURV/SPLINE,Q1,Q2,Q3 SRFSC = SSURF/SCALE,C1,CROSS,C2 In this example C1 is semi-circle in the plane z = 2. C2, although a straight line, has been deliberately defined in terms of 3 points in order to define a surface with more patches. The extension of C2 passes through the origin and at any point the x,y and z components are in the ratio 1:2:2. SRFSC is obtained from C1 by applying scaling factors in the X and Y directions which are always in the ratio of 1:2 and translating in the Z direction. The resulting surface is somewhat similar to a cone but has elliptic cross section. The surface is shown in Figure 5.13 together with the construction curves. 139 Figure 5.14 Figure 5.15 140


Unlike the TRANSL definition the nature of the SCALE type of cross product surface is such that the geometry of the surface defined depends not only upon the geometric shape of the construction curves but also on their position in space relative to the origin. Particular care should be taken when using curves which have one or more zero coordinates at any point. If, for example, in the previous section C1 had been defined as a semi-circle in the XY plane (z = 0) then the entire surface would lie in this plane. Clearly if either curve passes through the origin there will be a corresponding singular point at the origin on the surface being defined. A similar problem will arise if the zero coordinates on one curve coincide with the non zero coordinates at some points on the other curve. (e.g. P2 = (0,2,0), Q3 = (1,0,-1), Q4 = (2,0,3)) If these singularity problems are avoided and C1 and C2 are spline curves in 3 dimensional space which do not pass through the origin then the surface produced from the SCALE definition will generally contain constant parametric curves which bear some similarity to the construction curves and will have an area which depends upon the distances from the origin to the construction curves. Even if the curves have arcs of approximately equal length the surface patches are unlikely to be of similar areas. Examples: P1 = POINT/-3,0,3 P2 = POINT/-0.5,3,1 P3 = POINT/1.5,2.4,1 P4 = POINT/3.5,0,2 Q1 = POINT/-1,1,-2 Q2 = POINT/1,-1,0 Q3 = POINT/1,-2.1,3 Q4 = POINT/2.5,-2.4,4.8 C1 = SCURV/SPLINE,P1,P2,P3,P4 C2 = SCURV/SPLINE,Q1,Q2,Q3,Q4 SURFS2 = SSURF/SCALE,C1,CROSS,C2 In the statements above C1 and C2 are defined as spline curves, each of 3 arcs and SRFS2 is then defined as a SCALE type cross product surface. Figure 5.14 illustrates the surface and Figure 5.15 shows the two construction curves C1 and C2. The similarities in shape between C1 and the spline curves (v = constant) on the surface and between C2 and the cross spline curves can be clearly seen. 141 142