RTOPO – Documentation

Copyright (c) RCAD SOFTWARE SRL

Is useful in topography for:
– “Digital Terrain Modeling” (DTM) by “Triangulated Irregular Network” (TIN),
– representation (by 3DPOLY, SPLINE or BLOCK entities) and editing (modify, delete or add) of 3D points (“x y z code” format),
– triangulation,
– isolines (contour lines),
– cross sections,
– longitudinal profile,
– 2D entities (Line or PLine) projection over a DTM,
– conversion of TIN to a regular grid,
– conversion of existing isolines resulting from maps in points and then in TIN,
– calculation of the area of a triangulation, in 3D or 2D (in XOY plane), using the AREa command,
– calculation of the volume (of soil excavation, for example) between two triangulations (or one and a plane) using the VOlume command,
– intersection of two triangulations, using 3DInt command,
– transformation of a drawing containing entities as POint, PLine (3dpoly), Line, Block and Text, in points having codes and then in a triangulation (see Extract points),
– representation of the 4D point cloud: “x y z r g b” or “x y z s” formats (see Load points).
(AREa, VOlume and 3DInt are commands of the RCAD graphic core).

RTOPO is delivered together with the RCAD graphic core.

Select from menu or toolbar :

RTOPO
Load points
“c:\rcad\Load points example.txt”
Intermediary points
Triangulation
Isolines
Sections
Edit points
Settings
Redraw points
draw a PLine entity
make Fillet on PLine entity
Projection
select PLine

Points treating

Sets the drawing mode of the points (see Load points (POIntin)). “Lineweight” is not yet implemented.

Settings

Sets:
– text height – used to number, Z, code, longitudinal profile and cross sections, the scale of the inserted blocks; for longitudinal profile and sections (see Sections) the recommended value is 1.8
– axes step – the grid axis step (if it is 0, the axes are not drawn)
– intermediary points distance (see Intermediary points)
– longit.Yscale – drawing scale of the longitudinal profile
– autotranslation (see below)
– numbered codes – will be numbered starting with 1, the points having the codes introduced here (separated by comma “,”)
– draw number – will be drawn the number of each point
– draw z – – will be drawn the Z of each point
– draw code – will be drawn the code of each point.
“AutoTranslation” is useful when X or Y coordinates are >= 100000, because OPENGL works in single float precision (6 significant digits) and the displaying may be corrupted. “X translation” and “Y translation” will be added to coordinates when you load points and will be subtracted when you save or extract points.

Redraw points

Redraws the points according to Settings. Preliminarily, all entities will be erased.

Intermediary points

Generates intermediary points on the “3dpoly” and “spline” RTOPO entities according to “intermediary points distance” (see Settings). This aids the triangulation! “Intermediary points distance” must be the minimum distance between 2 entities “3dpoly” or “spline”. “3dpoly” and “spline” RTOPO entities are actually break lines for triangulation.

Load points (POIntin)

It loads and draws a file of points (of TXT type) having a format with 2, 3, 4, 5, 6 or 7 fields. The item type is given by the number of fields. The cases 4, 6 or 7 fields can be drawn in 4D (see below).
The separating character of the fields may be: space, tab or “, “. A file must have items with the same number of fields.
X and Y coordinates are affected by AutoTranslation setting.

Types of items that can be processed with RTOPO:
a) 5 fields: point_number X Y Z Code
for example: 1238 420385.445 658974.376 455.38 AX01
b) 4 fields: X Y Z Code (point_number will be 990; Code must begin with a letter)
c) 3 fields: X Y Z (point_number will be 991 and Code will be “L”)
d) 2 fields: X Y   (point_number will be 992, Z will be 0 and Code will be “L”)

The coordinates are considered in [m].
POINT, 3DPOLY and BLOCK entities will be generated.
“Code” contains 2 parts: the first part contains only letters (according to Points treating). The second part is an integer number. The points heaving the same code (letters+number) will be joined according to “Points treating”, with “3dpoly” or “spline”. “Spline” is actually a 3DPOLY entity, interpolated according to the SPLInesegs variable. The order of the connection is the one of the TXT file. If the order is wrong, you can correct this using Edit points command and the options: “code_After_point” or “code_Before_point”.
The “Symbol” is drawn by a block defined in “rtopo_simbol.dxf” file. You can modify this file in AutoCAD or IntelliCAD!

Modifying the Block in AutoCAD: BEDIT (Block Editor), select the block, OK, modifications, Close Block Editor: Save the changes, in the menu: “Save as” C:\RCAD\rtopo_simbol.dxf.

