This section will explain the available primitives to generate the geometry. These primitives include points, curves, surfaces and solid volumes (objects). Some remarks to take into account while reading this section are:
 Every primitive is associated with a particular command. This means that the user is able to pass the parameters needed to draw the primitives using the command line. In most cases, the user can also pass these same parameters by clicking a specific point of the view area (e.g. it is possible to pass a point parameter to a command clicking on the corresponding point in the view area and pressing Enter). Note that for this functionality to work properly, it is required to select a Pick option different than “NO_PICK” in the bottom menu bar, as shown in the figure below.
Pick options
 In some cases, figures can only be generated in a way that they are contained in a plane parallel to the XY plane (in other words, the points in the figure share the same Z coordinate). It may be necessary to rotate and move the figure to adjust its position to specific needs.
 The user may limit the geometric selection to the desired type of entities. The commands that require to select specific entities assign the Selection to the desired type automatically.
Selection options
When selecting the point menu item, the following submenu is shown:
GeometryPoint menu
With this option the user can build a point in the space by selecting directly on the geometry view and pressing Enter or by entering the point coordinates directly in the command line.
If the user decides to write the point directly in the command line, the components of the coordinate must be separated with a space.
Drawing a point
With this option the user can place several points. Each point is given by its three Cartesian coordinates. When as many points as desired have been inserted, the user can press the Enter button to generate them.
Drawing multiple points
With this submenu the user can generate several points along a selected curve. There are two different options within this submenu that are explained in the following by considering a circle centered in the origin and with a radius of 0.5.
The points are generated along a curve as a result of its division in several subcurves (the curve is not split) of identical size. The user can select the number of points to be inserted.
Points from Curve By Divisions.
The points are generated along a curve when the desired length of a subcurve (the input curve is not split) is reached. The user will introduce the desired length of every step (no points are generated when the length of the curve is lower than the specified length).
Points from Curve ByDistance.
With this submenu the user can generate several points along the two parametric dimensions of a selected surface. The user needs to introduce the maximum number of points along the Udimension and the Vdimension of the surface. When the selected surface is a trimmed surface, only the points in the valid region (by default) or all the grid points on the surface (noTrim option) can be obtained.
Points from Surface.
This menu contains two options for projecting points onto surfaces.
Every point is projected onto the selected surfaces. When multiple target surfaces are selected the points may be projected onto all surfaces, whenever the projections are perpendicular to the normal vectors.
This projection may be slow because the points are evaluated onto all surfaces.
Project points to closest point.
Every point is projected only onto the selected surfaces that are in the specified direction from the point.
This projection is faster than the closest one due to the direction check.
After selecting the target surfaces, the direction vector is required.
Project points by direction
This menu contains the following options:
Curve submenu
This option allows the user to generate a NURBS curve specifying its control points. After selecting this option, the console will require the degree of the curve (e.g. 1 for a linear NURBS curve, 2 for a quadratic NURBS curve and so on). After that, the user needs to specify as many control points (specifying their Cartesian coordinates as well as the weight associated with each point) as wished. When enough points are inserted, the user can press Enter to finish.
Drawing a cubic NURBS curve
This option allows the user to generate a curve that goes through a set of points by applying polynomial interpolation. After selecting this option, the program will ask the degree of the polynomial to use and the actual points to be interpolated (note that a minimum of points are needed for the interpolation to be possible). When enough points are specified, the user can press the Enter key to finish.
Drawing a curve using cubic interpolation
This option creates a curve by defining a parameter and three functions. To generate the curve it is necessary to define the '$u' parameter. With this parameter, the user defines three functions f($u), for the x, y, z coordinates. The resulting curve will pass through all the points.
Drawing a curve using function
This options allows the user to connect two distinct curves (that are in contact at least in one pont) into one single curve. By using this operation, the two curves are combined in just one curve. The following example shows the connection of two arcs to get a circle.
ConnectCurves function
This option allows rebuilding any given curve by sampling and interpolating the resulting points. The user needs to specify the degree of the new curve and the number of samples to take into account on the original curve.
The figure above shows the example of a rebuilt arc.
Rebuild a Curve from an original arc
This option generates tangent segments to the selected curve that cross the introduced point. Only one curve must be selected.
If the introduced point is on the curve, only one tangent segment is generated; otherwise, more than one segment may be inserted.
After confirming the point to across with the tangent line, the length of the segment is required. Positive or negative lengths determine the orientation of the resulting segments.
Example of tangent lines from a circle.
This option generates a normal segment to the selected curve or surface that cross the introduced point. Only one curve or surface must be selected.
After confirming the point to across with the perpendicular line, the length of the segment is required. Positive or negative lengths determine the orientation of the resulting segments.
Example of perpendicular line from a sphere.
This option allows to create a segment between two points specified by the user.
Drawing a segment
This option allows the user to create a rectangle by specifying the coordinates of two opposite corners.
Remark: the second corner point implicitly assumes the same z coordinate as the first point.
Drawing a rectangle
This command allows the user to create a polygon specifying its vertices.
Remark: The second and following points assume implicitly the same z coordinate as the first point.
Drawing a polygon
This option allows the user to create a regular polygon specifying the number of sides, the center and the radius of the circumference it is inscribed in.
Drawing a regular octagon
This option allows the user to create a star polygon specifying the number of vertexes, the center and the two radius of the circumference they are inscribed in.
Drawing a star of eight vertexes.
This command allows the user to create a rhomboid specifying three of its vertices.
Remark: The second and third points assume implicitly the same z coordinate as the first point.
Drawing a rhomboid
This command allows the user to create a circumference arc specifying its central point, radius, initial and final angles (in degrees), in this order.
Drawing an arc
This option creates a circumference around a center point and with a given radius, both specified by the user.
Drawing a circle
This option creates a semicircle around a center point and with a radius, both specified by the user. This function also receives as a parameter the direction in which the arc of the semicircle is generated: if the angle is 0, the semicircle is created in the positive Y axis direction, and greater angles describe a counterclockwise rotation around the Z axis).
Drawing a semicircle
This option allows the user to create an ellipse by specifying its center and both radiuses.
Drawing an ellipse
This option allows the user to create a parabola. The parameters to this function are: directrix center point of the parabola, focus point and corner point. The directrix point determines the axis of symmetry of the parabola. The focus of a parabola is a fixed point on the interior of a parabola used in the formal definition of the curve. The end point determines the length and curvature of the parabola.
Drawing a parabola.
This option allows the user to create a hyperbola. The function receives the following parameters: three points that represent the directrix center, focus and corner points.
Drawing a hyperbola.
The primitive spiral generates a coplanar curve that turns from the center to the end point, specified by the radius and the number of turns. The first point of the curve is at the center and the last point is at the radius distance.
Spiral example of 3 turns and counterclockwise direction
By default, the generated spiral is generated in counterclockwise direction. To generate spirals in clockwise direction, the parameter “rightTurned” must be included.
Spiral example of turns and clockwise direction
This submenu contains several options to obtain curves from existing surfaces.
This option allows obtaining the curves that bound the selected surfaces (multiple surfaces and objects may be selected). After selecting the surfaces to be considered, the corresponding curves appear as selectable curves to be added.
 If no curves are selected, all the curves are added to the geometry.
