NX/UG二次开发—CAM—旋转复制程序C#

public static List RotateAndCopyOperation(Tag t_copyObject, double[] oPt, double[] vec, double angle, int count)
    {
        NXOpen.Part workPart = theSession.Parts.Work;
        NXOpen.CAM.CAMObject camObject = (NXOpen.CAM.CAMObject)theNXManager.GetTaggedObject(t_copyObject);

        //如果多个程序,则都放入这个容器内
        NXOpen.CAM.CAMObject[] objectsToTransform1 = new NXOpen.CAM.CAMObject[1];
        objectsToTransform1[0] = camObject;
        NXOpen.CAM.OperationTransformBuilder operationTransformBuilder1;
        operationTransformBuilder1 = workPart.CAMSetup.CreateOperationTransformBuilder(objectsToTransform1);


        NXOpen.Point3d origin1 = new NXOpen.Point3d(0.0, 0.0, 0.0);
        NXOpen.Vector3d normal1 = new NXOpen.Vector3d(vec[0], vec[1], vec[2]);
        NXOpen.Plane plane1;
        plane1 = workPart.Planes.CreatePlane(origin1, normal1, NXOpen.SmartObject.UpdateOption.WithinModeling);
        operationTransformBuilder1.Plane = plane1;

        operationTransformBuilder1.TransformType = NXOpen.CAM.OperationTransformBuilder.Transform.RotateAboutPoint; 
        operationTransformBuilder1.AngleValue = angle;
        operationTransformBuilder1.MoveCopyInstance = NXOpen.CAM.OperationTransformBuilder.Result.Copy;
        operationTransformBuilder1.NumOfCopyInstance = count;

        NXOpen.Point point1;
        NXOpen.Point3d coordinates = new NXOpen.Point3d(oPt[0], oPt[1], oPt[2]);
        point1 = workPart.Points.CreatePoint(coordinates);
        point1.RemoveViewDependency();

        operationTransformBuilder1.AnglePivotPoint = point1;

        NXOpen.NXObject nXObject2;
        nXObject2 = operationTransformBuilder1.Commit();
        
        NXOpen.NXObject[] objects1 = operationTransformBuilder1.GetCommittedObjects();
        List OperationVec = new List();
        for (int k = 0; k < objects1.Length; k++)
        {
            OperationVec.Add(objects1[k].Tag);
        }

        workPart.Points.DeletePoint(point1);
        operationTransformBuilder1.Destroy();
        return OperationVec;
    }

 

你可能感兴趣的:(C#,CAM)