New Block in AutoCAD: around the point 0,0 and 1-2 units gauge, draw AutoCAD entities, Block command, Objects: Select objects and Delete option, Name, Base point 0,0 , in the menu: “Save as” C:\rcad\rtopo_simbol.dxf. Set then in RTOPO: “Points treating”, New button, fill Name, Treating (symbol) and Description. The Blocks will be inserted at the text_height scale.

The POINT entities will be drawn according to the settings of PDsize and PDMode variables (that can be entered from the keyboard or selected from the RCAD-Format menu). We recommend PDMode = 5 (for drawing speed and minimum memory used). The next recommended value would be PDMode = 2.

Before the loading of a new TXT file, are deleted all the existing entities!

Types of articles that will be represented 4D (considering the LEGend and STOred_points settings):
a) 4 fields: X Y Z s (s is a number: integer (color) or decimal (scalar)); if LEGend = 1, “s” is considered to be a scalar and the points will be drawn according to a legend of 20 colors, between the maximum and minimum values of “s”; if legend = 0, it is considered that “s” is a color (it will actually use the integer rest of “s” divided to 256; 0 color will turn in 1)
b) 6 fields: X Y Z r g b (r, g, b, represents the color in RGB format (Red, Green, Blue)); r, g, b will be converted first to a standard color, between 1 and 255; then, LEGend is set 0 and it will draw according to the standard color of each point
c) 7 fields: X Y Z r g b s or X Y Z s r g b (r, g, b, represents the color in RGB format (Red, Green, Blue); s is a decimal number (scalar)); if LEGend = 1, it will draw according to the legend of 20 colors, between the maximum and minimum values of “s”; if LEGend = 0, r g b will be converted first to a standard color, between 1 and 255; then it will draw according to the standard color of each point.

In the case of a 4D Draw, PDMode is automatically set to the value 5. As well, the points can not be edited (Edit points) or saved (Save points). The points can be saved using Extract points command and with the Other_points set to 2.
You can redefine the legend of 20 colors at the ISolines command!

Save points (POINTOut)

It saves all the points (which are loaded with Load points and possibly edited with Edit points) in a TXT file. Will not be saved the points coming from a DXF file or from the POint command! To save these points use Extract_points with Other_points=1 or 2.

Extract points (RTExtract)

It saves in a TXT file, only the selected points, in the “point_number x y z code” format. There are 4 options: Rtopo_points, Other_points, Text_insertion and Block_insertion. You can use any combination of values for these options.

1) Rtopo_points – if it is 1 will be saved points loaded with Load points and possibly edited by Edit points. If “Rtopo_points” is 0, will not be saved this kind of points.
This option is useful when there are many points and is more convenient to correct them in different parts or when in different areas of the land have been used the same codes (letters+number) for points.
To save only the points that are at a certain distance from an existing PLine:
– make the left and right Offset of the PLine (see Offset)
– draw a Line at the ends of the offsets,
– join the line and offsets in a single PLine (using Join command),
– run RTExtract and use CPline option to select entities.

2) Other_points – if it is 1 or 2, will be saved points not loaded with Load points and possibly edited by Edit points. For “Other_points” =1, the point code will be the layer of the point. For “Other_points” =2, the point code will be the color of the point and the format is “x y z s” (is useful when 4D points were loaded).
If “Other_points” is 0, will not be saved this kind of points.
“Other_points” =1 option is useful to transform several 3D Line/PLine entities in points with codes.
Previously, you must run the commands:
– MJoin, to join all segments in PLine entities,
– LAyer, Rename, File, to rename the layers as codes of the library (see Points treating); RLN file type must be created in advance.
– MEasure with the options: “Polyline” 0, “Continuous” 0 and “Single_layer” 0.

3) Text_insertion – if it is 1 will be saved the insertion points of the TEXT entities; Z-coordinate will be the one of the insertion point. If it is 2, Z will be the one mentioned in TEXT. If “Text_insertion” is 0, will not be saved this kind of points. The point code will be the layer of the TEXT.

4) Block_insertion – if it is 1 will be saved the insertion points of the INSERT (of block) entities; the point code will be the layer of the INSERT. If it is 2, the point code will be the name of the block. If “Block_insertion” is 0, will not be saved this kind of points.

Edit points (RTedit)

It edits interactively the points.