Extraction of all the curves from a cross primitive
 If one or more curves are selected, only the selection is added to the geometry. Multiple curves may be selected by using the CtrlKey and the LeftMouse button.
Selection of the outer curves from a cross primitive to be extracted
Any isoparametric curve of a surface (in the U or Vdimension) may be obtained by using this command. To do this, only one surface will be selected. Then, tip “u” or “v” to change the parametric dimension where the curve will be extracted and insert the parametric value of the desired coordinate (pick mouse functions make easier this operation).
Isoparametric curve from a disksector
This menu contains the available options for splitting curves.
Select this option when multiple curves must be mutually split. Every curve will be divided in as many sections as required by the intersecting curves.
Mutual split of two arc curves
This option is useful when a curve need to by split at a point on the own curve. The point is specified as a parametric coordinate (between 0 and 1), and the pick mouse functions may be useful to split the curve close to any desired point.
Split a curve by a parametric coordinate
Select this option when only some curves must be split by different objects (the parameter –c is used). All the curves to be split must be selected in the first step, and after confirming the selection, the cutting objects are selected.
The arc or the segment is split by the other curve
This menu contains two options for projecting curves onto surfaces.
Every curve is projected onto the selected surfaces. When multiple target surfaces are selected the curves may be projected onto all surfaces, whenever the projections are perpendicular to the normal vectors.
This projection may be slow because the curves are evaluated onto all surfaces.
Project curves to closest point
Every curve is projected only onto the selected surfaces that are in the specified direction from the curve.
This projection is faster than the closest one due to the direction check.
After selecting the target surfaces, the direction vector is required.
Project curves by direction
This menu contains the following options:
Surface submenu
This option creates a new surface of three or four vertex from the given corners. The command requires the four vertexes in order. Insert no coordinates in the fourth vertex to get a triangular surface.
Surface from 3 corner points
Surface from 4 corner points
This option allows the user to create a NURBS surface. The parameters that this function receives are: the number of points in u and v direction (this determines the degree of the NURBS surface) and the points themselves. The number of points the program will ask for will be the product of the number of points in each direction.
Drawing a NURBS surface
This option allows to create a surface that passes through the points specified by the user, using interpolation. The parameters of this function are: the number of points in each direction of the surface and the points themselves.
Drawing a surface using interpolation
This option creates a surface by defining two parameters and three functions. To create the curve is necessary to define the '$u', '$v' parameters. With these parameters, the user will define three functions f($u, $v), for the x, y, z coordinates. The resulting surface will pass through all of the points.
Drawing a surface using functions
These options allow creating a surface based on a curve. There are two different ways to do this:

