public static List<Tag> 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<Tag> OperationVec = new List<Tag>();
for (int k = 0; k < objects1.Length; k++)
{
OperationVec.Add(objects1[k].Tag);
}
workPart.Points.DeletePoint(point1);
operationTransformBuilder1.Destroy();
return OperationVec;
}