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

2 篇文章 2 订阅
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;
    }

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恩·艾克斯·红

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值