UG/NX二次开发(C#)——多个面的选择

在UG二次开发过程中,通过宏录制的代码往往具有局限性,在进行参数的替换时,通常会遇到同时选择多个面的情况:此时需要我们修改代码为列表的形式进行参数的传递,接下来以抽取面特征为例进行说明:

1、抽取面特征时,往往需要同时抽取多个面,宏录制代码如下:(这里是需要修改的地方(需注释掉),就是把录制的面转化为参数)

    NXOpen.Features.SweepAlongGuide sweepAlongGuide1 = (NXOpen.Features.SweepAlongGuide)workPart.Features.FindObject("SWEEP(137)");
    NXOpen.Face face1 = (NXOpen.Face)sweepAlongGuide1.FindObject("FACE 484230 {(343.5987985229091,139.5023457675732,-0.0000000000001) REVOLVED(5)}");
    NXOpen.FaceBossPocketFacesRule faceBossPocketFacesRule1;
    faceBossPocketFacesRule1 = workPart.ScRuleFactory.CreateRuleFaceBossPocket(face1, true);

2、原来是单个面的操作,用参数替换时需要替换为多个面的操作,那就把所有的面都输进去,用foreach来完成:

        NXOpen.Face[] faces1 = new NXOpen.Face[0];//作为初始数组
        foreach (var fc in faces)
        {
            Array.Resize(ref faces1, faces1.Length + 1);//动态修改数组
            faces1[faces1.Length - 1] = fc;
        }

3、将定义好的faces数组替换源录制代码

      //原来的录制代码
        //NXOpen.FaceBossPocketFacesRule faceBossPocketFacesRule1;
        //faceBossPocketFacesRule1 = workPart.ScRuleFactory.CreateRuleFaceBossPocket(faces1, true);
        //用faces1数组替换的代码
        //public static void ExtractPlane(Face[] faces)//形参定义
        NXOpen.FaceDumbRule faceDumbRule;
        faceDumbRule = workPart.ScRuleFactory.CreateRuleFaceDumb(faces1);

4、以上(1、2、3)为修改的宏录制代码,修改完成后进行实参的定义,并调用函数。

            Face[] faces = new Face[0];
            //获得选择的面对象,都是TaggedObject类型,要将TaggedObject转化为Face类型,才能调用函数。
            TaggedObject[] taggedObjects = face_select0.GetSelectedObjects();
            foreach (var to in taggedObjects)
            {
                Array.Resize(ref faces, faces.Length + 1);
                faces[faces.Length - 1] = (Face)to;
            }
            ExtractPlane(faces);

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

comsol_ljl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值