A variety of 2D objects can be created with these commands (e.g.: poly lines, circles and ellipses with given radius etc.) The order of the parameters in a sequence is always definitive.

## POINT

POINT <coord> ENTER

It creates a point at the given place.

**coord ***(point)***: **the position of the point.

e.g.:** #POINT 10 10; **

- It creates a point at the place (10,10).

### PARAMETER

POINT PARAMETER shape width height ang <coord> ENTER

It draws a shape defined by the parameters ‘shape’, ‘width’, ‘hight’ and ‘ang’ with its center point located at ‘coord’.

**shape ***(int)***:** shape can be 0: default; 1: square; 2: +; 3: X; 4: triangle; 5: circle;

**width ***(real)***:** the width of the shape

**height***(real)***:** the height of the shape

**ang ***(real)***:** an angle by which the shape is rotated (0 is horizontal and positive way is counterclockwise)

**coord ***(point)***:** the coordinates of the point

e.g.: **#POINT PARAMETER 1 10 10 45 0 0;**

- It draws a square at the point (0,0) with the side length of 10, standing on its vertex.

**NOTE:** Although it draws a complex shape it creates only a point in the memory, located at ‘coord’.

## DIVIDE

DIVIDE <prim num> ENTER

It divides the selected object into equal parts and creates points at the ends of the object and at the dividing points.

**prim ***(obj)***:** the object to be divided

**num ***(int)***:** the number of equal portions

e.g.: **#DIVIDE 10 10 3;**

- It divides the object located near the place (10,10) into 3 equal steps.

### OPENCHAIN

**DIVIDE OPENCHAIN <prim length> ENTER**

It divides the selected object/chain into steps with the length given in the parameter ‘length’ and creates points at the dividing points.

**prim ***(obj)***:** the object to be divided

**length ***(real)***:** the length of the sections

e.g.: **#DIVIDE OPENCHAIN 10 10 3;**

-It divides the object found nearby the point (10,10) into sections with a length of 3.

**NOTE**: If the object cannot be exactly divided into steps with a length given by the parameter length, the last section will be shorter.

### OPENCHAIN ENDDIVIDED

DIVIDE OPENCHAIN ENDDIVIDED <prim num> ENTER

It divides the selected chain into equal parts and creates points at the chain’s endpoints and at the dividing points.

**prim ***(obj)***:** the chain to be divided

**num ***(int)***:** the number of sections

e.g.: **#DIVIDE OPENCHAIN ENDDIVIDED 10 10 3;**

-It divides the chain located near the place (10,10) into 3 equal steps.

**NOTE:** This command is similar to DIVIDE but not exactly the same. For example if the point (10,10) is the left bottom vertex of a square made by a chain, DIVIDE divides only one side of the square but DIVIDE OPENCHAIN ENDDIVIDED divides the whole circumference of the square.

## CONSTLINE

CONSTLINE <<coord1 coord2> ENTER> ENTER

It creates a construction line (a line between the borders of the whole window) passing through the two points given.

**coord1 ***(point)***:** the coordinates of the first point

**coord2 ***(point)***:** the coordinates of the second point

e.g:** #CONSTLINE 0 0 0 10;**

-It creates a line from the left to the right border of the window laying on the X axis.

### PT

CONSTLINE PT ANGLE dir <coord> ENTER

It creates a construction line with the given direction passing through the point given by the parameter ‘coord’.

**dir ***(real)***: **the angle between the x axis and the construction line

**coord ***(point)***:** the coordinates of the point

e.g.: #ANGLE 0; **#CONSTLINE PT 0 0;**

-It creates a line from the left to the right border of the window laying on the X axis.

### TANGENT

CONSTLINE TANGENT [FIXDIRECTION ang] <prim> ENTER

It creates a construction line tangential to the object given by the parameter ‘prim’. The common point will be either the nearest to the selecting point or the start point of the object. If you use the option 'FIXDIRECTION' the direction of the line will be the given and the program will select the nearer from the two possible tangential points.

**ang ***(real)***: **the direction of the line

**prim ***(obj)***:** the object the line will be tangential to

e.g.: **#CONSTLINE TANGENT 10 10;**

- It creates a construction line tangential to the object found nearby the point (10,10).

## LINE

LINE <start.coord <end.coord> ENTER> ENTER

It creates a series of lines connected by their endpoints. The endpoint of a line will be the start point of the next.

**start.coord ***(point)***:** the start point of the first line

**end.coord ***(point)***:** the endpoint of the actual line

e.g.: **#LINE 10 10 10 20 20 20 20 10 10 10;**

- It draws a square with a height and width of 10 and with its left bottom vertex located at the point (10,10).

### VALUE

LINE VALUE index <start.coord end.coord> ENTER

It creates a set of lines given by their start and endpoints. The lines attributes will be the same as the object defined by the parameter ‘int’.

**index ***(int)***:** the index of the object from which the attributes are inherited by the line

**start.coord ***(point)***:** the coordinates of the line’s start

**end.coord ***(point)***:** the coordinates of the line’s end

e.g.:** #LINE VALUE 3 0 0 10 10;**

-It creates a line from (0,0) to (10,10) with the same attributes as the object which has the index: 3.

### HORIZONTAL

LINE HORIZONTAL <start.coord end.coord> ENTER

It creates horizontal lines defined by their start and endpoints.

**start.coord ***(point)***:** the coordinates of the line’s start

**end.coord ***(point)***:** the coordinates of the line’s end

e.g: **#LINE HORIZONTAL 10 10 20 10 10 20 20 20;**

- It creates two parallel lines. One between the places (10,10) and (20,10) and an other one between the places (10,20) and (20,20).

**NOTE: **If you give 2 coordinates that do not define a horizontal line the line defined by these won’t be created.

### VERTICAL

LINE VERTICAL <start.coord end.coord> ENTER

It creates vertical lines defined by their start and endpoints.

**start.coord :** the coordinates of the line’s start

**end.coord:** the coordinates of the line’s end

e.g: **#LINE VERTICAL 10 10 10 20 20 10 20 20;**

- It creates two parallel lines. One between the places (10,10) and (10,20) and an other one between the places (20,10) and (20,20).

