Node chains (Knotenketten)¶
Command: ndt(dist)
Sets the reference node-spacing. If nc_line or nc_circle specifies the number of nodes as 0, the number of nodes will be determined by the reference node spacing.
- Parameter
dist Distance in global units
Command: nc_line(x1, y1, x2, y2, nodes)
Create a node-chain
- Parameter
- x1,y1 Start-node coordinatesx2,y2 End-node coordinatesnodes No. of nodes
Command: nc_line_cont(x, y, nodes)
Continue a node-chain
- Parameter
- x,y End-node coordinatesnodes No. of nodes
nc_line_exp()¶
Command: nc_line_exp(x1, y1, x2, y2, nodes, delta, mode)
Create a node-chain with variable node-spacing.
- Parameter
- x1,y1 Start-node coordinatesx2,y2 End-node coordinatesnodes No. of nodesdelta Position of the node-spacing-change (0 < delta < 1)mode Mode of the node-spacing-change (possible values: ‘begin’, ‘end’, ‘both’)
- Examples:
Line between points p1=(x1,y1) and p2=(x2,y2) with 9 nodes.
nodes = 9
delta = a/(a+b) -- in the image below, delta would be 0.25
nc_line_exp(x1,y1, x2,y2, nodes, delta, 'begin')
which is the same, as using the following code:
xm = x1 + (x2-x1)*delta
ym = y1 + (y2-y1)*delta
nc_line(x1,y1, xm,ym, math.floor(nodes/2)) -- draws line 'a'
nc_line(xm,ym, x2,y2, math.ceil(nodes/2)) -- draws line 'b'
Using mode = 'end'
will automatically set delta = 1-delta
interally.
mode = 'both'
will split the line into three parts, instead of two.
Function: nodesgen = nc_circle(x1, y1, x2, y2, nodes)
Create a node-chain on a circular segment defined by the points p1=(x1,y1) and p2=(x2,y2) defined in Cartesian coordinates. The circular segment is created starting at p1 in a mathematically positive direction around the origin of the reference system. A full circle is created if p1 = p2, or if p2 is not specified as an argument. If nodes=0, the number of nodes is set according to the reference node-spacing; (see ndt command).
- Parameter
- x1,y1 Start-point coordinatesx2,y2 End-point coordinates (following the mathematically positive direction)nodes No. of nodes
- Return value
nodesgen Number of nodes created (in case nodes = 0)
Examples:
Arc between points p1=(x1,y1) and p2=(x2,y2) with 20 nodes
nc_circle(x1,y1,x2,y2,20)
Arc between points p1=(x1,y1) and p2=(x2,y2) with the node spacing defined by ndt. The number of nodes generated is returned in N.
N = nc_circle(x1,y1,x2,y2,0)
Full circle with 100 nodes
nc_circle(x1,y1,100)
Function: nodesgen = nc_circle_m(x1, y1, x2, y2, xm, ym, rm, nodes)
Create a node-chain on a circular segment defined by the points p1=(x1,y1) and p2=(x2,y2) around the centre pm=(xm,ym) defined in Cartesian coordinates with a radius rm. Some arguments are optional. The circular segment is created starting at p1 in a mathematically positive direction around the centre. A full circle is created if p1 = p2, or if p2 is not specified as an argument. If nodes=0, the number of nodes is set according to the reference node-spacing; (see ndt command).
- Parameter
- x1,y1 Start-point coordinatesx2,y2 End-point coordinates (following the mathematically positivedirection)xm,ym Middle-pointrm Radiusnodes No. of nodes
- Return value
nodesgen Number of nodes created (in case nodes = 0)
Examples:
Arc between points p1=(x1,y1) and p2=(x2,y2) with 20 nodes
nc_circle_m(x1,y1,x2,y2,xm,ym,20)
Arc between points p1=(x1,y1) and p2=(x2,y2) with the node spacing defined by ndt. The number of nodes generated is returned in N.
N = nc_circle_m(x1,y1,x2,y2,xm,ym,0)
Full circle with 100 nodes around the center pm=(xm,ym) starting with the point p1=(x1,y1).
nc_circle_m(x1,y1,xm,ym,100)
Full circle with 100 nodes around the center pm=(xm,ym) starting with the point p1=(x1,y1)with the radius r.
nc_circle_m(xm,ym,r,100)
Command: mirror_nodechains(x1, y1, x2, y2)
Mirroring nodechain structures including mesh. The points of the mirror axis are given in counter-clockwise direction to the corners of the area to be mirrored.
Point 1 is the lower right corner and point 2 the upper right corner of the area in the example. If it should be mirrored on the left edge, then point 1 is the upper left corner and point 2 the lower left. Only the starting and end point of the node chains have to be on the mirroring axis.
- Parameter
- x1,y1 Point 1x1,y2 Point 2 of the mirroring axis
Command: rotate_copy_nodechains(x1, y1, x2, y2, x3, y3, x4, y4, count)
Rotating and copying of the node chain structure including the mesh. The points 1 to 4 are to be given in counter clockwise direction to the area to be copied. Point 1 and 2 define the edge segment to be copied and points 3 and 4 define the borderline to be expanded.
- Parameter
- x1,y1 Point 1x2,y2 Point 2x3,y3 Point 3x4,y4 Point 4count No. of copies
Command: translate_copy_nodechains(x1, y1, x2, y2, x3, y3, x4, y4, count)
Moving and copying of the node chain stuctures including the mesh. The points 1 to 4 are to be given in counter clockwise direction to the area to be copied. Die Punkte 1 bis 4 sind bezüglich der Ecken des zu vervielfältigenden Gebietes entgegen dem Uhrzeigersinn anzugeben. Point 1 and 2 define the edge segment to be copied and points 3 and 4 define the borderline to be expanded.
- Parameter
- x1,y1 Point 1x2,y2 Point 2x3,y3 Point 3x4,y4 Point 4count No. of copies
Command: del_nc_single(x1, y1)
Deleting of a node chain including its superelements.
- Parameter
x1,y1 Point near the node chain to be deleted.