Point tools: reverse order, mirror, export / import CSV
The menu Point tools of every robot (KRC, VKRC, VFanuc, ABB, Yaskawa) contains functions which change many motion points of a program at once:
English DReS - Point Tools: Reverse Path, Mirror for the Left/Right Robot, CSV Export and Import (YouTube, English)
Deutsch DReS - Punkt-Werkzeuge: Bahn umkehren, Spiegeln (links/rechts), CSV-Export und -Import (YouTube, Deutsch)

Functions for selected points work on the selected lines of the program text (not on the point table). Without a selection the message explains how to select:
Message without a selection – how to select the points (Match configuration of selected points, ABB).

▲ Reverse order of selected points

Select the motion points (whole lines are taken, a point is taken with all its lines) and choose Point tools » Reverse order of selected points. The points are put into the reverse order - e.g. to create the way back of a path from a copy of it.
Before
After: the coordinates and the SPS commands in the reverse order, the names P1 - P4 are kept

▲ Mirror selected points

Point tools » Mirror selected points... mirrors the coordinates of the motion points of the selection. The function needs the basic licence of the robot type. The dialog shows a 3D preview: the robot, the mirror plane, the original points (blue) and the mirrored points (orange). Drag with the mouse to rotate the view, the wheel zooms; buttons 3D, Top, Front, Side.
ModeDescription
for the mirrored robot (left / right) The cell is mirrored at a plane between two robots - e.g. the program of the left robot for the right robot. In the base (user frame, work object, coordinate system) of the point: Y → -Y, the orientation is mirrored so that the frame stays right-handed. The configuration is recalculated for the axes 1, 4 and 6 of the mirrored robot:
  • KUKA (VKRC, KRC): Turn from the axis values of the point (needs the robot model, tool and base data of the robot); Status is not changed,
  • Fanuc: the turn numbers of J1, J4, J6 in CONFIG change their sign, the letters stay,
  • ABB: cf1, cf4, cf6 from the axis values (robot model needed); cfx is not changed,
  • Yaskawa: RCONF is not changed.
Points with axis values (E6AXIS, J, jointtarget, pulse) are mirrored too: axes 1, 4, 6 negated. The tool and base numbers are not changed - the mirrored robot needs mirrored tool and base data. The preview can show the robots facing each other or side by side - the coordinates are the same.
at a plane of the base (same robot) The points are mirrored at a plane of their base for the same robot, e.g. for a symmetric part: plane YZ (X → -X), XZ (Y → -Y) or XY (Z → -Z) and its offset. Position and orientation are mirrored, the configuration is not changed - check the reachability and the configuration of every point. Points with axis values are skipped.

▲ Export points to CSV / Import points from CSV

