Beispiel #1
0
 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));
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
            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);
            }
Beispiel #5
0
        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));
        }
Beispiel #6
0
 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);
 }