pyNetwork
- class pygeo.pyNetwork.pyNetwork(curves)[source]
A class for manipulating a collection of curve objects.
pyNetwork is the 1 dimensional analog of pyGeo (surfaces 2D) and pyBlock (volumes 3D). The idea is that a ‘network’ is a collection of 1D splines that are connected in some manner. This module provides facility for dealing with such structures.
- Parameters
- curveslist of pySpline.Curve objects
Individual curves to form the network.
- getBounds(curves=None)[source]
Determine the extents of the set of curves.
- Parameters
- curveslist
Optional list of the indices of the curve objects to include.
- Returns
- xMinarray of length 3
Lower corner of the bounding box
- xMaxarray of length 3
Upper corner of the bounding box
- projectPoints(points, *args, curves=None, **kwargs)[source]
Project one or more points onto the nearest curve. This algorihm isn’t exactly efficient: We simply project the nodes on each of the curves and take the lowest one.
- Parameters
- pointsarray
A single point (array length 3) or a set of points (N,3) array
- curveslist
An optional list of curve indices to you. If not given, all curve objects are used.
- kwargsdict
Keyword arguments passed to curve.projectPoint() function
- Returns
- curveIDint
The index of the curve with the closest distance
- sfloat or array
The curve parameter on self.curves[curveID] that is cloested to the point(s).
- projectRays(points, axis, curves=None, raySize=1.5, **kwargs)[source]
Given a set of points and a vector defining a direction, i.e. a ray, determine the minimum distance between these rays and any of the curves this object has.
- Parameters
- pointsarray
A single point (array length 3) or a set of points (N,3) array
- axisarray
A single direction vector (length 3) or a (N,3) array of direction vectors
- curveslist
An optional list of curve indices to you. If not given, all curve objects are used.
- raySizefloat
The ray direction is based on the axis vector. The magnitude of the ray is estimated based on the minimum distance between the point and the set of curves. That distance is then multiplied by “raySize” to get the final ray vector. Then we find the intersection between the ray and the curves. If the ray is not long enough to actually intersect with any of the curves, then the link will be drawn to the location on the curve that is closest to the end of the ray, which will not be a projection along “axis” unless the curve is perpendicular to the axis vector. The default of 1.5 works in most cases but can cause unexpected behavior sometimes which can be fixed by increasing the default.
- kwargsdict
Keyword arguments passed to Curve.projectCurve() function
- Returns
- curveIDint
The index of the curve with the closest distance
- sfloat or array
The curve parameter on self.curves[curveID] that is cloested to the point(s).
- writeTecplot(fileName, orig=False, curves=True, coef=True, curveLabels=False, nodeLabels=False)[source]
Write the pyNetwork Object to Tecplot .dat file
- Parameters
- fileNamestr
File name for tecplot file. Should have .dat extension
- curvesbool
Flag to write discrete approximation of the actual curve
- coefbool
Flag to write b-spline coefficients
- curveLabelsbool
Flag to write a separate label file with the curve indices
- nodeLabelsbool
Flag to write a separate node label file with the node indices