nds

nds is meant to space the nodes along an edge by a density function. In this version of James it is read and checked, and then refused for want of ndd.

Syntax

nds imin jmin kmin imax jmax kmax direction density

The first six numbers are a region, as for lin. direction is i, j or k. density is the number of a density function.

What it does

A density function comes from the command ndd, which James does not support, so no script can define one. James reads every argument of nds, reports a region with no length with its usual code, and then refuses the command. The compatibility chapter lists nds and ndd.

When James applies it

nds belongs to the family of the spacing commands, which work at steps 4 and 5, but James refuses it while it builds the part, before any step runs. nds is legal only in the Part phase. James refuses it in the Control and Merge phases (E0412).

Rules James adds

  • Every nds is an error (E0904): the density function it names is not defined.
  • A second error, E0905, is for a density function whose data does not fit the edge. No script can reach it in this version.
  • A region with no length in the direction is an error (E0900).

Diagnostics

  • E0102: a reduced index lies outside the part.
  • E0106: a range of the region is written high to low.
  • E0904: the density function is not defined.
  • E0900: the region has no length in the direction.

Example

The script tests/corpus/081-nds-undefined-density-rejected/input.tg, which make test runs:

block 1 5; 1; 1;
0 4;
0;
0;
nds 1 1 1 2 1 1 i 1
endpart

The region 1 1 1 2 1 1 is an edge along i, so the region is fine. The density 1 is not defined. James prints this and exits with 1, as tests/corpus/081-nds-undefined-density-rejected/expected.diag.txt holds:

input.tg:5:19: error [E0904]: nds density function 1 is not defined
james: 1 error, 0 warnings

See also


James 0.3.1.

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