You can change:
– the position (X,Y), indicating the new values (explicitly or interactive), possibly with OSNAP options,
– Z: by value, of point (by copying the Z of another point indicated in an interactive mode), by increment or by interpolation between 2 or 3 points,
– the code,
– the code and the position relative to another point in “3dpoly” or “spline” (code_After_point, code_Before_point); the point will receive the code of another selected point and will be placed (in terms of the succession in “3dpoly” or “spline”) after or before the selected point,
– you can split “3dpoly” or “spline”; the first part ends at the selected point and the second part starts of the next point and receives the same letters of code and a number incremented by 1.

You can also make global changes to all points (“All of code”) having the same code (letters + number): delete, reverse order, move or change the code.

You can also insert or delete one point.

After each change, all the entities will be automatically deleted, except those who are in the layer “kept”. It follows that, if you want to make changes relative to some entities that you have uploaded from a file (with DXFIn) or by RCAD commands, these entities should be moved (see Modify-SELect) to the layer “kept”, to not be deleted after each editing in RTedit .

TRIangulation

It generates a triangulation of a set of POINT entities.
3DFACE triangular entities will be generated.
If you set “Offset to AX01 code”, temporary points will be generated on offset and after triangulation, the triangles having sides on offset and the temporary points will be erased. Use this option to avoid triangles which bind far points.
It can exist a drilling file “points_file_name.dri” having sequences (preceded by “***”) of the form:
***
point_number_1 delta_Z_1
point_number_2 delta_Z_2

An article contains a point number and a Delta_Z value added to his Z. Delta_Z (<0) is the distance between ground and the geological layer! Each sequence will be triangulated independently. The cross sections and the longitudinal profile will contain the intersections with these triangulations.
If ERAse_prev variable is 1 (see RCAD-Format Help), are deleted the point entities before the generation of 3DFace entities.
“3dpoly” and “spline” RTOPO entities (see Load points (POIntin)) are actually break lines for triangulation.
You can use also RTRIangulation command which generates a triangulation with required links for a selected set of closed Line (PLine) and POINT entities.

You can intersect two triangulations (TIN), if they have different colors, doing something like this:
– load the first triangulation using the DXFIn command or by the triangulation of a set of points
– change the color of the 3DFace entities by their selection and then choose a new color in the STANDARD TOOLBAR
– save the triangulation using DXFOut command
– load the second triangulation using the DXFIn command or by the triangulation of a set of points
– load the first triangulation using the DXFIn command
– launch the 3DInt command and select the first triangulation (as the first set) and then the second (as the second set) using the option COlor (are automatically selected all the entities that have the selected entity color).
Will result some intersection 3DPOLY entities and the 3DFace entities are divided into zones (colored differently) limited by intersections. You can then delete some zones or calculate the volume (using the VOlume command).

ISolines

It generates the intersection of 3DFACE entities with equidistant horizontal planes.
3DPOLY entities or colored-filled zones will be generated. You must run first TRIangulation or RTRIangulation.
3DPOLY may be optional interpolated and over them, Z will be written.
3DPOLY or colored-filled zones will be colored according to a legend.
You will enter the minimum and maximum Z for the isolines. In advance you can redefine the legend of 20 colors ( “Legend_color”) or you can return to the original colors ( “Reset”).
You will then enter the distance between the planes (resulting isolines (contour lines) in the form of 3DPOLY) or you can choose “Colored_filled” for divide in 20 intervals the distance zmax-zmin (resulting colored-filled zones).
In the case of 3DPOLY isolines you can choose between: interpolation and joined segments ( “Yes”), without interpolation and joined segments ( “No”) or without interpolation and not joined segments ( “noT_join”). The last option is useful when you initially opted for the interpolation and the insufficient memory message (“Error-malloc …”) is displayed. You will then enter the “Curvature” which represents percents with possible values between 5-100, used to establish the curvature of the interpolated lines. The smaller “Curvature” is the larger flattening (vicinity to the straight line).
You can set the number of line segments to be generated for each segment of interpolated 3DPOLY by the SPLInesegs variable.
If ERAse_prev variable is 1, are deleted the 3DFace entities before the generation of the isolines or of the colored-filled zones.
You can get a better approximation of the surface represented by the 3DFACE set, running first the SMooth_3dface command and then ISolines, without interpolation. In this way it is made an intersection with horizontal planes of a continuous 3D surfaces that passes through the vertices of the 3DFACE set.

Sections (RTSection)