**NOTE: **If you give 2 coordinates that do not define a vertical line the line defined by these won’t be created.

### HV

LINE HV start.coord <end.coord> ENTER

It creates a series of horizontal/vertical lines connected by their endpoints. The endpoint of a line will be the start point of the next.

**start.coord ***(point)***:** the start point of the first line

**end.coord ***(point)***:** the endpoint of the actual line

e.g.: **#LINE HV 10 10 10 20 20 20 20 10 10 10;**

- It draws a square with a height and width of 10 and with its left bottom vertex located at the point (10,10)

**NOTE:** Even if connecting a pair of start and endpoints results a non HV line, a line will be created from the start point (the endpoint of the preceding line) to the projection of the given endpoint on the horizontal or vertical direction. The actual endpoint will be the nearer from the two possible.

### PERPENDICULAR

LINE PERPENDICULAR [CONSTLINE] <coord prim> ENTER

It creates a line perpendicular to the selected object. The start point of the line will be the given point and the endpoint of the line will be either the nearest intersection point with the object or the nearest intersection point with the construction lines of the object (not visible).

If you use the switch ‘constline’ a construction line will be created with the same conditions

**coord ***(point)***: **the coordinates of the start point of the line

**prim ***(obj)***:** the object the line will be perpendicular to

e.g.: **#LINE PERPENDICULAR 0 0 15 15;**

- It creates a lines starting from the (0,0) perpendicular to the object located nearby the (15,15).

### LPERPENDICULAR

LINE LPERPENDICULAR <prim1 {length|coord|ONITEM prim2}> ENTER

It creates a line perpendicular to the object selected by the parameter ‘prim1’. The start point will be on the selected object and the endpoint can be defined either directly or with the length of the line.

If you give the coordinates of the desired endpoint, and the line passing through the selected start and endpoints is not perpendicular to the object, the endpoint will be the named point’s projection to the perpendicular direction.

If you use the option ‘ONITEM’ then you have to select another object, on which the endpoint will be created.

If you enter the length the positive length is in the right from the objects direction.

**prim1 ***(obj)***: **the object the line will be perpendicular to

**length ***(real)***:** the length of the line

**coord ***(point)***: **the coordinates of the line’s endpoint

**prim2 ***(obj)***: ** the object on which the endpoint will be created

e.g.: If you have a square with its left bottom vertex on (0,0) and another with its left bottom vertex on (10,0) and both has a width of 2, the next 3 commands will create the same line, which connects the midpoint of the first square’s right side with the midpoint of the second square’s left side:

**#LINE LPERPENDICULAR 2 1 3;**

**#LINE LPERPENDICULAR 2 1 5 1;**

**#LINE LPERPENDICULAR 2 1 ONITEM 5 0;**

### PARALLEL

LINE PARALLEL [CONSTLINE] <<prim coord> ENTER> ENTER

It creates a line which will be parallel to the selected line and which has the same length. The new line is defined with a point it (or its construction line) passes through. If you use the switch ‘constline’ a construction line will be created with the same conditions. (Of course the length of the construction line will be the whole width of the window.)

**prim ***(obj)***:** the object the new line will be parallel to

**coord ***(point)***:** one point of the new line

e.g.: #LINE 10 10 20 10;** #LINE PARALLEL 10 10 10 20;**

-It creates two parallel horizontal lines with the same length (10), one starting from (10,10) and the second starting from (10,20).

**NOTE:** In this command the selected object can be only a line or a construction line. It is allowed that the selected line is a part of a chain or a polygon.

### DPARALLEL

LINE DPARALLEL [CONSTLINE] <prim <dist> ENTER> ENTER

It cerates a line which will be parallel to the selected line and which has the same length. The new line is defined with the distance from the origin. If you use the switch ‘constline’ a construction line will be created with the same conditions. (Of course the length of the construction line will be the whole width of the window.) The positive direction is the side of the object where the chosen point has fallen.

**prim ***(obj)***:** the object the new line will be parallel to

**dist ***(real)***:** the distance between the original and the new line

e.g.: **#LINE DPARALLEL 15 11 2 4 6 8; 11 15 2 4 6 8;;**

-If you have the square with its left bottom vertex on the point (10,10) and with the width of 10, this command creates a grid inside the square with the distance 2 between the points of the grid.

**NOTE:** In this command the selected object can be only a line or a construction line. It is allowed that the selected line is a part of a chain or a polygon.

### DISTANCE

LINE DISTANCE [CONSTLINE] <prim dist> ENTER

It cerates a line which will be parallel to the selected line and which has the same length. The new line is defined with the distance from the origin. If you use the switch ‘constline’ a construction line will be created with the same conditions. (Of course the length of the construction line will be the whole width of the window.) The positive direction is the side of the object where the chosen point has fallen.

**prim ***(obj)***:** the object the new line will be parallel to

**dist ***(real)***:** the distance between the original and the new line

e.g: **#LINE DISTANCE 15 11 5 11 15 5;**

-If you have the square with its left bottom vertex on the point (10,10) and with the width of 10, this command creates four squares with a width of 5 inside the original square.

**NOTE:** In this command the selected object can be only a line or a construction line. It is allowed that the selected line is a part of a chain or a polygon. The effect of this command is the same then #LINE DPARALLEL but the syntax is different.

### SAMEPARALLEL

LINE SAMEPARALLEL [CONSTLINE] prim dist <prim> ENTER

It creates a line which will be parallel to the selected line and which has the same length. The new line is defined with the distance from the origin. If you create multiple lines the distance will be the same. If you use the switch ‘constline’ a construction line will be created with the same conditions. (Of course the length of the construction line will be the whole width of the window.) The positive direction is the side of the object where the chosen point has fallen.

**prim ***(obj)***:** the object the new line will be parallel to

**dist ***(real)***:** the distance between the original and the new line

e.g.: #LINE 20 10 10 10; **#LINE SAMEPARALLEL 10 15 2 12 15 14 15;**

-It creates 3 vertical lines with the length of 10. Their starting points will be (12,20), (14,20) and (16,20).

**NOTE:** In this command the selected object can be only a line or a construction line. It is allowed that the selected line is a part of a chain or a polygon. The effect of this command is the same then #LINE DPARALLEL but the syntax is different.

