欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > C# NX二次开发:矩形阵列和线性阵列等多种方法讲解

C# NX二次开发:矩形阵列和线性阵列等多种方法讲解

2025/3/17 11:46:35 来源:https://blog.csdn.net/m0_53104033/article/details/146273982  浏览:    关键词:C# NX二次开发:矩形阵列和线性阵列等多种方法讲解

大家好,今天讲一些关于阵列相关的UFUN函数。

UF_MODL_create_linear_iset (view source):这个函数为创建矩形阵列。

intmethodInputMethod:
0 = General
1 = Simple
2 = Identical
char *number_in_xInputNumber in XC direction.
char *distance_xInputSpacing in XC direction.
char *number_in_yInputNumber in YC direction.
char *distance_yInputSpacing in YC direction.
uf_list_p_tfeature_listInputList of selected CMOD features.
tag_t *feature_obj_idOutputFeature object identifier of created linear iset

当然这个方法,是满足当你想要X方向和Y方向同时有阵列对象才可以使用,如果你只想单方向阵列,这样的方法是不行的,所以我下面用NXOPEN封装了下面这个方法:

 /// <summary>
    /// 线性阵列
    /// </summary>
    public void LinearArray(Tag[] features,string arraynumber,string distance, Vector3d vector3DZ)
    {
        TaggedObject taggedObject = NXObjectManager.Get(features[0]);
        NXObject nXObject = (NXObject)taggedObject;
        NXOpen.Features.Feature nullNXOpen_Features_Feature = null;
        NXOpen.Features.PatternFeatureBuilder patternFeatureBuilder1;
        patternFeatureBuilder1 = workPart.Features.CreatePatternFeatureBuilder(nullNXOpen_Features_Feature);
        NXOpen.Unit unit1;
        unit1 = patternFeatureBuilder1.PatternService.SpiralDefinition.RadialPitch.Units;
        patternFeatureBuilder1.PatternMethod = NXOpen.Features.PatternFeatureBuilder.PatternMethodOptions.Simple;
        patternFeatureBuilder1.CreateReferencePattern = false;
        patternFeatureBuilder1.PatternService.RectangularDefinition.XSpacing.NCopies.SetFormula(arraynumber);
        patternFeatureBuilder1.PatternService.RectangularDefinition.XSpacing.PitchDistance.SetFormula(distance);
        NXOpen.Features.Feature[] objects1 = new NXOpen.Features.Feature[1];
        objects1[0] = (Feature)nXObject;
        bool added1;
        added1 = patternFeatureBuilder1.FeatureList.Add(objects1);
        patternFeatureBuilder1.ParentFeatureInternal = false;
        NXOpen.Point3d origin3 = new NXOpen.Point3d(0.0, 0.0, 0.0);
        NXOpen.Vector3d vector2 = new NXOpen.Vector3d(vector3DZ.X, vector3DZ.Y, vector3DZ.Z);
        NXOpen.Direction direction2;
        direction2 = workPart.Directions.CreateDirection(origin3, vector2, NXOpen.SmartObject.UpdateOption.WithinModeling);
        patternFeatureBuilder1.PatternService.RectangularDefinition.XDirection = direction2;
        NXOpen.NXObject nXObject1;
        nXObject1 = patternFeatureBuilder1.Commit();//提交操作
        patternFeatureBuilder1.Destroy();//释放builder
    }

这个方法有几个入参,分别为Tag[] features输入阵列的特征、然后第二个参数为阵列的数量、第三个参数为阵列的距离、第四个参数为阵列的矢量方向,这个方法满足单方向阵列,大家可以直接拿来使用。

今天就讲这些,我们下篇文章再见。

散会

热搜词