cure
cure spreads the nodes of one mesh edge over the whole of a 3D curve, from its first point to its last.
Syntax
cure imin jmin kmin imax jmax kmax curve
The arguments are those of cur: a region that is an edge and the number of a 3D curve that a curd defines before the part ends. A 0 in a minimum means the first reduced index of its direction and a 0 in a maximum the last.
What it does
cure puts the edge’s two end vertices at the two ends of the curve and places the nodes between them along the curve, spread by arc length. The edge’s own end positions do not matter. On a loop curve both ends lie at the first control point, so the edge covers the whole loop.
When James applies it
Step 2 of the hierarchy, as cur. cure is legal only in the Part phase.
Rules James adds
- The region must be an edge and the curve must exist, as for
cur. - The nodes are spread by arc length, as for
cur.
Diagnostics
- E0600: the region is not an edge.
- E0601: the curve number is not defined.
- E0102: a reduced index lies outside the part.
- E0106: a minimum is larger than its maximum.
Example
The script tests/corpus/174-cure-entire-edge/input.tg, which make test runs:
c cure spreads the i edge along the whole of curve 1, end to end.
curd 1 lp3 0 0 0 1 0.3 0 3 0 0;;
block 1 5 9;1 3;1 2;0 1 2;0 1;0 1;
cure 1 1 1 3 1 1 1
endpart
The block’s edge runs from x = 0 to x = 2, but the curve ends at (3, 0, 0). The mesh has node 1 at (0, 0, 0) and node 9 at (3, 0, 0), the two ends of the curve, with the seven nodes between them spread along it.