### AXIS

LINE AXIS [HV] <coord1 <coord2> ENTER> ENTER

It creates a set of lines passing through one point given by the parameter ‘coord1’. One line’s first endpoint will be the parameter ‘coord2’ and the other will be created in the opposite direction with the same distance. If you use the switch ‘HV’ only horizontal/vertical lines will be created, and the first endpoint will be either the given or its projection explained by the note of the command LINE HV.

**coord1 ***(point)***:** the center point of the lines

**coord2 ***(point)***: **one endpoint of the created line

e.g.: **#LINE AXIS 0 0 10 0 0 10;;**

-It creates a cross at the center of the window from two 20m long lines.

### BREAK

LINE BREAK [HV] <coord1 <coord2 {coord3|ONITEM prim}> ENTER> ENTER

It creates a set of lines with their construction line passing through one point. If you use the switch ‘HV’ only horizontal/vertical lines will be created, and the first endpoint will be either the given or its projection explained by the note of the command LINE HV.

**coord1 ***(point)***: **the common point of the line’s construction lines

**coord2 ***(point)***: **one endpoint of the next line

**coord3 ***(point)***: **the second endpoint of the next line

**prim ***(obj)***:** the object the second endpoint will be located on

e.g.: **#LINE BREAK 0 0 10 0 -10 0 0 10 0 -10;;**

-It creates a cross at the center of the window from two 20m long lines.

### RPT

LINE RPT [CONSTLINE] <coord prim> ENTER

It creates a line from the point ‘coord’ tangential to the object ‘prim’. The endpoint will be created on the object. If you use the switch ‘constline’ a construction line will be created passing through the point and tangential to the object.

**coord ***(point)***:** the start point of the line

**prim ***(obj)***:** the object the line will be tangential to

e.g.: **#LINE RPT 0 0 5 10;**

-It creates a line from the center of the drawing tangential to the circle located at (10,10) and with the radius of 5. (If it exists.)

### TTR

LINE TTR [CONSTLINE] <prim1 prim2> ENTER

It creates a line tangential to both object selected with the two parameters ‘prim1’ and ‘prim2’. If there is no such a line, nothing will be created. The two endpoints will be the two tangential points. If there are more possible tangential lines to the two objects, those tangential points will be chosen which are the nearest to the selecting points. If you use the switch ‘constline’ the two endpoints will be on the borders of the window.

**prim1 ***(obj)***:** the first object the line will be tangential to

**prim2***(obj)***:** the second object the line will be tangential to.

e.g.: **#LINE TTR 10 10 -10 10;**

- A line will be created which is tangential to both the object near to the point (10,10) and the object near to the point (-10,10).

### LTANGENT

LINE LTANGENT [CONSTLINE] <prim1 prim2> ENTER

It creates a line perpendicular to the construction line of ‘prim1’ and tangential to ‘prim2’. If there is no such a line, nothing will be created. The two endpoints will be the two intersection points. If there are more possible lines with these conditions, those line be chosen of which intersection points are nearest to the selecting points. If you use the switch ‘constline’ the two endpoints will be on the borders of the window.

**prim1 ***(obj)***:** the object the line will be perpendicular to

**prim2***(obj)***:** the object the line will be tangential to

e.g.: **#LINE LTANGENT 10 10 10 0;**

- A line will be created which is perpendicular to the object near to the point (10,10) and tangential to the object near to the point (-10,10).

### HALFANGLE

LINE HALFANGLE [CONSTLINE]

<prim1 prim2 {coord1|ONITEM prim3} {coord2|ONITEM prim4}> ENTER

It creates a line running in the half angle of the two selected objects ‘prim1’ and ‘prim2’ either between the two endpoints given by ‘coord1’ and ‘coord2’ (or given by using any of the switches ‘ONITEM’ and selecting an object) or between the borders of the window if you use the switch ‘CONSTLINE’. If the two objects are parallel the line will be running parallel, too, halving their distance.

**prim1, prim2 ***(obj)***:** the two selected objects

**coord1 ***(point)***: **the start point of the line

**coord2 ***(point)***: **the endpoint of the line

**prim3 ***(obj)***:** an object the start point will be located at

**prim4 ***(obj)***:** an object the endpoint will be located at

e.g.: #LINE 20 10 10 10 10 20;; **#LINE HALFANGLE 15 10 10 15 20 20 ONITEM 15 10;**

- It creates a line from (20,20) to (10,10)

### TRIANGLE

LINE TRIANGLE [ {RIGHT|POINT} ] <prim length1 length2> ENTER

It creates a triangle. The base line will be the selected by ‘prim’ and the two other lines are defined by their length. (The base line have to be created before running this command.) If you use the switch ‘POINT’ only the third vertex will be drawn (one point will be created). If you use the switch ‘RIGHT’ only the side connecting the third vertex and the start point of the base line will be created (one segment will be created). If you do not use any switches both sides will be created (two segments will be created).

**prim (obj): the base line of the triangle**

**length1, length2 ***(real)***:** the lengths of the two sides

e.g.: #LINE 20 10 10 10;

1.: **#LINE TRIANGLE 15 10 8 8;**

2.:** #LINE TRIANGLE RIGHT 15 10 8 8;**

3.:** #LINE TRIANGLE POINT 15 10 8 8;**

### TRIANGLE P3/CPOINT

LINE TRIANGLE {P3|CPOINT} <coord1 coord2 length1 length2> ENTER

It creates the vertices of a triangle, given by two points and with the lengths of two sides. If you use the option ‘P3’ every three vertices will be created (3 points will be created) but if you use ‘CPOINT’ only the third (not given) point will be created.

**coord1, coord2 ***(point)***: **the coordinates of the vertices on the imaginary base line

**length1, length2 ***(real)***: **the lengths of the two imaginary sides

e.g.: **#LINE TRIANGLE CPOINT 10 10 20 10 10 14.1421;**

- It creates a point at (10,20).

### ARC

LINE ARC

<st_point1

{ARC

{TANGENT tng_point1 {end_point | RADIUS rad DANGLE ang}

| mid_ point end_point

}

| SPLINE node1 tng_point2 ct_point {<node> [CLOSED] ENTER | ENTER}

| end_point1

}

<

{ARC

{SMOOTH end_point

| TANGENT tng_point1 {end_point | RADIUS rad DANGLE ang}

| mid_ point1 end_point

}

| SPLINE

{SMOOTH node1 ct_point {<node> [CLOSED] ENTER | ENTER}

| node1 tng_point2 ct_point {<node> [CLOSED] ENTER | ENTER}

}

| end_point2

}

> ENTER

> ENTER

It creates a series of lines, circular arcs and splines. The start point of a segment will be the endpoint of the previous segment. The connections can be normal or smooth. (The tangents of the connected objects are the same in the connection point.)

While drawing a spline if you use the switches ‘CLOSED’ the spline will be closed. (This means the first and the last point will be the same.)

**st_point1 ***(point)***: **the coordinates of the start point of the chain

**tng_point1 ***(point)***:** the line going through this point and the endpoint of the previous object will be the arc’s tangent in the connection point

**end_point ***(point)***:** the endpoint of an arc

**rad ***(real)***:** the radius of an arc

**ang ***(real)***: **the central angle of an arc

**mid_point ***(point)***:** the center of the arc

**node1 ***(point)***:** the first node of a spline

**tng_point2 ***(point)***:** the spline’s tangent in the connection point will be the line going through the endpoint of the previous segment and tng_point2

**ct_point ***(point)***:** a control point which defines the first curve of the spline. The spline won’t go through this point. The tangent at the first node will be the line between the start of the spline and this point.

**node ***(point)***:** a point the spline will go through

**end_point1 ***(point)***:** if the first object is a straight line, this will be its endpoint

**end_point2 ***(point)***: **if any segment is a straight line, this will be its endpoint

e.g.: **#****LINE ARC 10 10 20 10 ARC SMOOTH 20 5 10 5 ARC TANGENT 0 5 RADIUS 2.5 DANGLE 180;;**

- It creates two parallel lines in a distance of 5 and with a length of 10, and two half circles closing both ends of the lines

### ARC MULTILINE

LINE ARC MULTILINE <offset> ENTER

<st_point1 [INVERSE]

{ARC

{TANGENT tng_point1 {end_point | RADIUS rad DANGLE ang}

| mid_ point end_point

}

| SPLINE node1 tng_point2 ct_point {<node> [CLOSED] ENTER | ENTER}

| end_point1

| SELITEM prim

}

<

{ARC

{SMOOTH end_point

| TANGENT tng_point1 {end_point | RADIUS rad DANGLE ang}

| mid_ point1 end_point }

| SPLINE

{SMOOTH node1 ct_point {<node> [CLOSED] ENTER | ENTER}

| node1 tng_point2 ct_point {<node> [CLOSED] ENTER | ENTER}

}

| end_point2

| SELITEM prim

}

> ENTER

> ENTER

It creates a series of lines, arcs, splines like LINE ARC but with more parallel lines. The distances are defined by the parameters offset. The offset is measured from the previous line, not from the first. The parallel lines run on the right side of the main line but if you use the switch ‘INVERSE’ it can be changed. With the SELITEM option you can select an existing object to involve it into the chain. Its start point will be connected to the actual point with a straight line. At the connections the parallel lines are trimmed or extended to create a connection between them, too. For more details see LINE ARC.

**offset ***(real)***:** the distances of the parallel lines from the main line

**st_point1 ***(point)***: **the coordinates of the start point of the chain

**tng_point1 ***(point)***:** the line going through this point and the endpoint of the previous object will be the arc’s tangent in the connection point

**end_point ***(point)***:** the endpoint of an arc

**rad ***(real)***:** the radius of an arc

**ang ***(real)***: **the central angle of an arc

**mid_point ***(point)***:** center of the arc

**node1 ***(point)***:** the first node of a spline

**tng_point2 ***(poin)t***:** the spline’s tangent in the connection point will be the line going through the endpoint of the previous segment and tng_point2

**ct_point ***(point)***:** a control point which defines the first curve of the spline. The spline won’t go through this point. The tangent at the first node will be the line between the start of the spline and this point.

**node ***(point)***:** a point the spline will go through.

**end_point1 ***(point)***:** if the first object is a straight line, this will be its endpoint

**end_point2 ***(point)***: **if any segment is a straight line, this will be its endpoint

**prim ***(obj)***:** an object to be involved into the line

e.g.: **#****LINE ARC MULTILINE 0.5; 10 10 20 10 ARC SMOOTH 20 5 10 5 ARC TANGENT 0 5 RADIUS 2.5 DANGLE 180;;**

- It creates two parallel lines in a distance of 5 and with a length of 10, and two half circles closing both ends of the lines and another parallel object with the same outfit inside the first and in the distance of 0.5

## POLYGON

POLYGON <<coord> ENTER> ENTER

It creates a polygon defined by its vertices. The last vertex will be automatically connected with the first.

**coord ***(point)***:** a vertex of the polygon

e.g.: **#POLYGON 10 10 10 20 20 20 20 10;;**

- It creates a square with its left bottom vertex at the point (10,10) and with a length of the sides of 10.

**NOTE:** at least three vertices have to be given

### IN

POLYGON IN <num <[DIAMETER dia][RADIUS rad][ANGLE ang] coord>ENTER> ENTER

It creates a regular polygon defined with the number of its vertices. The polygon will be created as it were inscribed in a circle. The radius of the circle is either the actual radius or it can be modified using the options ‘DIAMETER’ or ‘RADIUS’. With the option ‘ANGLE’ you can define the first vertex’s direction from the center point. Modifying these values doesn't affect the actual ones.

**num ***(int)***:** the number of the polygon’s vertices (at least 3)

**dia ***(real)***: **the diameter of the imaginary circle, the polygon will be inscribed in

**rad ***(real)***:** the radius of the imaginary circle, the polygon will be inscribed in

**ang ***(real)***:** the included angle between the horizontal direction and the line connecting the first vertex with the center point. The positive direction is counterclockwise.

**coord ***(point)***: **the coordinates of the polygon’s center point.