KRC / VKRC / VFanuc / ABB / Yaskawa » Point tools » Export points to CSV... saves the motion points of the selection - or of the whole program, when nothing is selected - in the order of the program. Import points from CSV... inserts the points of a CSV file as new joint motions after the current line: PTP (KRC, VKRC), J (VFanuc), MoveJ (ABB), MOVJ (Yaskawa). Both functions need the licence of the robot editor (KRC, VKRC, VFanuc, ABB or Yaskawa). Export points to XLSX... saves the same table as an Excel workbook (one sheet named after the program, bold and frozen header, numbers as number cells) - with the same licence as the CSV export. Axis points are converted to X, Y, Z, A, B, C with the forward kinematics, the message says how many.
RobotColumns of the export
VKRCPoint; Motion; X; Y; Z; A; B; C; S; T; E1..E6; Tool; Base; VB; VE - a circular motion gives two rows (auxiliary point ..._AUX and end point)
VFanucPoint; Name; Motion; Type; X; Y; Z; W; P; R; Config; UF; UT; E1..E3 - Type C = cartesian, J = axis values (J1..J6 in the columns X..R)
KRCPoint; Motion; X; Y; Z; A; B; C; S; T; E1..E6; Tool; Base; Vel; Cont; Apo_Dist; Ipo_Frame - local and global points; axis points (E6AXIS) are converted with the kinematics of the robot (without the robot configuration they are skipped with a message); a circular motion gives two rows
ABBPoint; Motion; X; Y; Z; Q1..Q4; Rx; Ry; Rz; CF1; CF4; CF6; CFX; EAX_A..EAX_F; Tool; Wobj; Speed; Zone - robtargets of the motions (Rx, Ry, Rz = Euler angles ZYX of the quaternion, as in the point editor); motions with jointtargets (MoveAbsJ) and targets not declared in the module are skipped with a message
YaskawaPoint; Motion; Group; X; Y; Z; Rx; Ry; Rz; RCONF; Tool; User; Frame; VJ; V; PL; External - RECTAN positions as written, PULSE positions converted with the kinematics of the robot; points that cannot be converted (no kinematics data, TOOL frame, robot on a base axis) are skipped with a message
The file is written with the separator ; and a decimal point - it can be opened in a spreadsheet program. The import reads: The orientation columns keep the meaning of the controller that wrote the file (KUKA A, B, C = rotation about Z, Y, X; Fanuc W, P, R and Yaskawa Rx, Ry, Rz = rotation about X, Y, Z; ABB quaternion Q1..Q4). Import points into a program of the same robot type - between different robot types the orientation and the configuration must be converted.
OptionDescription
Tool / Base, UT / UFTool and base of the new points without Tool / Base (UT / UF) in the file.
VB / SpeedVelocity of the new PTP / J motions without VB (Speed) in the file.
VE / TerminationApproximation (VKRC) or termination FINE / CNT (VFanuc) of the points without VE (Termination) in the file.
S, T / CONFIGUsed only for points without S / T or CONFIG in the file. The default values come from the motion point next to the cursor.
KRCTool, Base, velocity [%] and approximation (exact stop or CONT C_PTP) of the new PTP motions, S / T. The points get the next free number n; the names of the declarations in the .dat of the program follow the motion point next to the cursor (e.g. PTP P5 ... PDAT5 → XPn, FPn, PPDATn; also the variants P5 and PP5 for the motion data). Without such a point the names of the KUKA standard are used: Pn with the motion data PDATn.
ABBtooldata, wobjdata, speeddata and zonedata of the new MoveJ instructions and confdata (cf1, cf4, cf6, cfx) of the points without it. The robtargets are declared at module level in the style of the module (e.g. LOCAL CONST robtarget).
YaskawaTool, user frame (or robot frame), VJ [%], PL and RCONF of the new MOVJ lines. The points are declared as RECTAN positions Cnnnnn; jobs with more than one control group are refused.
To create a new program from the points of another one:
  1. open the program, select the points (or nothing for all points) and choose Export points to CSV...,
  2. create a new program with File » New (e.g. VKRC4 UP / VFanuc UP),
  3. place the cursor in the line after which the points are to be inserted and choose Import points from CSV....
Check the new points (reachability, configuration, external axes) in the point table and in the 3D view before the program is run on the robot.

▲ Transform selected points

Point tools » Transform selected points... moves and rotates the motion points of the selection (or of the whole program, when nothing is selected) - e.g. when a fixture or a part has been moved by a few millimetres. In the window enter: The shift and the rotation always start with 0, only the coordinate system and the pivot are remembered. The 3D preview shows the original points in blue and the result in orange (rotate with the mouse, zoom with the wheel, views 3D / Top / Front / Side). Values which do not change keep their original text in the program; the new values are written without exponent.

Before the change the inverse kinematics of the robot checks every point. Points which are not reachable or reachable only with another configuration (e.g. reachable with S 2, T 3) are listed and you choose Transform all, Only points without problems or Cancel - the configuration is never changed silently. Axis points (E6AXIS / AXIS, Fanuc J, ABB jointtarget, Yaskawa PULSE) are converted with the forward kinematics, transformed and calculated back with the solution nearest to the old axes. Points whose tool or base is not defined in the archive, points with an external TCP and global points (KRC $config.dat) are not changed; they are named in the message. The function needs the licence of the robot editor.
RobotRemarks
KRC, VKRCPoints of a robot on a linear unit (ERSYS E1) are supported. Save the program afterwards.
VFanucUF:F / UT:F, remote TCP and frames which are not set in the backup are skipped.
ABBThe new confdata is calculated from the axes. A moving work object (ufmec) and a stationary tool (robhold) are not supported. All changes are one Undo step.
YaskawaPulse points are calculated back to pulses with the parameters of the controller.

▲ Match configuration (S/T) of selected points

