/// <summary> /// 创建垂直尺寸 /// </summary> public static NXOpen.Tag CreatePerpendicularDim(NXOpen.Tag draw_view_tag, NXOpen.Tag o1, NXOpen.Tag o2, Snap.Position origin) { var theUFSession = NXOpen.UF.UFSession.GetUFSession(); NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object(); object1.object_tag = o1; object1.object_view_tag = draw_view_tag; object1.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; NXOpen.UF.UFDrf.Object object2 = new NXOpen.UF.UFDrf.Object(); object2.object_tag = o2; object2.object_view_tag = draw_view_tag; object2.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object2.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; NXOpen.UF.UFDrf.Text text = new NXOpen.UF.UFDrf.Text(); NXOpen.Tag result; theUFSession.Drf.CreatePerpendicularDim(ref object1, ref object2, ref text, new double[] { origin.X, origin.Y, 0 }, out result); var environmentData = new DraftingEnvironmentData(); theUFSession.Drf.AskObjectPreferences(result, environmentData.mpi, environmentData.mpr, out environmentData.radiusValue, out environmentData.diameterValue); environmentData.mpi[9] = 3; theUFSession.Drf.SetObjectPreferences(result, environmentData.mpi, environmentData.mpr, environmentData.radiusValue, environmentData.diameterValue); return(result); }
/// <summary> /// 创建标签 /// </summary> public static NXOpen.Tag CreateLabel(string text, Snap.Position origin, Snap.Position pos, NXOpen.Tag view, NXOpen.Tag objectTag) { NXOpen.Tag result = NXOpen.Tag.Null; var theUFSession = NXOpen.UF.UFSession.GetUFSession(); NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object(); object1.object_tag = objectTag; object1.object_view_tag = view; object1.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; theUFSession.Drf.CreateLabel(1, new string[] { text }, origin.Array, NXOpen.UF.UFDrf.LeaderAttachType.LeaderAttachObject, ref object1, pos.Array, out result); var eData = new DraftingEnvironmentData(); var mpi = eData.mpi; var mpr = eData.mpr; theUFSession.Drf.AskObjectPreferences(result, eData.mpi, eData.mpr, out eData.radiusValue, out eData.diameterValue); mpi[1] = 1; mpi[9] = 1; mpi[10] = 2; mpi[11] = 4; mpi[29] = 1; mpi[39] = 1; mpi[94] = 0; mpr[9] = 3.0; mpr[10] = 0.001; theUFSession.Drf.SetObjectPreferences(result, eData.mpi, eData.mpr, eData.radiusValue, eData.diameterValue); return(result); }
public static void SetToleranceType(NXOpen.Tag tag) { var ufSession = NXOpen.UF.UFSession.GetUFSession(); var eData = new DraftingEnvironmentData(); ufSession.Drf.AskObjectPreferences(tag, eData.mpi, eData.mpr, out eData.radiusValue, out eData.diameterValue); //设置公差类型 首选项→尺寸→公差→类型 eData.mpi[6] = 8; ufSession.Drf.SetObjectPreferences(tag, eData.mpi, eData.mpr, eData.radiusValue, eData.diameterValue); //Session theSession = Session.GetSession(); //Part workPart = theSession.Parts.Work; //Part displayPart = theSession.Parts.Display; //var obj = NXOpen.Utilities.NXObjectManager.Get(tag) as NXOpen.Annotations.OrdinateDimension; //if (obj != null) //{ // var ordinateDimensionBuilder1 = workPart.Dimensions.CreateOrdinateDimensionBuilder(obj); // //尺寸样式 // ordinateDimensionBuilder1.Style.DimensionStyle.ToleranceType = NXOpen.Annotations.ToleranceType.Basic; // ordinateDimensionBuilder1.Commit(); // ordinateDimensionBuilder1.Destroy(); //} }