e.g.:** #POLYGON IN 4 DIAMETER 14.1427 ANGLE 90 0 0;;**

It creates a square standing on its vertex at the center of the drawing with the width the length of the sides of 10.

### OUT

POLYGON OUT <num <[DIAMETER dia][RADIUS rad][ANGLE ang] coord> ENTER>ENTER

It creates a regular polygon defined with the number of its vertices. The polygon will be created as it were circumscribed around a circle. It means every sideline is tangential to the circle. The radius of the circle is either the actual radius or it can be modified using the options ‘DIAMETER’ or ‘RADIUS’. With the option ‘ANGLE’ you can define the first vertex’s direction from the center point. Modifying these values doesn't affect the actual ones.

**num ***(int)***:** the number of the polygon’s vertices (at least 3)

**dia ***(real)***: **the diameter of the imaginary circle, the polygon will be circumscribed around

**rad ***(real)***:** the radius of the imaginary circle, the polygon will be circumscribed around

**ang ***(real)***:** the included angle between the horizontal direction and the line connecting the first vertex with the center point. The positive direction is counterclockwise.

**coord ***(point)***: **the coordinates of the polygon’s center point.

e.g.:** #POLYGON OUT 4 DIAMETER 10 ANGLE 90 0 0;;**

It creates a square standing on its vertex at the center of the drawing with the width the length of the sides of 10.

### INSCRIBED

POLYGON INSCRIBED <num <center_pt node> ENTER> ENTER

It creates a regular polygon defined by the number of its vertices, and by its center point and one vertex.

**num ***(int)***:** the number of the polygon’s vertices (at least 3)

**center_pt ***(point)***:** the coordinates of the center point

**node ***(point)***:** the coordinates of a vertex

e.g.: **#POLYGON INSCRIBED 4 5 5 10 0; 3 5 12.887 0 10;;**

-It creates a square with its left bottom vertex at the center of the drawing and with the length of sides of 10, and a regular triangle with the same length of sides sitting on the top of the square.

### CIRCUMSCRIBED

POLYGON CIRCUMSCRIBED <num <center_pt coord>ENTER>ENTER

It creates a regular polygon defined by the number of its vertices and by its center point and a point of the circle the polygon is circumscribed around.

**num ***(int)***:** the number of the polygon’s vertices (at least 3)

**center_pt ***(point)***:** the center of the polygon

**coord ***(point)***:** a point of the imaginary circle and the midpoint of one side of the polygon

e.g.: **#POLYGON CIRCUMSCRIBED 4 0 0 0 10;**

-It creates a square with the four vertices: (10,10) (-10,10) (-10,-10) and (10,-10).

### REGULAR IN

POLYGON REGULAR IN length num <[ANGLE ang] coord> ENTER

It creates a regular polygon defined by the number of its vertices and by the length of its sides

**length ***(real)***: **the length of the polygon’s sides

**num ***(int)***:** the number of the polygon’s vertices (at least 3)

**ang ***(real)***: **the rotation angle of the polygon

**coord ***(point)***:** the coordinates of the polygon’s center point

e.g.: **#POLYGON REGULAR IN 5 8 0 0 ANGLE 22.5 0 0;**

-It creates two octagons. Both center points are (0,0) and the both octagon has a side length of 5 but the first stands on one of its vertices and the second lays on one of its side.

**NOTE**: If the angle is 0 (default) the vertex with the biggest x coordinate will be located in the horizontal direction from the center point. The positive angle is in counterclockwise.

### MULTILINE

POLYGON MULTILINE <offset> ENTER <coord1 [BACKWARD] <coord>> ENTER> ENTER

It creates multiple polygons with parallel sides. Only the vertices of one polygon have to be given and the others are constructed in the distances given in the parameters ‘offset’. The offsets are measured from the previous line not from the first. If you use the switch ‘BACKWARD’ the first offset is measured on the left side of the first line.

**offset ***(real)***:** the distance between the parallel edges

**coord1 ***(point)***:** the first vertex of the base polygon

**coord ***(point)***: **vertices of the base polygon (at least 2)

e.g.:** #POLYGON MULTILINE 1 1; 0 0 10 0 10 10 0 10;;**

-It creates three squares with the length of sides of 10. The left bottom vertex of the first will be located at (0,0). The coordinates of the other’s left bottom corner will be (-1,-1) and (-2,-2)

## RECTANGLE

RECTANGLE [MULTILINE <offset> ENTER]

<coord1 [INVERSE] coord2 {coord3|ONITEM prim}> ENTER

It creates a rectangle defined by three points. The first two coordinates will be the endpoints of the base line. From the third coordinates only one is relevant the other comes from the second point’s coordinates.

If you use the switch ‘MULTILINE’ more rectangles will be created with parallel edges. The distances between the oblongs are given in the parameters ‘offset’. The offset is measured from the previous line not from the first. By using the switch ‘INVERSE’ the secondary lines can be relocated on the other side of the primary rectangle.

**offset ***(real)***:** the distance between the parallel rectangles

**coord1 ***(point)***: **one vertex of the rectangle

**coord2 ***(point)***:** another vertex of the rectangle which sits on the same edge as ‘coord1’

**coord3 ***(point)***:** a third vertex of the rectangle

**prim ***(obj)***:** an object the third point will be located at

e.g.: **#RECTANGLE 0 0 20 0 -1 -10;**

-It creates a rectangle with the vertices: (0,0) (20,0) (20,-10) (0,-10). Notice that replacing the -1 (the horizontal coordinate of the third point) with any number doesn’t affect the result.

### WIDTH

RECTANGLE WIDTH width <coord1 [INVERSE] coord2> ENTER

It creates rectangle defined by two points and with the length of one edge. With the switch ‘INVERSE’ you can change on which side of the base line are the third and fourth vertices (the default is right).

**width ***(real)***:** the length of one side of the rectangle

**coord1 ***(point)***:** the first endpoint of the base line

**coord2 ***(point)***: **the second endpoint of the base line

e.g.: **#RECTANGLE WIDTH 10 0 0 INVERSE 10 0;**

-It creates a square with the four vertices: (0,0) (10,0) (10,10) and (0,10).

### HV

