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

66 阅读1分钟

大家好,今天讲一些关于阵列相关的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封装了下面这个方法:

 ///


/// 线性阵列
///

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输入阵列的特征、然后第二个参数为阵列的数量、第三个参数为阵列的距离、第四个参数为阵列的矢量方向,这个方法满足单方向阵列,大家可以直接拿来使用。

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

散会