Straight: This function creates a surface by applying a translation vector to an existing curve. The parameters this function receives are: the curve to be extruded (the user can select it by clicking it on the view area or by selecting it in the tree structure), a start point and an end point. The vector that goes from the start point to the end point will be the translation vector applied to the curve.
Extrude straight

To point: This function creates a surface extruding a curve to a point. This is, given a curve to extrude and an extrusion point, the function creates the surface resulting from connecting all the points in the curve to the extrusion point.
Extrude to point
This function returns an object with the surfaces resulting of extruding the input surfaces according to their local normal vectors.
The resulting surfaces are a parallel approximation of the original ones, so in case of you need multiple parallel layers, it is recommended to generate each one from the original surfaces. Take special care in concave regions which may result wrong shapes.
The only required parameter is the extrusion distance that may be positive or negative.
The next figure shows and example of the resulting surfaces when this function is applied to a parabolic reflector.
Generation of one parallel layer from a reflector.
This function creates a surface by rotating a curve around a rotational axis. This function receives the following parameters: the curve to rotate, two axis points and the initial and final angles of rotation. The line that contains the two axis points will be considered the rotation axis.
Revolve a segment to create a cone
This function allows the user to trim a surface with a set of selected curves. The function receives the surface and one or more (closed) curves.
Note that the final surface depends on the direction of the curve used for the trim operation, as shown below.
Squared surface trimmed by a circle
This function does the inverse operation of the trim function. It receives a trimmed surface as a parameter and removes the cutting loops from it.
Untrim a rectangular surface that had been bounded by a circle
This option allows the user to trim a surface with a loop and extrude the resulting cut off part of the surface.
To use this operation,click on “Edit → Geometric Operations → Extend Hole” option. Then, the selection of the surface to be extruded is required. After that, select a curve or set of curves that form a closed loop. Finally, the length of the extruded pipe is required.
The figure below shows a box that has been created and exploded. Its upper surface is going to be extended with a hole defined by a rectangle.
Definition of a rectangular hole in a surface
Extended rectangular hole in a surface
This option allows the user to connect two separated surfaces by creating a new surface between them. To use this operation select one surface, confirm it and then select the second surface.
Connec2Surfaces function
This option allows rebuilding any given surface by sampling and interpolating the resulting grid of points. The user needs to specify the degrees of the new surface and number of samples (both in U and Vdimensions) taken into account on the original surface.
Rebuild a surface
This option allows the user to create a finite plane specifying its corner points.
Remark: The second point assumes implicitly the same z coordinate as the first one.
Creating a plane
This option allows the user to create a disk by specifying its center point and the radius.
Creating a disk
The hexagon primitive can be used to create a solid hexagon surface.
Hexagon created
The ellipse option allows the user to create a solid ellipse surface, given the radius along the X axis, the radius along the Y axis and the center point.
Creating an ellipse
This menu gives the user the option to create several types of ringshaped geometries.
This option allows the user to create a ring surface. The parameters needed for its creation are asked to the user, namely, the center point, the minor (inner) radius and the major (outer) radius.
Creating a ring
This option allows the user to create an open ring surface. The parameters asked for the creation of this type of surface are the following:
 The center point of the ring.
 The minor (inner) radius and major (outer) radius.
 The angle of the opening, in degrees.
 The direction of the opening, in degrees, that determines in which direction the opening is facing. A angle of zero degrees means that the opening will be facing in the direction of the positive Y axis, while larger angles of this parameters are interpreted as counterclockwise rotations.