RECTANGLE HV [MULTILINE <offset>] <coord1 [INVERSE] coord2> ENTER

It creates a rectangle with parallel sides to the borders of the window. The rectangle is defined by the two endpoints of its diagonal. If you use the switch ‘MULTILINE’ more rectangles will be created with parallel edges. By using the switch ‘INVERSE’ you can change the offsets to their negatives.

**offset ***(real)***:** the distance of the parallel lines

**coord1, coord2 ***(point)***: **The coordinates of the endpoints of the diagonal

e.g.: **#RECTANGLE HV 0 0 20 10;**

-It creates a square with the four vertices: (0,0) (20,0) (20,10) and (0,10).

## SPLINE

SPLINE <st_coord node1 tg_coord1 tg_coord2 [<node>] [CLOSED] ENTER>ENTER

It creates a spline. The tangents in the first and second point are defined by the values given in the parameters ‘tg_coord1’ and ‘tg_coord2’. If you use the switch ‘CLOSED’ the last node and the start point will be connected.

**st_coord ***(point)***:** the start point of the spline

**node1 ***(point)***:** the first node of the spline

**tg_coord1 ***(point)***:** the tangent at the start point will be the line between ‘st_coord’ and ‘tg_coord1’

**tg_coord2 ***(point)***:** the tangent at the first node will be the line between ‘node1’ and ‘tg_coord2’

**node ***(point)***:** nodes of the spline

e.g.: **#SPLINE 0 10 10 0 20 10 10 20 5 -8 3 -16 -8 10;;**

-It creates a spline starting with an quarter circle between (0,10) and (10,0).

## CIRCLE

CIRCLE < {RADIUS rad|DIAMETER dia} <coord>> ENTER

It creates circles with the radius defined by the options ‘RADIUS’ or ‘DIAMETER’. The centers will be located at ‘coord’.

**rad ***(real)***:** the radius of the circles

**dia ***(real)***:** the diameter of the circles

**coord ***(point)***:** the center point of the circle

e.g.: **#CIRCLE RADIUS 5 0 0 DIAMETER 10 10 10;**

-It creates two circles each with the radius of 10. The first’s center point is (0,0) and the second’ is (10,10)

### VALUE

CIRCLE VALUE index <coord> ENTER

It creates circles with the same attributes as one existing. The model can be chosen by its index.

**index ***(int)***:** the index of the circle from which the attributes are inherited

**coord ***(point)***:** the center of the circles

e.g.: **#CIRCLE VALUE 4 0 0;**

-It creates a circle with the same attributes as the object indexed with 4 has.

**NOTE:** If the object is not a circle or a circular arc, the radius of the newly created circle will be the default. Only other attributes such as color, line type, etc. are inherited.

### CPOINT

CIRCLE CPOINT <coord1 coord2> ENTER

It creates a circle defined by its center and a point of its circumference.

**coord1 ***(point)***:** the center of the circle

**coord2 ***(point)***:** one point of the circle’s circumference

e.g.: **#CIRCLE CPOINT 0 0 7.071 7.071;**

-It creates a circle. The center point is (0,0) and the radius is 10.

### P2

CIRCLE P2 < {RADIUS rad|DIAMETER dia} <coord1 coord2 coord3> > ENTER

It creates circles defined by two points, and the radius. The parameter ‘coord3’ makes the choice between the two possible circles. The radius is set by the keywords ‘RADIUS’ and ‘DIAMETER’.

**rad ***(real)***: ** the radius of the circle

**dia ***(real)***:** the diameter of the circle

**coord1, coord2 ***(point)***: **two points of the circle’s circumference

**coord3 ***(point)***: **a point to choose between the two possible circles. The nearer center will be chosen.

e.g.: **#****CIRCLE P2 RADIUS 10 8 8 6 2 10 0 RADIUS 20 0 -20 10 -20 15 -30;**

- It creates two circles. The first has a radius of 10 and goes through (8,8) and (6,2) the second’s radius is 20 and goes through (0,-20) and (10,-20). In both cases the center will be located below the given points (with lower y coordinate).

### P3

CIRCLE P3 <coord1 coord2 coord3> ENTER

It creates a circle passing through all the three given points.

**coord1, coord2, coord3 ***(point)***: **coordinates of the three points

e.g.: **#CIRCLE P3 5 0 -5 0 0 5;**

- It creates a circle with the radius of 5 and its center point will be (0,0).

### CT

CIRCLE CT <coord prim> ENTER

It creates a circle defined by its center point and by a tangential object. Sometimes there are more possible tangential points (e.g. if the tangential object is also a circle). In this case that point will be chosen, which is nearer to the given point. If you select the object by its index, the tangential point will be the endpoint of the object. (The endpoint of a circle is always the point with the lower x coordinate.)

**coord ***(point)***:** the center point of the circle

**prim ***(obj)***: **an object the circle will be tangential to

e.g.: #CONSTLINE 10 0 -10 0; **#CIRCLE CT 10 10 0 0;**

-It creates a circle with the radius of 10 and its center point will be (10,10).

### TTR

CIRCLE TTR < {RADIUS rad|DIAMETER dia} prim1 prim2> ENTER

It creates a circle with the defined radius, tangential to both objects ‘prim1’ and ‘prim2’. If there isn’t any circle with these conditions, nothing will be created. If there are more possible circles the one will be selected which’s tangential points are nearer to the given points.

**rad ***(real)***:** the radius of the circle

**dia ***(real)***:** the diameter of the circle

**prim1, prim2 ***(obj)***:** the two objects the circle will be tangential to

e.g.: #CONSTLINE 10 0 -10 0 20 10 20 20; **#CIRCLE TTR RADIUS 10 0 0 20 20 RADIUS 1 20 10 18 14;**

-It creates first a bigger circle with the radius of 10 and with the center point (10,10) then it creates a smaller circle with the radius of 1 and with the center point (19,10).

### TP2

CIRCLE TP2 <coord1 coord2 prim> ENTER

It creates a circle passing through the two given points and tangential to the object.

**coord1, coord2 ***(real)***:** two points of the circle

**prim ***(obj)***:** the object the circle will be tangential to

e.g.: #CONSTLINE -10 0 10 0; **#CIRCLE TP2 5 5 15 5 ID 1;**

