curs

curs puts a composite edge, one that spans several blocks, on a 3D curve.

Syntax

curs 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. The edge may run across more than one block. A 0 in a minimum means the first reduced index of its direction and a 0 in a maximum the last.

What it does

curs places every vertex of the edge, end vertices and the ones between, at the point of the curve closest to it. Each simple edge between two neighbouring vertices is then placed as cur would place it. One command thus carries a whole run of blocks onto the curve.

When James applies it

Step 2 of the hierarchy, as cur. curs is legal only in the Part phase.

Rules James adds

  • The region must be an edge and the curve must exist, as for cur.
  • A spacing command can spread the nodes of the whole composite edge only if the closest points run in one direction along the curve, forward or backward. Where the direction turns, James stops with a geometry error that names the vertex.
  • An insprt renumbers an earlier curs like any command, so the edge still spans its whole length and the inserted vertex lies on the curve. A curs written after the insprt reads the new numbering and spans the extra partition.

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/175-curs-composite-edge/input.tg, which make test runs:

c curs places an edge that spans two blocks on curve 1 in one command.
curd 1 lp3 0 0 0 1 0.3 0 2 0 0;;
block 1 4 7;1 3;1 2;0 1 2;0 1;0 1;
curs 1 1 1 3 1 1 1
endpart

The i list has three entries, so the part has two blocks in i and the edge 1 1 1 3 1 1 spans both. The mesh has its seven nodes on the polyline. The end vertices lie at (0, 0, 0) and (2, 0, 0), and the vertex on the middle partition lies at its closest point on the curve, (0.9174, 0.2752, 0).

See also

  • cur: a single block’s edge.
  • insprt: adds partitions, which renumbers earlier edges.
  • curd: defines the curve.
  • Shaping: attaching edges to curves.

James 0.3.1.

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