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.

See also

  • cur: the same placement without the freeze.
  • cure: spreads the edge over the whole curve.
  • curd: defines the curve.
  • Shaping: attaching edges to curves.

James 0.3.1.

This site uses Just the Docs, a documentation theme for Jekyll.