Point tools » Match configuration (S/T) of selected points... sets the configuration of the selected points (KUKA S and T, Fanuc CONFIG, ABB cf1 / cf4 / cf6 / cfx, Yaskawa RCONF) so that the robot moves from point to point with the smallest motion of the axes - for example after points have been mirrored or imported, or when an axis 4 or 6 turns by 360 degrees between two points. The first reachable point (in KRC also an axis point) is the reference. A point keeps its configuration when it is reachable with it and the motion of the axes is not larger than with another one. When no point can be the reference, the message names the reason for every point (e.g. a tool or base which is not set in the archive).

The window shows a table: point, old and new configuration, the largest motion of an axis with the old and with the new configuration, and remarks. Only changed rows have a check box - uncheck the points which must keep their configuration. A change of the main configuration (KUKA S, Fanuc N/F U/D T/B, ABB cfx, Yaskawa l, m, n) is highlighted in yellow with a red warning above the table, because the robot then reaches the point with another arm posture. If nothing has to be changed, the window says so (0 of n). The coordinates X, Y, Z, A, B, C are not changed; the new configuration is written to the program files when the program is saved.

▲ Rename points (KRC, ABB)

KRC » Rename points... and ABB » Rename points... give the points of a program new names. The table shows the name, the new name (double click to edit) and the type / use of every point. A pattern with a counter {n} (start, step, number of digits, e.g. P_{n} = P_010, P_020 ...) can be applied to the selected rows (Apply to selected, without selection to all); Reset restores the old names. The preview lists every line which will be changed - it is made by the same function which then changes the files. Rename is enabled only when all new names are valid: rules of the identifier, reserved words, duplicates and collisions with other names (upper and lower case does not matter).

RobotWhat is changed
KRCLocal points of the .dat file (not GLOBAL). A point of an inline form is shown with its name (e.g. PICK for XPICK / FPICK). The declarations X... and F..., the motion data which is named after the point (PPICK → PNEW; PDAT5 and DEFAULT stay), the text and the %P list of the fold header, and all identifiers in the code are changed; comments and the names Tool[n]: / Base[n]: stay. Maximum 24 characters with the prefix X. The function works on the saved files (it asks to save a modified program), makes backup copies and loads the program again; the rest of the files stays byte by byte unchanged.
ABBrobtarget / jointtarget of the module. Declarations without LOCAL which are used in other modules are locked (reason in the tooltip). The changes in the module are one Undo step; strings and comments are not changed.
The function needs the licence of the robot editor. Other programs, documentation or comparisons with the archive of the robot which use the point names keep the old names - check them.

▲ Tool / base usage (all robots)

