Read & Write CSV
Read & Write CSV
The Read csv option allows you to define the belt path via a CSV file. The CSV input will contain the following entries for each path point separated by a comma:
X-Coord, Y-Coord, Z-Coord, NodeID, Fixity Strings, tnode1, trx1, try1, trz1, tnx1, tny1, tnz1, tnode2, trx2, try2, trz2, tnx2, tny2, tnz2, tpx1, tpy1, tpz1, tpx2, tpy2, tpz2, projection
The meaning of each entry is explained below:
| X-Coord, Y-Coord, Z-Coord | The (x,y,z) coordinates of the point |
| NodeID | The node label of the point if a node is used |
| Fixity Strings | Bitwise-encoded fixity and other point data (separated by colon ( : ) sign) Valid values - FIXED, KNOWN, RETRACTOR, B_POST_SLIPRING, FREE_SLIPRING, RADIUS_SLIPRING, TWIST, XSEC |
| tnode1 | Twist node N1 |
| trx1, try1, trz1 | Radial vector on side #1 of the point |
| tnx1, tny1, tnz1 | Normal vector on side #1 of the point |
| tnode2 | Twist node N2 |
| trx2, try2, trz2 | Radial vector on side #2 of the point |
| tnx2, tny2, tnz2 | Normal vector on side #2 of the point |
| tpx1, tpy1, tpz1 | Twist along the vector on side #1 of the point |
| tpx2, tpy2, tpz2 | Twist along the path vector on side #2 of the point |
| projection | Projection distance along radial vector from point |
Other rules regarding the CSV input are:
- All the information in one line in a CSV file corresponds to one belt path point.
- Only Node Coordinates or the Node Id are mandatory other values are optional.
- For most points it is not necessary to define data for side #2 as it is assumed to be the same as side #1. The exceptions are: at explicit sliprings, acute points, and where the spline shape of the path (red path vector) is changed.
- All the vectors ("Normal" to Belt axis and "Twist radial") are the direction cosines values.
- PRIMER will consider empty strings for any of the inputs as zero, except for the projection distance where an empty field means default projection distance.
- If a conflict is detected between the twist nodes and their corresponding twist vectors, the twist nodes will be used and the vectors will get overwritten. A message will be printed in the dialogue box if that happens.
- A comment line may be included anywhere in the file by starting the line with a $ sign.
Description of fixity strings :
| Name | Description |
| B_POST_SLIPRING | There is a B-Post slipring at this point. |
| FIXED | Point is fixed |
| FREE_SLIPRING | There is a free (eg pelvis) slipring at this point |
| RADIUS_SLIPRING | There is radius meshed slipring at this point |
| KNOWN | The belt path is known to pass through this point |
| RETRACTOR | There is a retractor at this point |
| TWIST | Point has twist vectors or twist nodes defined |
| XSEC | There is a database cross section at this point |
Sample CSV Format :
MODIFY mode
This mode permits point coordinates to be adjusted. You can do this in any permutation of the following three ways: Note : This is the original menu, the Advanced editor mode available in version 18 onwards gives a much superior way of modifying point locations. |
|||||||||||||
|
|
|
||||||||||||
In all cases both the visible path and the relevant coordinate in the editor will be updated dynamically so that you can see what is happening. |
|||||||||||||
Control Twist mode
(1) "Local Normal" method.
|
|
|
(2) "Path Twist" method
|
|
|
The method used to define the default twist is controlled in the panel. However in many cases these defaults are inadequate and it is necessary to adjust the twist of the belt path. |
|
Twisting a point manually using the mouse
In "Control twist" mode each path point has a "twist handle" attached to it, and by clicking and dragging on that handle you can adjust the twist of the path at that point. The axis that is twisted depends on the mouse button used:
Here the path at the lower (pelvis) slipring has been
rotated to
|
|
RADIAL twist, imposed by the left mouse button, changes the direction of the radial (outward) vector, effectively twisting it about the long axis of the belt at that point:
Radial twist can be applied at any path point. |
TRANSVERSE twist, imposed by the middle mouse button, rotates the transverse mesh lines about the radial (outward) vector at that point.
Transverse twist can only be applied at end points, retractor and slipring locations, and fixed points. |
Reporting and cancelling twist at a point.
The twist can be adjusted further at any time by dragging the handle to a new position.
To cancel twist at a point, resetting it to its default orientation,
click on the [X] symbol in the path editor.
|
Fixed points and acute points will have two [X] buttons, see point #7 in this figure, and also two twist handles on the plot. This is because the path twist on either side is independently controllable at these points.
Twisting a point using 2 nodes to define a vector
|
The following example illustrates how two twist nodes might be used to line up the belt path correctly at a slipring buckle prior to fitting a 2d belt.
|
Here it can be seen that the belt path is centred correctly in the buckle, but that its mesh is skewed. |
Here is the result of setting the two red nodes shown as "twist nodes: it is now correctly aligned. Note that the twist nodes do not locate the path point in space in any way, but just provide an orientation vector. |
The following rules apply to twist nodes:
-
Both nodes must be defined in order for the vector to be calculated and
applied. If only one node is present then no action will be taken.
-
The twist nodes do
not
define the path point position in any
way, this is defined either by a position node
nid
,
or by an explicit coordinate. The two twist nodes can be located anywhere
in space (although they will usually be near the belt path) as they simply
define an orientation vector. In addition the order in which the twist nodes
is defined is not important as the direction of the vector is reversed automatically
if required.
-
The way the vector is applied varies slightly depending upon whether the
path point is a fixed end or an intermediate point.
At fixed ends, including sliprings, the N1N2 vector is applied directly to become the path orientation at that point, permitting the belt path to be both twisted and skewed. This is equivalent to twisting the belt using a combination of both left mouse and middle mouse motions above.
At intermediate points only the belt twist is updated with no skew being applied, ie the transverse mesh lines remain approximately at right angles to the belt path and the N1N2 orientation vector just defines the plane in which the belt path lies. This is equivalent to twisting the belt using the left mouse only.
-
Cancelling belt twist using the
[x]
button(s)
in the belt path editor cancels belt twist, and hence also removes any twist
nodes at a point. Similarly applying a manual twist using left or middle mouse
buttons supersedes any twist applied using twist nodes, and also deletes them.
-
Twist nodes are "remembered" in the
*BELT
cards written after
*END
(see
Appendix E
). Since the coordinates of the nodes
at the time of fitting
are used to (re)compute twist vectors this provides a mechanism for defining
model-specific belt twist in different models.
- Twist nodes may be used at a slipring position, in which case they will determine the orientation of the slipring. If the slipring has been defined as being of the "B-Post" type then there is a potential conflict between the orientation as defined by the special B-Post logic and that defined by the N1N2 vector, in this situation the N1N2 vector "wins" and the B-Post logic is ignored, effectively treating the slipring as being "free".
Control Projection mode
The way a belt is normally fitted is that a basic (line) path is defined using points located at nodes on the structure, these are projected outwards to give some clearance, and an initial 2d belt path is calculated . By default all points are projected out by the same amount, in this example the default is 35mm but this can be changed using Point offsets in the Fitting Options panel , and this is generally successful for adult dummies. However when fitting to more complicated geometries it can be necessary to adjust the locations of individual points in order to fit the path through holes and around obstacles. It is possible to change a point's position using the mode above, but the disadvantages of that approach are two-fold:
|
|
|
-
Moving a path point away from its original node "breaks" the association
with that node, and if remeshing is to be performed when the dummy has been
moved this can cause problems since the belt fitter may not know how to move
that path point if it no longer knows about its underlying node. (It can interpolate
movement from adjacent points defined by nodes, but this becomes increasingly
unsatisfactory as these become more distant.)
- Modifying a path point involves either typing in new coordinates, or using mouse buttons to drag the point down some combination of global X, Y and Z vectors, and it is often cumbersome to achieve the desired position by this method.
achieves the same result by different means. Instead of changing the coordinates of the basic path point instead the distance by which this point is projected outwards to create the initial 2d fitting path is modified.
This retains the original node if defined, and it is generally easier to perform since the "Outwards" vector at a path point is usually the direction in which you need to adjust the position, so a single mouse-driven dragging operation will usually suffice.
Typical chest section of dummy |
Close-up of point #2 at shoulder showing the outward vector |
View of the same point from the side |
In control projection mode the mouse buttons work as follows:
- Left button drags the belt path along the outwards vector
- Middle button restores projection at the point to the default value.
You can also type a projection distance directly into each point's button, or restore it to the default projection.
|
In addition in all editor modes the popup menu for each point not only shows whether or not a point has a non-default projection set by adding a red "P" symbol, but also allows you to set and restore this directly. In this example point #3 has been given a non-default projection of 10mm. |
|
|
primer*mdumm_keyout_format: V13|V12|V11 |
|
DELETE mode
This mode lets you delete points. Either press the label button of the point to be deleted, or click on the point with the mouse (left button). With either method it is deleted immediately.
|

Once a point has been twisted away from its "natural" orientation
PRIMER
remembers this and shows it in two ways:
As an alternative to dragging the twist handles using the mouse, which
is an interactive-only process, you can define the twist vector at a point
by defining two "twist nodes", which define a vector N1N2. This
has two advantages: