curf
curf puts the nodes of one mesh edge on a 3D curve, as cur does, and then freezes them.
Syntax
curf 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
curf places the edge on the curve exactly as cur does. Once the edge’s placement is complete (after step 5), no later step moves its nodes; a vertex of the edge can still be projected at step 3. Projection onto a surface and every interpolation skip a frozen node and use its position as boundary data for the nodes around it.
When James applies it
Step 2 of the hierarchy, as cur. The freeze takes effect once the edge’s own placement is complete, so a spacing command on the edge is honoured along the curve first. curf is legal only in the Part phase.
Rules James adds
- The freeze holds against every later step: the projections of steps 6 and 9 and all the interpolations.
- The region must be an edge and the curve must exist, 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/173-curf-freezes-edge/input.tg, which make test runs:
c curf freezes the i edge on curve 1; the sfi that follows leaves its interior nodes alone.
curd 1 lp3 0 0 0 1 0.3 0 2 0 0;;
sd 1 plan 0 0 0.2 0 0 1
block 1 5 9;1 3;1 2;0 1 2;0 1;0 1;
curf 1 1 1 3 1 1 1
sfi ;;-1;sd 1
endpart
The curve is a polyline that rises from (0, 0, 0) through (1, 0.3, 0) to (2, 0, 0), and the plane is z = 0.2. The edge 1 1 1 3 1 1 runs along i, and the sfi projects the k = 1 face onto the plane. The IR holds the curve, the surface, a curf at step 2 and the sfi. The three vertices of the edge are projected at step 3, before the freeze takes hold, and lie at z = 0.2. The six nodes between them are frozen and stay on the polyline, for example node 3 at (0.5, 0.15, 0). Without the curf, every node of the edge lands at z = 0.2.