Creating an open ring
This option allows the user to create a split ring, that is, a ring surface that is open at two opposite points. The parameters that need to be supplied by the user are:
 The center point of the ring.
 The minor (inner) and major (outer) radius, as in the previous geometries.
 The opening angle, in degrees, that determines how large the openings are. Both openings are created the same size.
 The opening direction, in degrees, that determines how the openings are oriented. An opening direction of 0 degrees means that the openings will be oriented in the direction of the Y axis. Larger angles are interpreted as a counterclockwise rotation.
Creating a split ring
This menu lets the user create different kind of crosses.
This function allows the user to create a crosslike surface. The parameters that this function receives are the center point and two distances (Size A and Size B). Size A defines the side of the central square forming the cross, while Size B defines one of the sides of each of the four rectangles around the square.
Creating a cross
This option allows the user to create a spiral cross surface. The parameters needed for the creation will be asked to the user, namely, the center point of the cross, the thickness of the segments and the lengths of each segment.
Creating a spiral cross
This option allows the user to create a cross with Tshaped segments. The parameters needed for the creation of this type of surface are the following:
 The center point of the cross.
 The thickness of the segments.
 The length of the first segment, that is, the height of each Tshaped segment.
 The length of the second segment, that is, the length of the top of the Tshaped segment.
Creating a T Cross
This option allows the user to create a new trifilar surface, that is, a cross with three evenly spaced segments. The user needs to supply several parameters, namely, the central point of the trifilar, the thickness of the segments and the length of the segments.
Creating a trifilar
This menu lets the user create different kinds of strip primitives such as spirals or interdigital lines.
The stripHexagon primitive creates an hexagon that has a given outer thickness. The inner area of the surface has a hole.
This option allows the user to create a hollow trifilar surface. The parameters needed for the creation of a strip trifilar are: the central point of the trifilar, the thickness of the (equivalent, not hollow) trifilar, the length of the segments and the thickness of the hole of the trifilar.
Creating a strip trifilar
The stripCross primitive can be used to generate a cross primitive that has a defined outer thickness and an inner hole.
The interdigitalLines primitve lets the user create a stripline interdigital filter. The user can define different parameters for the geometry. Most of the settings can be selected either by writing the correct value in the command prompt or by pickpointing the screen. The user can preview the geometry as it is being defined.
This option allows the user to create a capacitance surface. The needed parameters are: the center point of the capacitance (equidistant to both plates), the separation between plates, the size (width and height) of the plates and the length of the capacitance.
Creating a capacitance
The primitive surfaceSpiral generates a coplanar set of surfaces that turns from the center to the end point, specified by the width, the radius and the number of turns. Some configurations of these parameters may generate invalid spirals, so the command will return an error with some suggestions for the parameters review.
Surface Spiral of 3 turns and counterclockwise direction
By default, the generated spiral is generated in counterclockwise direction. To generate spirals in clockwise direction, the parameter “rightTurned” must be included.
Surface Spiral of 2 turns and clockwise direction
This menu lets the user create different kinds of hypersurfaces.
This option allows the user to draw a paraboloid. This function receives the following parameters: center point (vertex), focus distance, radius and hole radius.
Drawing paraboloid.
This option allows the user to create a hyperboloid. The parameters needed for this function are:
 Center point: Describes the vertex of the hyperboloid.
 Focus distance: It is defined as the distance between the vertex and focus point.
 Radius: It is the distance from the vertex to the corner point in XY plane.
 Height: It is the distance from the vertex to the corner point in Z.
 Hole radius: It is the size of the hole in the center of hyperboloid.
Drawing a hyperboloid.
This menu lets the user create different kinds of holes.
This option allows the user to quickly create a plane with a circular hole in it. The parameters for this primitive are the following: the corner point of the plane, the size of the plane (width and depth) and the radius of the circular hole in the plane.
Creating a circular hole
The rectangularHole primitive allows the user to quickly create a rectangular surface with a hole defined on its center. Usage
 First corner of plane: click the 3D View to pickpoint a corner of the rectangle or provide a valid 3D value.
 Size of the plane: the size of the plane can be previewed by moving the cursor through the 3D View and clicking for setting the size. Alternatively, the width and height can be provided.
 Size of the hole: the hole will be centered in the outer rectangle. Move the cursor through the 3D View to preview the size and click to set, or provide the numeric width and height in the console.
Creating a rectangular hole
This option allows the user to quickly create a plane with a crossshaped hole in it. The parameters needed to create this primitive are: the corner point of the plane, the size (width and depth) of the plane, the thickness of the crossshaped hole and the length of the segments of the cross.
Creating a cross hole
This menu allows the user to create several types of dipoles.
This option allows the user to create two bent dipoles in the geometry. The following parameters will be asked to the user when creating a pair of bent dipoles:
 The center point. This point will be equidistant to the central segment of both dipoles.
 The separation between both dipoles.
 For each of the dipoles: the height, thickness and length of the dipole.
These parameters must be chosen so the resulting geometry is valid (i.e: dipoles do not overlap). If this is not the case, an error will be issued and the geometry will not be created.
Creating bent dipoles
This option allows the user to create three dipoles in the geometry. The following parameters will be asked: center point of the set of three dipoles, dipole size of the central dipole (width and height), separation between dipoles and height of the lateral dipoles.
Creating three dipoles
This option allows the user to create three joined dipoles in the geometry. When creating a primitive of this type, the following parameters will be asked: the central point of the set of dipoles, the size of the central dipole (width and height), the separation between dipoles, the height of the lateral dipoles and the width of the union of the three dipoles.
Create three joined dipoles
This submenu contains several ways for creating surfaces by using more geometrical objects.
This function constructs a new surface from the closed set of edge curves that bounds the surface. This command only needs to select the two, three or four edges that forms the boundary loop.
Coons surface
This option allows creating planar surfaces from multiple coplanar lines. The operation searches for all the closed loops created by the input curves, and surfaces are generated when at least one loop is detected.
Creating a planar surface from a circle and a rectangle
This function creates a surface with a set of curves that is required in order. Skinning is a process of blending the section curves together to form a surface. The blend direction is the v direction, sometimes called the longitudinal direction.
Joining the curves as a surface
The command sweep generates a surface by sweeping a given crosssection (profile) curve along the rail curve. The resulting surface is always placed on the rail curve.
Note that the directions of the rail and crosssections curves may vary the resulting surfaces.
Spiral crosssection swept along a segment rail
Segment crosssection swept along a spiral rail
The primitive pipe generates a tube that surrounds to the given curve with a specific radius.
If the reference curve describes strong curvatures, the resulting pipe may be complex. Note that the generated pipe has no caps.
Example of pipe that surrounds a parabola.
This submenu contains several options for splitting surfaces in different ways.
Select this option when multiple surfaces must be mutually split. Every surfaces will be divided in so many sections as required by the intersecting surfaces. The command may process both surfaces and objects, and the result is returned in the same format, i.e., after splitting a surface, the resulting sections is returned in multiple surfaces; however, an object is returned as the same object but with the resulting surfaces of the operation (explode it if necessary).
Mutual split of a cylinder with a plane
Select this option when only some surfaces must be split by different objects (the command splitSurfaces with the parameter –c is used). All the surfaces to be split must be selected in the first step, and after confirming the selection, the cutting objects are selected (curves, surfaces and objects are considered).
Exploded plane split by an interpolated curve
This option is useful when a surface need to by split in a given isoparametric curve. This operation may be used to separate surfaces with extreme curvatures in different parts. Tip u or v to change between the two parametric dimensions of the surface. Then, the point is specified as a parametric coordinate (between 0 and 1), and the pick mouse functions may be useful to split the surface close to any desired point.
One or multiple parametric divisions may be inserted in the command line, all of them corresponding to the selected U or V dimension.
To select the divisions points with the pick mouse functions, two different modes may be used:
 Use the left mouse button to set an unique division coordinate. The previous values are removed and just the last one is considered.
 Use the right mouse button to add the last coordinate to the already existing values.
