DESI-III 2D Cad system V5.72

DESI-III's conversation language can be selected via the main menu and it becomes immediately! effective. UK and US English, Dutch, French, German and Ukrainian are allready defined.
The main menu exists of "3D" buttons with ON / OFF appearances.
The drawing settings are displayed in fields on the top of the screen and the selection of the field allows you to change the setting via a menu or popup form.
The menus are in a strict logical order.


"Intelligent" forms are provided to enter multiple parameters. Menus and forms can be moved to a more convenient place in the drawing area.
DESI-III can be used with VESA compatible graphic cards with the screen resolutions: 800x600, 1024x768, 1200x1024 and 1600x1200 with a maximal screen area for the drawing itself . All pictures, appearing on this page, were grabbed from a 1024x768 screen.
Every action isn't prompted by some cryptic message, but is fully displayed in the prompt area at the bottom of the screen (see also the full screen capture image further in this article).


"Intelligent" forms are provided to enter multiple parameters. Menus and forms can be moved to a more convenient place in the drawing area.
DESI-III can be used with VESA compatible graphic cards with the screen resolutions: 800x600, 1024x768, 1200x1024 and 1600x1200 with a maximal screen area for the drawing itself . All pictures, appearing on this page, were grabbed from a 1024x768 screen.
Every action isn't prompted by some cryptic message, but is fully displayed in the prompt area at the bottom of the screen (see also the full screen capture image further in this article).


DESI-III uses a real database for the organisation of the drawings and drawing entities: which allows to use any stored drawing as a symbol in any other drawing. Symbols (drawings) can be composed of entities and symbols, which are composed of entities and symbols, which...: DESI-III uses a level structure in a drawing.


A symbol insertion in a drawing does not copy all entities of the symbol in the drawing itself, only one symbol entity record is added. This record contains the name of the drawing to be used as a symbol, its position, scale and rotation angle.

An additional advantage: if, for some reason, a symbol (drawing) is changed, all drawings that are using that drawing as a symbol are automatically adapted.
Line or symbol entities can use the level structure to import text attribute fields from the "parent" symbol in their own text attribute.


DESI-III supports many different drawing elements (entities): lines, texts, symbols, polygons, circular and elliptical arcs, segments and sectors, rectangles, triangles, curves and dimensions are taking one record in the database.