- It creates a circle with the radius of 5 and with the center point (10,5). (If the newly created construction line’s index is 1.)

### PTT

CIRCLE PTT <coord prim1 prim2> ENTER

It creates a circle passing through the given point and tangential to both given objects.

**coord ***(point)***:** a point of the circle

**prim1, prim2 ***(obj)***:** two objects the circle will be tangential to

e.g.: **#CIRCLE PTT 0 0 10 10 -10 10;**

-It creates a circle with the center point (0,0) and tangential to the objects found near the points (10,10) and (-10,10).

### TTT

CIRCLE TTT <prim1 prim2 prim3> ENTER

It creates a circle tangential to all the three given objects.

**prim1, prim2, prim3 ***(obj)***:** objects the circle will be tangential to.

e.g.: #POLYGON 0 0 10 0 17 10; **#CIRCLE TTT 6 0 12 5 5 3;**

-It creates the inscribed circle of the triangle created by the command ‘POLYGON’.

### RPT

CIRCLE RPT <{RADIUS rad|DIAMETER dia} prim coord> ENTER

It creates a circle with the given radius tangential to the given object and passing through the given point. If there isn’t any possible circle with these conditions nothing will be created.

**rad ***(real)***:** the radius of the circle

**dia ***(real)***:** the diameter of the circle

**prim ***(obj)***:** the object the circle will be tangential to

**coord ***(point)***:** the point the circle will passing through

e.g.: #LINE 0 0 10 0; **#CIRCLE RPT RADIUS 1 0 0 20 2;**

-It creates a circle with the radius of 1 and with the center point (20,19). Notice that the line is not tangential to the circle only its extension.

### AXIS

CIRCLE AXIS <coord1 coord2> ENTER

It defines a circle as the line with the endpoints ‘coord1’ and coord2’ is the circle’s diameter.

**coord1, coord2 ***(point)***:** the endpoints of the circle’s diameter

e.g.: **#CIRCLE AXIS 0 10 10 10;**

-It creates a circle with the radius of 5 and with the center point (5,10).

## ARC

ARC <{RADIUS rad|DIAMETER dia} coord> ENTER

It creates a circular arc with the given radius and with the given center point. The start of the arc will be the default start angle, and the end will be the default end angle.

**rad ***(real)***: **the radius of the arc

**dia ***(real)***:** the diameter of the arc

**coord ***(point)***:** the center point of the arc

e.g.: **#ARC DIAMETER 10 10 10;**

-It creates a circular arc with the center point (10,10) between the points (15,10) and (10,15).

### VALUE

ARC VALUE index <[ {RADIUS rad|DIAMETER dia} ] coord>ENTER

It creates a circular arc with the attributes inherited from the object marked with the index ‘index’. The radius can be modified.

**index ***(int)***:** the index of the object the attributes are inherited from

**rad ***(real)***:** the radius of the arc

**dia ***(real)***:** the diameter of the arc

e.g.: **#ARC VALUE 1 0 0;**

-It creates a circular arc with the center point (0,0) and with the attributes of the object wearing the index 1. (radius, start and end angle etc.)

### CPOINT

ARC CPOINT <coord1 coord2 [BACKWARD] coord3> ENTER

It creates a circular arc defined by its center point and the two endpoints of the arc. The arc will be created in the positive angle direction (counterclockwise) from the start point (‘coord2’). It can be changed by using the switch ‘BACKWARD’. If the third point isn’t on the circle defined by the first and second point the endpoint will be the nearest point of the circle.

**coord1 ***(point)***:** the center point of the arc

**coord2 ***(point)***:** the start point of the arc

**coord3 ***(point)***:** the endpoint of the arc

e.g.: **#ARC CPOINT 0 0 5 0 0 10;**

-It creates a circular arc with the center point (0,0) between the points (5,0) and (0,5).

### P2/AXIS

ARC {P2|AXIS} <{RADIUS rad|DIAMETER dia} coord1 coord2 coord3> ENTER

It creates a circular arc with the given radius. The endpoints of the arc will be ‘coord1’ and ‘coord2’. If the distance between the two points is longer than the used diameter, nothing will be created. The parameter ‘coord3’ chooses between the possible arcs. (The arc will be chosen which has the nearest point to ‘coord3’.)

**rad ***(real)***:** the radius of the arc

**dia ***(real)***:** the diameter of the arc

**coord1, coord2 ***(point)***: **the endpoints of the arc

**coord3 ***(point)***:** a point to choose between the possible arcs.

e.g.: **#ARC P2 RADIUS 5 0 0 10 0 0 1;**

-It creates a circular arc with the center point (5,0) between the points (0,0) and (10,0). The arc will be created on the upper side of the x axis.

### P3

ARC P3 coord1 {TANGENT tg_point {coord3|RADIUS rad DANGLE ang}|coord3 {coord2|{RADIUS rad|DIAMETER dia| PERIMETER per|ARC height} sel_point}} ENTER

It creates a circular arc. You can define it with three points or with two points and the tangent at the first point or with two points and the radius/diameter/perimeter/chord height of the arc. In the last case the parameter ‘sel_point’ chooses from the possible arcs.

**coord1 ***(point)***:** the start point of the arc

**tg_point ***(point)***:** the tangent at the start of the arc will be the line between ‘coord1’ and ‘tg_point’

**coord3 ***(point)***:** the endpoint of the arc

**coord2 ***(point)***:** a point of the arc

**ang ***(real)***: **the central angle of the arc

**rad ***(real)***:** the radius of the arc

**dia ***(real)***:** the diameter of the arc

**per ***(real)***: **the perimeter of the arc

**height ***(real)***:** the height of the arc

**sel_point ***(point)***: **if there are more possible arcs the one will be selected which has the nearest point to this parameter

e.g.: **#ARC P3 0 0 TANGENT 0 10 10 0;**

** #ARC P3 0 0 10 0 5 5;**

** #ARC P3 0 0 10 0 RADIUS 5 5 30;**

** #ARC P3 0 0 10 0 DIAMETER 10 5 30;**

** #ARC P3 0 0 10 0 PERIMETER 5*PI 5 30;**