KRC / VKRC / VFanuc / ABB / Yaskawa » Tool / base usage... shows which tools and bases (frames, work objects) are used by the programs of the robot. The backup directory is searched upwards from the open program and all programs of the robot are read. The tree lists every tool and base with its name from the backup, the number of points, of other uses and of programs, and below them the programs which use it. Tools and bases which are defined in the backup but not used by any program are shown in grey (not used). A double click on a program opens it in the editor. The window only reads the files; backup copies of DReS (~name) are skipped. Use it before a tool or base is changed: you see at once which programs have to be checked.
RobotBackup directoryPointsOtherNames
KRCwith System\$config.dat motion points: TOOL_NO / BASE_NO of the FDAT data (local, GLOBAL, $config.dat) $TOOL=TOOL_DATA[n], $BASE=BASE_DATA[n], BAS(#TOOL / #BASE, n) $config.dat
VKRCwith System\$config.dat motion folds: RobWzg (or ExtWzg, shown as Tool Ext n) and Base as KRC, in the code of macros and programs $config.dat
VFanucwith SYSTEM.VA positions of the program: UT and UF of group 1 in /POS UTOOL_NUM=n, UFRAME_NUM=n comments of the tool and user frames of the backup
ABBwith system.xml instructions with a tooldata argument (MoveL, MoveJ, TriggL, own motion routines ...); the work object from \WObj, wobj0 without it assignments and other uses of the names declaration (PERS / CONST / VAR) and module
Yaskawawith SYSTEM.SYS robot positions C of the job: ///TOOL before the positions, the user frame ///USER only for positions in user coordinates TOOL#(n), UF#(n) in the instructions TOOL.CND, UFRAME.CND
When the backup directory is not found, only the directory of the program is searched and the names are not shown. The function needs the licence of the robot editor.

▲ Change user frame / work object / tool for selected points (Yaskawa, ABB)

Yaskawa » Change user frame / tool for selected points... and ABB » Change work object / tool for selected points... are in the same place as Change base / tool for selected points of VKRC, KRC and Fanuc (before Renumber & clear points). The dialog asks for the new number (Yaskawa) or name (ABB) and has the option Recalculate the coordinates (the robot keeps its positions).
RobotWhat is changed
Yaskawa RECTAN positions are recalculated with TOOL.CND / UFRAME.CND. PULSE positions keep their axis values, only the tool number changes (a user frame does not apply to PULSE). The //POS declaration gets the ///TOOL, ///USER, ///POSTYPE lines it needs. User frame 0 = ROBOT frame. The main menu uses the selected lines of the job.
ABB The tool or the \WObj argument of the selected instructions (\WObj:= or a positional argument of user procedures) and, with recalculation, the robtargets (one-line declarations in the module, literals). Targets used also by other instructions or with other frames are not changed. If the instructions would not be recognized after the change, the whole change is undone.
ABB: Change work object for selected points – five RF_LIN instructions selected; the robtargets are recalculated so that the robot keeps its positions.
Without recalculation the robot goes to other positions - check the program in T1 / at reduced speed.

Set equal ... for selected points (context menu of the point table)

Yaskawa: Set equal Tool value for selected points – the same dialog as Change tool for selected points in the Yaskawa menu.

▲ Renumber & clear points

After many changes (inserting, copying, reversing, deleting motions) the point numbers of a program are mixed and the point data of deleted motions stays in the program. Renumber & clear points in the menu of the robot (VFanuc, KRC, ABB, Yaskawa - next to the other point functions) puts it in order: Before anything is changed, a window shows how many points get a new number and which unused declarations will be removed - the change is made only after Yes. When there is nothing to change, a message says so.
RobotWhat is renumbered and removed
VFanuc The positions P[n] of the motion lines get the numbers 1, 2, 3 ...; the name of a position (P[3:APPROACH]) is kept. The position data not used by a motion line is removed.
KRC Points declared in the .dat of the program as XPn (E6POS, E6AXIS, POS, AXIS) get the numbers P1, P2, P3 ... Their frame data FPn and the motion data of their folds follow with the naming of the file (KUKA standard PDATn / CPDATn, also Pn and PPn); shared motion data such as DEFAULT is not renamed. The headers of the motion folds (shown text and the inline form data) are changed too, so the folds can still be opened in the inline form. Declarations of points, FDAT, PDAT and LDAT in the .dat which are not used in the .src are removed.
Not changed: points with other names (XHOME, XPICK ...), GLOBAL declarations, FRAME data.
The function works on the saved files: a modified program has to be saved first (the program asks). The .src and the .dat file are both changed on the disk - backup copies of both are created - and the program is loaded again.
ABB Module robtargets whose name matches the point name template of the point editor (template, counter, step and width - default p0010, p0020 ...) get new names in the order of use. Module robtargets and jointtargets not used by the module are removed. Other names (pHome) are kept. Names in comments and in strings are not changed.
Declarations without LOCAL are visible to all modules of the task: when a module of the same directory uses such a target, it is neither renamed nor removed (listed in the message).
One step for Undo.
Yaskawa The teach positions C, BC and EC get the numbers 00000, 00001 ... in the order of their first use between NOP and END. Unused positions are removed; the //POS section is written again in ascending order with the ///TOOL, ///USER, ///POSTYPE, ///RECTAN / ///PULSE and ///RCONF lines every point needs, and ///NPOS is updated. Comment lines are not changed. The position variables P, BP and EX are global and are not changed.
When the job uses a position which is not declared in //POS, nothing is changed and the message names the position. The motion lines can be restored with Undo; the //POS section (not shown in the editor) only by closing the job without saving.
VKRC has no menu item for this: the VW standard generator numbers the points of a Folge / UP in the order of the program and removes the unused point data every time the program is saved. This can be switched off and on in the settings - see the option below.

Clear and renumber points on save

The automatic renumbering and clearing can be switched on and off in the settings - separately for every robot type: Settings » Configure » VKRC / KRC / Fanuc / ABB / Yaskawa » General » Clear and renumber points on save (below the options for the syntax check). When the option is switched on, the same is made automatically every time the program is saved - without the confirmation window: Use the option only for your own programs. Renumbering changes the names of the points: lists and other programs which use point names (e.g. global points, documentation, comparisons with the archive of the robot) do not fit any more.