Each dimension is stored in one record which includes the dimension type, the dimension text, the dimension tolerances, the type of arrow heads, the number of extension lines, the extension line gap parameter, the position of the extension line attach points, the position of the level reference point and the level of the dimension, with the adavntage that every parameter can be adapted.
Hatched areas (the boundaries, -the hatching itself is defined by parameters-, chained items and macro symbols are compound entities (entities which are using more than one record of the database, but which are still regarded as one entity).


The position of the cursor is always visible in a relative, polar or absolute mode, depending on the users choice. DESI-III is always using floating point coordinates which allows to zoom in one step to a very small detail in a huge drawing.


DESI-III allows you to use formulas when a value must be given. These formulas can contain operators (+, -, *, /, **), variables (actually a value stored in one of the 26 "registers", indexed values, menu specifi- cations, trigonometric functions, results of stored formulas etc. Formulas can be complex but also small formulas can give astonishing results:


There is no linear relation between a bolt head size and the external threat diameter of a metric bolt, to place it in a tabel you see here the most common sizes: How to solve this.


Construction points can be defined:

with the mouse, with or without activation of a snap-entity function on the buttons above the drawing area.
by inputting absolute, relative or mixed coordinates with the keyboard,
Examples :

XR-10Y220 places the construction point 10 measuring units left from the current point at Y coordinate 220.

XR10YR-20.5~100 places the construction point at a distance of 100 units from the previous construction point and in the direction of a point with the relative position (10,-20.5).

50\=Select Y coordinate^15^20^25=+2*5 places the construction point on X coordinate 50 and the Y coordinate which is the selection in a popup menu. Actually the menu returns the option number (1, 2 or 3), 2 is added and then multiplied by 5 (resulting in the value, mentioned in the option text). This isn't very practical example but it demonstrates the possibilities of a value specification in DESI-III, as mentioned earlier.
or by "entity snap codes", using already drawn entities, eventually combined with coordinate inputs. These are keyboard inputs in combination with the cursor position to make entity snaps for end, tangent, perpendicular and radial points, midpoints, intersections, centers and division points, all without additional menu selections.
Examples :

P(ENTER) or P(SPACE) places the construction point on the nearest begin or end point of a line, arc, vertex of a polygon.

M(SPACE) places the construction point on the nearest midpoint of a line, arc, curve, side of a polygon etc.

D3(ENTER) calculates the position of the points where the nearest entity, line, arc or curve, would be divided in three pieces of equal lengths and places the construction point on the nearest "division point".

The entity snap code can also be combined with coordinate inputs :
Example :

MYR10(ENTER) places the construction point ten units above the midpoint of the nearest entity.
Some codes can influence mutually the positions of two sequential indicated points: T for tangential point, O for a radial point and L for a perpendicular point :
Examples :

Suppose the construction of a perpendicular line to an other line or side of a polygon. This construction demands the indication of the begin and end point : the position of the begin point of the line and for the end point the cursoris placed near the side of the polygon or the line and then a keyboard input : L(ENTER), or first the definition of the point near the line with the snap entity code and then the end point, it doesn't matter.

Suppose the construction of the smallest circle touching a line and an other circle arc. In that case the circle construction "2 Points" can be selected. For the first construction point the cursor is placed nearby the touching line and the snap entity code L(ENTER) to define a "perpendicular point" is inputted, the second construction point is defined near the circle arc with the snap entity code O(ENTER) to define a "radial point" . Both codes are now influencing the position of the mutual point which means that the first construction point will be on the line and the second point on the circumference of the circle in such way that the imagined vector through both points is the radial, a vector going through the center of the circle, which is also perpendicular to the line. Both points are giving the construction points for the smallest circle touching both elements.

The smallest circle between two circle arcs can be made if both touching circles are marked with the O(ENTER) snap entity code. you can use these codes also to construct the smallest touching circle around two other circles.

The animated GIF below demonstrates the power of these position codes:


DESI-III supports "invisible fence lines" in a drawing: up to 50 points can be used to define closed regions or open line chains for fence lines. When a drawing with fence lines is inserted as a symbol all line entities of the main drawing that have two intersection points with the fence lines of the symbol will be interrupted on the intersections if the coordinates of the intersections are different from each other or trimmed to the intersection when both intersections coincide, or have the same coordinates. See the "bolt" example further on this page.

DESI-III also REPAIRS the interrupted lines to one line when the symbol is (re)moved.


DESI-III supports many line construction methods :

Two point and three point lines. In the last case a construction line is drawn through a given point and with a given angle, the begin and end point are the horizontal, vertical or perpendicular projections on the construction line of two indicated points.
Broken lines (line chains),
Parallel line to a given line trough a point or multiple parallel lines at fixed or variable distances,
Multiple lines (up to hundreds at the same time can be defined) at variable or fixed distances (distances can be defined as being relative to the reference vector which is indicated by the construction points, or as distances between the vectors). Additional parameters as begin and/or end point offsets, given by distance, angle or in proportion to the length and even additional distances in begin and/or end point can be added. Multiple lines can also be specified in loops and mirror images or combinations of both. They can also be combined with other entities.
Example :

Complex multilines constructions can be defined via a keyboard entry. The entry ||{9\1::2}|2 and assuming that the indicated begin point has the coordinates (100,100) and the end point (200,100) will construct the following lines (100,100) - (200,100), (100,109) - (200,109), (100,91) - (200,91), (100,110) - (200,110), (100,90) - (200,90), (100,119) - (200,119), (100,81) - (200,81), (100,120) - (200,120) and (100,80) - (200,80).
This entry defines first that the distances are "additional" (between the multiple lines) with the || sign. Then it opens a loop, defined by }. The closing curled brace is followed by a | sign which means that also the mirror image of the lines defined in the loop is required. The next value defines that the loop must be executed twice. Inside the loop two distances, parsed by a \ are defined : the first line will use default drawing parameters, the second line will be dashed, defined in the second parameter. So the distances to the reference line for the constructed lines are 9, -9, 10(dashed), -10(dashed), 19, -19, 20(dashed), -20(dashed).
Intersection lines at fixed or variable angles, on fixed or variable distances or proportions of the intersected line.
Tangents to a circle or ELLIPTICAL arc through a point, parallel to an other line, intersecting an other line with a given angle or tangents to two circle arcs.
Multiple broken lines (up to hundreds) with automatic corner adaptation and multiple lines with an automatically interrupting of the touching lines.
Single and multiple chamfers defined by intersection distance(s) or chamfer length.
Angle division lines, dividing the angle between 2 indicated lines in two or more.


Many circle arc construction methods for full circles, arcs, sectors (pies) and segments:

Center + diameter: the position of the center point and a selected or given diameter.
Center + point: the position of the center point and a point on the circumference,
Center + tangent point: the position of the center point and the indication of the touching circle arc, line or side of a polygon,
Tangent point + point + diameter: the position of a point on the circumference, the indication of a touching circle arc, line or side of a polygon and a selected or given diameter,
Two tangent points + diameter: the indication of two touching lines, arcs or sides of polygons and the selected or given diameter.
Two Points + diameter: the position of two points on the circumference, a selected or given diameter and the relative position of the circle arc,
Two extreme points: the position of two extreme points,
Three points: the position of three points of the circumference,
Single rounding and multiple parallel fillets: defined by the touching lines or arcs and the arc diameter,


Many ellipse construction methods (also rotated ellipses) for full ellipses, arcs, sectors and segments:

Center + minmax point: a non-rotated ellipse defined by the position of the axis intersection point and a corner of the minmax box,
Two minmax points: a non-rotated ellipse defined by two opposite corners of the minmax box,
Two extreme points: a non-rotated ellipse defined by the position of an end point of the a and b axis,
Center + extreme point + point: a rotated ellipse defined by the position of the axis intersection point, an end point of an axis and a point on the circumference of the ellipse,
Center + axis lengths: one or multiple non-rotated ellipse(s) defined by the position of the axis intersection and the length(s) of the a and b axis,
Rotated circle/ellipse: an ellipse defined by the circle or ellipse "to rotate" and the rotation angles around x, y and z axis.


Many constructions for associative dimensions:

Single linear: a single point to point dimension,
Chained: multiple point to point dimensions on the same level,
Parallel: multiple dimensions, each starting at the same point but at different levels,
Coordinates: multiple dimensions on the same level, but referenced to a same origin point,
Diameter: a dimension for circle arc diameters,
Radius: to dimension the radius of circle arc,
Angle: to dimension the angle between two vectors,
Arrow: an arrow with shaft to make indications. Area dimension : let you calculate the total logical area of a number of areas surrounded by a boundary of drawing entities; the total area is calculated with respect to the level of the area regarding previous area indicated by their boundaries.
Suppose that a drawing must contain an associative area dimension text which expresses the area formed with the regions A, B, C, D and E as showed in the small drawing of below. The ORDER of indication of the regions defines the signs (+ or -) of the areas of each region. Each time a boundary of a region is closed, DESI-III will check if the closed region is inside a previous defined region. If this is the case, then the sign of the area is changed from "+" to "-" or the revers. DESI-III starts always with a possitive sign.

+---------------------------+ +----------------+
|A +---------------------+ | |B +----------+ |
| |C | | | |D | |
| | +---------------+ | | | | | |
| | |E | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | +---------------+ | | | +----------+ |
| +---------------------+ | +----------------+

If the boundaries are indicated in the order A, B, C, D, E; then the total area is A + B - C - D + E, because B is not inside A, so B is added, C is inside A, C is subtracted, D is inside B, D is subtracted, E is inside C, E receives the negative sign, but E is also inside A, so the sign of E changes again, and becomes positive, E is added.

If the order was A, D, B, E, C, the total area would be A + D + B - E - C; D is not in A; added, B is not in A or D; added, E is only in A; subtracted, C is only in A; subtracted.
DESI-III allows to mirror around a vertical and/or horizontal mirror line or to rotate the dimensions by multiples of 90ø, while the dimensions are keping respecting the drawing standards.

The example shows so—e of the possible arrow heads, which are redinable for each dimension in the drawing. If the length of the dimension line is shorter than the arrow heads, they are automatically replaced by tick's as you can see for the most left dimension "5" and the "dia 4" dimension. If the length of the threaded part is made longer by a "MOVE with TRIM" command, the tick's are automatically replaced by arrow heads.


Associative hatching: areas to hatch are defined by the indication of the entities that are composing the boundaries. DESI-III calculates the intersections between these entities, no tedious trimming and adapting of these elements is necessary. The entities can be (parts of) lines, curves, circle and elliptical arcs. "Islands" can be composed of the same elements and also closed chained items, polygons, circular or elliptical closed elements, closed curves and text entities and dimension texts! If you move parts of hatched areas or islands in a hatched area with the trim feature, the hatching is automatically adapted to the new bounds.

The animated picture below demonstrates the association of hatched areas and dimension lines and another thing: the automatic placement of tolerances and adaptation of text sizes: the lowest dimension text is edited to 4 k6\+0.009\+0.001 after DESI-III did propose 4 as dimension text. The length of the arrow line is automatically adapted to dimension text, even if the dimension text is changed.


Powerful text insertion commands: texts can be added and easily aligned in 17! different ways.

Text files can be imported, in which position, size, tabulation and alignment parameters can be defined.

The bill of materials (text attributes) can be extracted from the drawing, editted with the addition of some tabulation parameters and the text file reinserted in the drawing as a formatted list with columns and rows.


Macro-symbols are "multiuple line" constructions that are recognized by the program as one item, They can be seen as an OBJECT which can receive his behavior depending on the indication of the construction points and/or additional parameters. The "multiple line" has to be defined in a macro and can be called directly from a menu which can be organized in series of submenus.

Macro symbols are parameterized drawing elements which will make the creation of technical (and other) drawings much, much easier.

The DESI-III distribution contains a macro library with examples. One of the most spectacular let you draw bolts with or without a nut, with or without a grower, heads and nuts with two or three faces visible. The macro calculates the parameters of a nut depending on the thread diameter and the commercial standard lengths depending on the position of head and nut (the only two points the user has to define). The macro (more specifically: the fence lines defined in the macro) also interrupts the crossing lines and draws the bolt.

The left picture below is grabbed from the screen just before one has defined the position of the head, the right picture is grabbed just after the definition of the position of the nut, the only two points one has to define. (to make it more clearly, the red dots in the left drawing). Before one has selected the thread diameter, and the kind of view (2 or 3 face view, if one wants a nut with or without a grower or no nut at all).

Bolt1.gif Bolt2.gif

If you deletes the bolt, which is recognized as one entity, the lines are repaired (giving back one solid line). And you are again in the situation of the left picture.


Full transparent windows and viewports: At the same time up to four windows on a drawing can be defined on the screen. Each window can have a different zoom factor. You can switch from window to window to define the construction points of a single element, you can even zoom, pan and scroll the windows, or change the layout or sizes of the window viewports without an interruption of the construction of an entity.

Example :

Assume the construction of a circle trough three points. Well, after the definition of the first construction point, a selection of the ZOOM command is made and the option DIVIDE SCREEN is selected to define three viewports (pixel windows) on the screen. Then in each viewport a different zones (window) of the drawing is selected to be displayed. Hereafter the second construction point can be defined in one of the three windows. Then a decision to wipe out one of the windows by making it very small is made and the third construction point in one of the two left over windows is made, and the circle is traced.
The viewports/windows in the picture below are showing details of a front of the House of the Flemish Parliament in Brussels/Belgium. (Look at the cursors in each viewport, they are pointing to the same position). The lower right viewport is the active one.
The sensitive scrolbars to move and/or rescale the windows are displayed at the upper and left side. The selection of the white square between these scrollbars allows to change the layout of the viewports. Above the drawing area are the parameter fields and a selection of the field allows to change the parameters. From left to right: drawing name, format, measuring unit, scale, grid size h. and v., text size and font, line width and pattern, active layer with name. The recent versions have also on this row the snap entity buttons for end points, mid points, centre points, division points, quadrants etc.
Right of the drawing area are the main menu buttons. The left column contains the drawing aids: pointed grid (off), lined grid (off), snap grid (on), orthogonal long (on), orthogonal short (off), keep angle (off), display absolute coordinates (off), display relative coordinates (on = x/y, off = polar), semi-automatic line text attributes (off), semi-automatic symbol text attributes (off), area indication (on = rectangular, off = curve), unlimited undo entity manipulation, unlimited undo command, cursors (on = in all windows, off = only in active window). Up right are the manipulation commands : Group manipulations, split/explode items, move, mirror, copy, trim/stretch, delete, change, and give information about an entity. The lower buttons are the main entity add buttons for lines, special lines (tangents, parallel, multi ...), parametric entities (polygons, arcs, dimension lines etc.), symbols, text entities, macro symbols and at the low side the DESI-III task button (edit, plot, import, export etc.).


Powerful item editing functions: not only to adjust lines, arcs, elliptical arcs, dimension lines to an element or each other (join) but also CURVES without deformation of the curve. You can also change the color or line width, the line type or hatching type of an area, texts, their font and size while keeping position, dimension text, the arrow type, the extension line gap, the number of extension lines or level of dimension lines.

Example :

Originally 3 closed multicurves (2 are defined by 8 points, one by 4), and edited via the SPLIT command. All entities in the picture below are still curves!


DESI-III on his own is fail safe: no loose of a drawing if the computer main power fails, every item is written to the database file just before it appears on the screen.


Effective, powerful and ASSOCIATIVE text attributes to LINES and symbols. DESI-III let you include codes in the text attributes which will be replaced by the real lengths (with or without offsets) and/or angles of the line or rotation and/or scale of the symbol at creation or EXPORT time. In the second case you can still manipulate, stretch and trim lines, rotate them, and at export time, by the extraction of the text attributes, these codes will be replaced by the actual real length, rotation angle or scale of the element to which they are assigned. Sub elements in a symbol can also inherit fields of the attribute assigned to the symbol. Text attributes can be multiple assigned or provided at insertion time or interactively added later on.


Powerful user definable special line patterns are composed of scaled signs or characters with defined offsets. A special pattern definition can include menus and value indexed selectors and loops, w.o.w. unique features. The patterns can not only be used for lines but also for polygons in which case the patterns are adapted at the corners, arcs and curves and chained entities with a special attention to adapt the pattern to "curved" lines. You even can change the color/line widths in a pattern. The default line patterns are addaptive, with other words the line strokes and spaces are adapted to the line width.

Examples :


draws a "ticked" line. When you chose this pattern, you have to select the number of ticks that are to be placed in the middle of the line. Then the line is constructed and even if the line is stretched, trimmed or even splitted, the ticks will be always placed in the middle of the resulting line(s). The line is drawn with 0.35mm thickness, the ticks with 0.25mm.
The pattern defines between the = = a menu. This menu is only processed when the pattern is selected. The selection is incremented and stored in register I by the code 'I. The rest of the definition will be processed for each line drawn with the selected pattern (the part before | is the "preprocessing" part of the definition). The pattern itself starts with the sign ll, which traces a line from the begin point until the end point but places the pattern again at the begin point of the line. The 3rd parameter of the sign (the parameters are parsed by colons), which defines the color or line width has the value 3 (orange or 0.35mm). The signs are parsed by \. The next sign s creates a space. The first parameter of a sign is its size, which is now defined as the length of the line in mm ~ (this sign is recognized by DESI-III as the distance between the previously defined construction points), divided by 2 and decreased by the number of ticks (normally each sign has a default size of 1 mm), the pattern uses the ticks of scale 2, so the number of ticks gives the exact offset for the ticks from the middle of the line. Then a loop is started (loops are defined between { } and followed by the loop index, which is now the value in register I (the number of ticks). Sign u, a small stroke with an angle of 45ø, is defined with a scale factor 2 (first parameter), the second parameter (offset) is defaulted to 0, the third parameter, line pen/color, is 2 (0.25mm). This sign is repeated for I times. The next sign is parsed by \, two back-slashes, what means that when the pattern is exhausted, when the pattern has traced the last sign in the definition string, it does not start again at the first sign but it restarts at the first sign after the \, which fills the rest of the line with spaces with all parameters on default.

A pattern like j\l\k\o\p will be drawn as "jlkopjlkopjlkopjlkopjlkop...", a pattern like j\l\k\o\p will be drawn as "jlkopopopopopop...", a pattern like j\l{k\o}3\p\q will be drawn as "jlkokokopqpqpqpqpqpqp....". There are a lot more possibilities based on value dependent selectors, conditions etc.



draws a double line with in between a double left or right hatching.
Like in the previous example starts the definition with a menu, in which you select the distance between two lines of the pattern. The menu returns the selection number (not the number given as option, in fact any text can be specified as option), therefore 1 is added to the returned number and stored in register I, this value is also divided by 2 and stored in register J. That's the preprocessing. What follows is processed for each line drawn with the pattern: A full line from begin to end point at a distance J of the invisible vector between begin and end point, the pattern is again in the begin point. A full line from begin to end point at the distance -J. Double slash: the pattern repeats from the next sign. The pattern is defined in a selector [?i%2=1?u:i\s:-j\u:i^v:i\s:-j\v:i] with a condition as index: ?i%2=1? checks if the rest of the division by 2 of the value in register I is 1 or not (I = even or odd). If the rest is 1, the condition is true and the part u:i\s:-j\u:i of the selector is executed, else the second pattern, v:i\s:-j\v:i of the selector is executed. The ^sign is the separator of the "true" and "false" part of the selector. The "true" pattern draws left inclined strokes, the "false" pattern right inclined strokes. The pattern is each time one stroke with a scale factor equal to the distance, a space "back" s:-j in the pattern, and a second stroke. Then the selector is quit and the next sign is a space also scaled by the distance. Hereafter the pattern repeats itself, starting by the selector.



draws "strings of pearls". First 10 "pearls" of the same size, then 5 "pearls" with increasing diameter and next 4 "pearls" with decreasing diameter. Here after the pattern repeats itself.
The pattern defines three loops, in each a pattern of only one sign "b" is defined. The first loop is 9 times executed (sign at scale 1.0, 0.0m offset, line width 1), the second loop is 6 times executed. The sign is scaled by the loop counter (defined by the $ sign) which starts by one en which is incremented each time the loop is executed, thus the the symbol scale and the selected line color/width also varies from 1 to 6. The next loop uses also the loop counter but to decrease the scale factor and color from 5 to 2 and hereafter the whole pattern repeats itself.