** #ARC P3 0 0 10 0 ARC 5 5 30; **

-These 6 commands create the same arc. It is a semicircle with the radius of 5 between the points (0,0) and (10,0). The arc goes in the first quadrant.

### TTR

ARC TTR <{RADIUS rad|DIAMETER dia} prim1 prim2>ENTER

It creates a circular arc with the given radius tangential to the objects ‘prim1’ and ‘prim2’. The endpoints of the arc will be the two tangential points.

**rad ***(real)***:** the radius of the arc

**dia ***(real)***:** the diameter of the arc

**prim1, prim2 ***(obj)***:** the objects the arc will be tangential to

e.g.: #CONSTLINE 1 0 2 0 0 1 0 2; **#ARC TTR RADIUS 10 20 0 0 20;**

-It creates a circular arc with the center point (10,10) and with the radius of 10. The two endpoints of the arc will be (0,10) and (10,0).

## ARCCONTINUE

ARCCONTINUE <coord1

{TANGENT tg_point coord3

|coord2 coord3

}

<

{

{TANGENT tg_point coord3

|coord2 coord3

}

|SMOOTH {coord3|RADIUS rad DANGLE ang}

}

> ENTER

>ENTER

It creates a series of circular arcs. The endpoint of the previous arc is the start point of the next. The connection can be smooth (the same tangent at the connection point) or normal.

**coord1 ***(point)***:** the start point of the chain

**tg_point ***(point)***:** the tangent at the start of an arc will be the line between the actual point and ‘tg_point’

**coord3 ***(point)***:** the endpoint of an arc

**coord2 ***(point)***:** a point of an arc

**rad ***(real)***:** the radius of an arc

**ang ***(real)***:** the central angle of an arc

e.g.: **#ARCCONTINUE 0 0 2.974 20.338 -2 2 SMOOTH RADIUS -10 DANGLE 300 SMOOTH RADIUS -8 DANGLE 300 SMOOTH RADIUS -6 DANGLE 300 SMOOTH RADIUS -4 DANGLE 300;;**

-It creates a helix starting from the origin.

**NOTE:** If you enter the radius of an arc, the sign chooses between the two possible arcs. Positive number means the center is on the right side of the arc.

### SMOOTH

ARCCONTINUE SMOOTH <coord1 {TANGENT tg_point coord3|coord2 coord3}

<{coord3|RADIUS rad DANGLE ang}> ENTER >ENTER

It creates a series of circular arcs. The endpoint of the previous arc is the start point of the next. The connection is always smooth. (The tangents are the same at the connection point.)

**coord1 ***(point)***:** the start point of the chain

**tg_point ***(point)***:** the tangent at the start of an arc will be the line between the actual point and ‘tg_point’

**coord3 ***(point)***:** the endpoint of an arc

**coord2 ***(point)***:** a point of an arc

**rad ***(real)***:** the radius of an arc

**ang ***(real)***:** the central angle of an arc

e.g.:** #ARCCONTINUE SMOOTH 0 0 2.974 20.338 -2 2 RADIUS -10 DANGLE 300 RADIUS -8 DANGLE 300 RADIUS -6 DANGLE 300 RADIUS -4 DANGLE 300;;**

## ELLIPSE

ELLIPSE <coord>ENTER

It creates an ellipse with the default attributes. (length of the axes and direction of the major axis)

**coord ***(point)***:** the center point of the ellipse

e.g.: **#ELLIPSE 10 10;**

-It creates an ellipse with the default attributes and with its center point located at (10,10).

### SUMMA

ELLIPSE SUMMA <coord1 coord2 length>ENTER

It creates an ellipse defined by its two focuses and the sum of the distances of the ellipse’s points from them.

**coord1, coord2 ***(point)***:** the location f the focuses

**length ***(real)***:** the sum of the distances from the focuses

e.g.: **#ELLIPSE SUMMA 10 10 20 10 20;**

-It creates an ellipse with the focuses (10,10) and (20,20). The sum of the distances between the points of the ellipse and the focuses is 20.

### AXIS

ELLIPSE AXIS <coord1 coord2 coord3> ENTER

It creates an ellipse defined by two endpoints of its arbitrary axis and a point of the ellipse.

**coord1, coord2 ***(point)***:** the endpoints of the axis

**coord3 ***(point)***:** a point on the perimeter

e.g.: **#ELLIPSE AXIS 10 10 20 10 15 15;**

-It creates a circle with the radius of 5 and with the center located at (15,10).

### ANGLEEND

ELLIPSE ANGLEEND <coord1 coord2 coord3> ENTER

It creates an ellipse defined by its two focuses and a point of the ellipse.

**coord1, coord2 ***(point)***:** the focuses of the ellipse

**coord3 ***(point)***:** a point on the perimeter

e.g.: **#ELLIPSE ANGLEEND 10 10 20 10 5 10;**

-It creates an ellipse with the focuses (10,10) and (20,20). The sum of the distances between the points of the ellipse and the focuses is 20.

### ARC

ELLIPSE ARC

{<coord>|{AXIS|ANGLEEND} <coord1 coord2 coord3 [BACKWARD] coord4>} ENTER

It creates an elliptic arc. If you use none of the options, the arc will be created with the default attributes. If you use the option ‘AXIS’ the ellipse is defined by the endpoints of its arbitrary axis and a point on the perimeter, and if you use the option ‘ANGLEEND’ the ellipse is defined by its two focuses and a point on the perimeter. In both cases the arc is defined by its start and endpoint. With the switch ‘BACKWARD’ you can change between the two possible arcs. (The default is which goes in the counterclockwise direction from the start point.)

**coord ***(point)***:** the center of the ellipse

**coord1, coord2 ***(point)***:** the endpoint of one axis of the ellipse or the two focuses of the ellipse

**coord3 ***(point)***: **the start point of the arc (and a point on the perimeter)

**coord4 ***(point)***:** the endpoint of the arc

e.g.: **#ELLIPSE ARC AXIS 15 15 15 5 10 10 BACKWARD 20 10;**

-It creates a semicircle between the points (10,10) and (20,10). The upper half will be drawn.

## Comments

0 comments

Article is closed for comments.