It generates for a code: cross sections (1:1 scale) and longitudinal profile (1:1 scale on X and Longit.Yscale:1 on Y). The cross sections will be generated to the normal of the curve having the given code, up to the indicated distances, “left distance” and “right distance”.
In the longitudinal profile, the largest slope (%) is colored red. “S 2D|3D” are the cumulative distances from the first point: 2D (of the projection on XOY plane) and 3D.
If there are geological layers (see TRIangulation) will be drawn the intersections with them with the color 21.
If there are OG01 codes (left waterside) and OG02 (right waterside) will be also drawn (with the color 160) the water level, as follows:
– in the longitudinal profile, Z of the middle of the segment that connects the points of intersection between the normal to the curve (of the given code) and OG01 and OG02 curves; in table will be written Z of the middle of the segment and its deviation
– in the cross sections, the segment that connects the points of intersection between the normal to the curve (of the given code) and OG01 and OG02 curves.
In addition to OG01 and OG02, will be also drawn (if they exist) other waterside pairs of the form: OG04-OG05, OG07-OG08, OG10-OG11, … (repeatedly gather 3 to each code number).
To draw OG curves, you must give values large enough for ” left distance” and “right distance” (you can find the maximum distance between the curve of the given code and an OG curve, using “DIstance” command)!

You must run first TRIangulation.

3 input files, for the MicroPiste Setra program, are also generated:
1) “points_file_name-code.PO” having format: POI Ppoint_number X Y
2) “points_file_name-code-L.PO” having format: POI Ppoint_number S Z
S is the accumulated 3D distance from the first point.
3) “points_file_name-code.PRF” having format:
point_number X Y
XY_distance_from_axis Z [C] XY_distance_from_axis Z [C]
XY_distance_from_axis Z [C] XY_distance_from_axis Z [C]
. . .
XY_distance_from_axis represents the XY distance from the left (-) to right (+) between a cross section point and axis (the point having selected code). Character ‘C’ appear between the couples “XY_distance_from_axis Z” corresponding to the curves having the codes “CS01” (left road bed) and “CD01” (right road bed). The three files are generated in the same directory as TXT points file.

Projection (RTProjection)

It generates points with a certain code and step on one or more entities “Line” (PLine) and it generate the projection of these points over a triangulation.
The projection will be generated over the visible (layer is on) “3DFace” entities.
The projected entities may be “Line” or “PLine” which may contain arcs. A number of points with a certain step indicated by the user will be generated for each straight line or arc segment.The entities may be introduced interactively or may be imported by the DXFIn command. In case of DXFIn and if there are “AutoTranslation” (see Settings) and points loaded with POIntin, the imported entities will be translated automatically with the values “X translation” and “Y translation.”

You can round the vertex of the “Line” (“PLine”) entities using the RCAD “Fillet” command.
You can modify the “Line” (“PLine”) vertex selecting them by the mouse (RCAD “CHange” command) and indicating the new position.
After the entities selection you must enter:
– “Only_generation” – possible values 0, 1, 2;
0 – will generate points and will make their projection; only the projection of the points is preserved
1 – only the generation of the points will be made; this option is useful when the “Line” (PLine) entities are actually isolines (having real Z) resulting from scanned maps and you wish to obtain the 3D digital model of the terrain
2 – will generate points and will make their projection; keep both the projection of points as well as the generated points that do not have projection; this option is useful when you want to transform the digital terrain model from an irregular triangulation of points in a regular network of NxM points
– “Line_step” – the step used for the generation of points over a straight line
– “Chord_arc_Deviation” – admitted chord-arc deviation, whence arise the number of the points on the arcs
– “Minimum_Arc_step” – the minimum distance between 2 consecutive points generated on the arcs.
The distance between 2 consecutive points generated on the arcs will be the maximum of the “Minimum_Arc_step” and the step resulting from “Chord_arc_Deviation”. If you want a continuous and constant step on PLINE, use first the MEasure command with the options Continuous=1 and Polyline=1.
You’ll have to indicate in the final the points code which will result. If you project more entities, to the code will be automatically added the number of entity (from 1 to the maximum number of projected entities).
Because “Redraw points” is not made automatically after the projection, you can still launch RTSection command for the code used in projection. You can get in this way the cross sections and the longitudinal profile for an existing triangulation and a desired route.
If you use for projection a family of parallel straight lines (horizontal or vertical) having equal lengths and you set “Only_generation”=2, you can transform the digital terrain model from an irregular triangulation of points in a regular network of NxM points (having constant steps on the X and Y axis)! You can use for this, the horizontal or vertical straight lines of the axis grid!