internal static Snap.NX.Torus CreateTorus(Snap.Position axisPoint, Vector axisVector, double majorRadius, double minorRadius) { Snap.Orientation orientation = new Snap.Orientation(axisVector); Snap.Position center = axisPoint + ((Snap.Position)(majorRadius * orientation.AxisX)); Snap.NX.Arc arc = Create.Circle(center, orientation.AxisY, minorRadius); Snap.NX.ICurve[] curves = new Snap.NX.ICurve[] { arc }; return(new Snap.NX.Torus(Create.Revolve(curves, axisPoint, axisVector).NXOpenRevolve)); }
public static Snap.NX.Arc[] Copy(Transform xform, params Snap.NX.Arc[] original) { Snap.NX.Arc[] arcArray = new Snap.NX.Arc[original.Length]; for (int i = 0; i < original.Length; i++) { arcArray[i] = original[i].Copy(xform); } return(arcArray); }
private Snap.NX.Arc[] ArcArray(Snap.NX.Curve[] curveArray) { Snap.NX.Arc[] arcArray = new Snap.NX.Arc[curveArray.Length]; for (int i = 0; i < curveArray.Length; i++) { arcArray[i] = (Snap.NX.Arc)curveArray[i]; } return(arcArray); }
public Snap.NX.Arc[] IsoCurveU(double constantU) { Snap.NX.Curve[] curveArray = Create.IsoparametricCurve(this, Create.DirectionUV.U, constantU, 0.0254); double radius = Snap.NX.Face.GetSurfaceRadii(this)[0]; Snap.NX.Spline[] nxObjects = Enumerable.Select <Snap.NX.Curve, Snap.NX.Spline>(curveArray, (u) => { return(Snap.NX.Spline.Wrap(u.NXOpenTag)); }).ToArray(); Snap.NX.Arc[] arcArray = new Snap.NX.Arc[nxObjects.Length]; for (int i = 0; i < nxObjects.Length; i++) { arcArray[i] = SplineToArc(nxObjects[i], radius); } Snap.NX.NXObject.Delete(nxObjects); return(arcArray); }
internal static Snap.NX.Torus CreateTorus(Snap.Position center, Snap.Orientation matrix, double majorRadius, double minorRadius, Box2d boxUV) { Vector axisX = matrix.AxisX; Vector axisZ = matrix.AxisZ; Snap.Orientation orientation = new Snap.Orientation(axisX, axisZ); Snap.Position position = center + ((Snap.Position)(majorRadius * matrix.AxisX)); Snap.NX.Arc arc = Create.Arc(position, orientation, minorRadius, boxUV.MinV, boxUV.MaxV); Snap.NX.ICurve[] curves = new Snap.NX.ICurve[] { arc }; double x = matrix.AxisZ.X; double y = matrix.AxisZ.Y; double z = matrix.AxisZ.Z; string str = Snap.Number.ToString(boxUV.MinU); string str2 = Snap.Number.ToString(boxUV.MaxU); Snap.Number[] angles = new Snap.Number[] { str, str2 }; return(new Snap.NX.Torus(Create.RevolveSheet(curves, center, matrix.AxisZ, angles).NXOpenRevolve)); }
public Snap.NX.Arc[] IsoCurveU(double constantU) { Snap.NX.Curve[] nxObjects = Create.IsoparametricCurve(this, Create.DirectionUV.U, constantU, 0.0254); Snap.NX.Arc[] arcArray = new Snap.NX.Arc[nxObjects.Length]; for (int i = 0; i < nxObjects.Length; i++) { Snap.Position startPoint = nxObjects[i].StartPoint; Snap.Position endPoint = nxObjects[i].EndPoint; Snap.Position position3 = nxObjects[i].Position(((nxObjects[i].MaxU - nxObjects[i].MinU) / 2.0) + nxObjects[i].MinU); if (Snap.Position.Distance(startPoint, endPoint) <= 0.0001) { Snap.Position position4 = nxObjects[i].Position(nxObjects[i].MaxU / 3.0); arcArray[i] = Create.Circle(startPoint, position3, position4); } else { arcArray[i] = Create.Arc(startPoint, position3, endPoint); } } Snap.NX.NXObject.Delete(nxObjects); return(arcArray); }