大家好,今天讲一些关于阵列相关的UFUN函数。
UF_MODL_create_linear_iset (view source):这个函数为创建矩形阵列。
int | method | Input | Method: 0 = General 1 = Simple 2 = Identical |
char * | number_in_x | Input | Number in XC direction. |
char * | distance_x | Input | Spacing in XC direction. |
char * | number_in_y | Input | Number in YC direction. |
char * | distance_y | Input | Spacing in YC direction. |
uf_list_p_t | feature_list | Input | List of selected CMOD features. |
tag_t * | feature_obj_id | Output | Feature 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输入阵列的特征、然后第二个参数为阵列的数量、第三个参数为阵列的距离、第四个参数为阵列的矢量方向,这个方法满足单方向阵列,大家可以直接拿来使用。
今天就讲这些,我们下篇文章再见。
散会