Confirm the selected divisions by pressing Enter key in the command line.
Split a cylindrical surface by isoparam line
This menu contains two options for splitting surfaces by using the projection of any set of curves.
Every cutting curve is projected onto the selected surfaces. When multiple target surfaces are selected the curves may be projected onto all surfaces, whenever the projections are perpendicular to the normal vectors.
This projection may be slow because the cutting curves are evaluated onto all surfaces.
Split a cone with the projection of a rectangle to the closest point
Every cutting curve is projected only onto the selected surfaces that are in the specified direction from the curve.
This projection is faster than the closest one due to the direction check.
After selecting the cutting curves and the target surfaces, the direction vector is required to project.
Split a torus with the projection of a star polygon by direction (1/2)
Split a torus with the projection of a star polygon by direction (2/2)
This menu contains the following options:
Solid submenu
This option allows the user to create a solid volume from a surface. There are two different forms to do this:

Straight: This option creates a solid object by sweeping a surface along a direction vector. This function receives two points as parameters. The vector that connects these two points will be the direction vector considered for the extrusion.
Result of extruding a surface

To point: This option allows the user to create a solid object by connecting all points of the surface to a single point. The parameters needed for this operation are the surface to extrude and the point.
Result of extruding a surface to a point
This function returns an object with the surfaces resulting of extruding the input surfaces according to their local normal vectors plus the side surfaces to obtain a volume together the original surfaces.
The next figure shows and example of the resulting surfaces when this function is applied to four plane with hole surfaces.
Generation of a closed object with the extrudeNormal command.
The first parameter is the extrusion distance that may be positive or negative.
The second parameter is the mode to close the result object.

None: Only the parallel layer is returned.

All: Connects all edges of the surfaces. If the surfaces are connected it generates duplicate surfaces on the outer edges.

Inner: Only connects the inner edges (holes) of the surfaces.

Outer: Only connects the outer edges (bounds) of the surfaces.

Auto: Study the topology and connect the naked edges. It is not recommended to use on curved surfaces with long extrusion distances because the parallel layer may not be well connected.
This option allows the user to create a solid box. This function receives two corner points of the base of the box (these must be two points in the same diagonal and share the same Z coordinate) and the height of the box.
Creating a box
This option creates a solid cone. The required parameters are the center point of the base of the cone, the radius of the bottom base, the height and the radius of the top base of the cone.
Creating a cone
This option allows the user to create a solid cylinder. Parameters needed for this function are the center point of the base, its radius and its height.
Creating a solid cylinder
This option allows the user to create an ellipsoid. The parameters required in this function are the center point, major radius and minor radius.
Creating an ellipsoid
This option allows the user to create a spherically bluntedtangent ogive. It is a tangent ogive with its upper side smoothed by an sphere.
The base center, the bottom radius (measured in the the base center), the total height (measured for the tangent ogive without being spherically blunted) and the top radius of the spherical side are the parameters required.
A spherically bluntedtangent ogive is shown in next figure.
Spherically bluntedtangent ogive
A tangent ogive with the same parameters than the spherically blunted is shown in figure below. Note that the height of the generated ogive only agrees with the specified one when the top radius is set to 0 (tangent ogive), otherwise the ogive is shorter (spherically bluntedtangent ogive).
Tangent ogive compared to the spherically bluntedtangent ogive
This option allows the user to create a trapezoidal prism. This function receives the following parameters: two corner points of the base (these must be in the same diagonal), the height and two corner points of the top base (again, in the same diagonal).
Creating a flare
This option allows creating a sphere with both the center and the radius specified by the user.
Creating a sphere
This option allows creating a torus with the center, the minor radius and the major specified by the user.
Creating a torus
This menu contains the following options:
Mesh menu options
This option allows the user to explode a mesh object into several open surfaces.
Note that high density meshes may overload the GUI behaviour after being converted to surfaces.
This option allows the user to create a mesh object by joining a set of surfaces.
Note that the surfaces to be converted to a mesh must have degree 2 in their U and V dimensions without trimmed areas (which is equivalent to surfaces defined by three or four corner points). Surfaces with higher degrees are not allowed, so the command would returns an error.