/// <summary> /// 创建ID符号 /// </summary> public static NXOpen.Tag CreateIdSymbol(string text, Snap.Position origin, Snap.Position pos, NXOpen.Tag view, NXOpen.Tag objectTag) { var theUFSession = NXOpen.UF.UFSession.GetUFSession(); var dd = new NXOpen.UF.UFDrf.SymbolPreferences(); theUFSession.Drf.AskSymbolPreferences(ref dd); dd.id_symbol_size = 6; theUFSession.Drf.SetSymbolPreferences(ref dd); 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; var result = NXOpen.Tag.Null; theUFSession.Drf.CreateIdSymbol(NXOpen.UF.UFDrf.IdSymbolType.SymCircle, text, "", origin.Array, NXOpen.UF.UFDrf.LeaderMode.WithLeader, NXOpen.UF.UFDrf.LeaderAttachType.LeaderAttachObject, ref object1, pos.Array, out result ); return(result); }
/// <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 void Test(DrawingSheet ds) { var workPart = Snap.Globals.WorkPart; var baseView = CreateTextView(ds, workPart.NXOpenPart.ModelingViews.FindObject("FRONT").Tag, new Snap.Position(110, 140)); var point = workPart.Points.FirstOrDefault(); var theUFSession = NXOpen.UF.UFSession.GetUFSession(); //创建坐标标注的原点 NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object(); object1.object_tag = point.NXOpenTag; object1.object_view_tag = baseView; object1.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; var orginTag = NXOpen.Tag.Null; theUFSession.Drf.CreateOrdorigin(ref object1, 1, 1, 2, "test", out orginTag); //创建坐标标注的尺寸边缘(留边) NXOpen.UF.UFDrf.Object object2 = new NXOpen.UF.UFDrf.Object(); Tag top = Tag.Null; theUFSession.Obj.CycleByName("TOPEDGE", ref top); object2.object_tag = top; object2.object_view_tag = baseView; object2.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object2.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; var marginTag = NXOpen.Tag.Null; theUFSession.Drf.CreateOrdmargin(1, orginTag, ref object2, null, null, 0, out marginTag); NXOpen.UF.UFDrf.Object object3 = new NXOpen.UF.UFDrf.Object(); object3.object_tag = point.NXOpenTag; object3.object_view_tag = baseView; object3.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object3.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; NXOpen.UF.UFDrf.Text text = new NXOpen.UF.UFDrf.Text(); double[] origin3d = { 10, 10, 0 }; NXOpen.Tag result; theUFSession.Drf.CreateOrddimension(marginTag, 1, ref object3, 0, 50, ref text, 2, origin3d, out result); }
/// <summary> /// 创建坐标尺寸 /// </summary> static NXOpen.Tag CreateOrddimension(int type, NXOpen.Tag baseView, NXOpen.Tag originObj, NXOpen.Tag marginObj, NXOpen.Tag dimensionObj, double dAngle = 0, double dDistance = 50, Snap.Position?origin = null) { var theUFSession = NXOpen.UF.UFSession.GetUFSession(); //创建坐标标注的原点 NXOpen.UF.UFDrf.Object object1 = new NXOpen.UF.UFDrf.Object(); object1.object_tag = originObj; object1.object_view_tag = baseView; object1.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object1.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; var orginTag = NXOpen.Tag.Null; theUFSession.Drf.CreateOrdorigin(ref object1, 1, 1, 2, "test", out orginTag); //创建坐标标注的尺寸边缘(留边) NXOpen.UF.UFDrf.Object object2 = new NXOpen.UF.UFDrf.Object(); object2.object_tag = marginObj; object2.object_view_tag = baseView; object2.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object2.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; var marginTag = NXOpen.Tag.Null; theUFSession.Drf.CreateOrdmargin(type, orginTag, ref object2, null, null, 0, out marginTag); NXOpen.UF.UFDrf.Object object3 = new NXOpen.UF.UFDrf.Object(); object3.object_tag = dimensionObj; object3.object_view_tag = baseView; object3.object_assoc_type = NXOpen.UF.UFDrf.AssocType.EndPoint; object3.object_assoc_modifier = NXOpen.UF.UFConstants.UF_DRF_first_end_point; NXOpen.UF.UFDrf.Text text = new NXOpen.UF.UFDrf.Text(); double[] origin3d = (origin ?? Snap.Position.Origin).Array; NXOpen.Tag result; theUFSession.Drf.CreateOrddimension(marginTag, type, ref object3, dAngle, dDistance, ref text, 2, origin3d, out result); return(result); }
/// <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); return(result); }