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
ndsis 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
- res, drs, as and das: the spacing commands that work.
- Compatibility: the commands James refuses.