话不多说,直接上代码:
/// <summary>
/// 通过两条直线创建基准面
/// </summary>
/// <param name="line1"></param>
/// <param name="line2"></param>
/// <param name="datumPlane"></param>
public void CreateDatumPlaneBy2Lines(Line line1, Line line2, out DatumPlane datumPlane)
{
try
{
NXOpen.Features.DatumPlaneBuilder datumPlaneBuilder1;
datumPlaneBuilder1 = workPart.Features.CreateDatumPlaneBuilder(null);
Plane plane1;
plane1 = datumPlaneBuilder1.GetPlane();
plane1.SetUpdateOption(NXOpen.SmartObject.UpdateOption.WithinModeling);
plane1.SetMethod(NXOpen.PlaneTypes.MethodType.TwoLines);
NXObject[] geom2 = new NXObject[2];
geom2[0] = line1;
geom2[1] = line2;
plane1.SetGeometry(geom2);
plane1.SetAlternate(NXOpen.PlaneTypes.AlternateType.One);
plane1.Evaluate();
plane1.SetAlternate(NXOpen.PlaneTypes.AlternateType.Three);
plane1.Evaluate();
bool flip1;
flip1 = plane1.Flip;
NXOpen.Features.Feature feature1;
feature1 = datumPlaneBuilder1.CommitFeature();
NXOpen.Features.DatumPlaneFeature datumPlaneFeature1 = (NXOpen.Features.DatumPlaneFeature)feature1;
datumPlane = datumPlaneFeature1.DatumPlane;
//datumPlane1.SetReverseSection(false);
datumPlaneBuilder1.Destroy();
}
catch (Exception ex)
{
datumPlane = null;
UI.GetUI().NXMessageBox.Show("提示信息", NXMessageBox.DialogType.Information, ex.Message);
}
}