/// <summary> /// 创建注释 /// </summary> public static NXOpen.Tag CreateNode(string text, Snap.Position origin) { var result = NXOpen.Tag.Null; if (!EDMTableInfo.IsHasChinese(text)) { var theUFSession = NXOpen.UF.UFSession.GetUFSession(); theUFSession.Drf.CreateNote(1, new string[] { text }, origin.Array, 0, out result); } else { Session theSession = Session.GetSession(); Part workPart = theSession.Parts.Work; Part displayPart = theSession.Parts.Display; NXOpen.Annotations.SimpleDraftingAid nullAnnotations_SimpleDraftingAid = null; NXOpen.Annotations.DraftingNoteBuilder draftingNoteBuilder1; draftingNoteBuilder1 = workPart.Annotations.CreateDraftingNoteBuilder(nullAnnotations_SimpleDraftingAid); draftingNoteBuilder1.Origin.OriginPoint = origin; draftingNoteBuilder1.Origin.Anchor = NXOpen.Annotations.OriginBuilder.AlignmentPosition.MidCenter; draftingNoteBuilder1.Text.SetEditorText(new string[] { text }); var obj = draftingNoteBuilder1.Commit() as NXOpen.Annotations.Note; draftingNoteBuilder1.Destroy(); result = obj == null ? NXOpen.Tag.Null : obj.Tag; } return(result); }
/// <summary> /// 创建表格 /// </summary> List <NXOpen.Tag> CreateTable(EdmDraw.EdmConfig edmConfig, List <ElecManage.PositioningInfo> elecs) { var result = new List <NXOpen.Tag>(); //创建表格 var tableInfo = edmConfig.Table; var columnInfos = tableInfo.ColumnInfos; var tabularNote = EdmDraw.DrawBusiness.CreateTabnot( new Snap.Position(tableInfo.locationX, tableInfo.locationY), elecs.Count + 1, tableInfo.ColumnInfos.Count, tableInfo.RowHeight, tableInfo.ColumnWidth, edmConfig ); columnInfos.ForEach(u => { EdmDraw.DraftingHelper.WriteTabularCell(0, columnInfos.IndexOf(u), u.DisplayName, tabularNote, tableInfo.RowHeight / 2, tableInfo.TableHeadFont); }); result.Add(tabularNote); foreach (var item in elecs) { var elecIndex = elecs.IndexOf(item) + 1; var info = item.Electrode.GetElectrodeInfo(); var edmTableInfo = new EdmDraw.EDMTableInfo(); edmTableInfo.ZTOP = System.Math.Round(info.HEADPULLUPH, 2).ToString(); edmTableInfo.N = item.N; edmTableInfo.X = item.X.ToString(); edmTableInfo.Y = item.Y.ToString(); edmTableInfo.Z = item.Z.ToString(); edmTableInfo.C = item.C.ToString(); edmTableInfo.DIRECTION = info.EDMPROCDIRECTION; foreach (var columnInfo in columnInfos) { var index = columnInfos.IndexOf(columnInfo); if (columnInfo.Ex == "1") { var lines = EdmDraw.DrawBusiness.CreatePentagon( new Snap.Position(tableInfo.locationX + ((index * tableInfo.ColumnWidth) + tableInfo.ColumnWidth / 2), tableInfo.locationY - ((elecIndex * tableInfo.RowHeight) + tableInfo.RowHeight / 2)) , item.QuadrantType , tableInfo.ColumnWidth * 2 / 3 , tableInfo.RowHeight * 2 / 3 ); result.AddRange(lines); EdmDraw.DraftingHelper.WriteTabularCell(elecIndex, index, EdmDraw.Helper.GetPropertyValue(edmTableInfo, columnInfo.DisplayName).ToString(), tabularNote, tableInfo.RowHeight / 2, edmConfig.TextMpi88); } else { EdmDraw.DraftingHelper.WriteTabularCell(elecIndex, index, EdmDraw.Helper.GetPropertyValue(edmTableInfo, columnInfo.DisplayName).ToString(), tabularNote, edmConfig.TextMpr44, edmConfig.TextMpi88); } } } EdmDraw.DraftingHelper.UpdateTabularNote(tabularNote); return(result); }
public static void WriteTabularCell(int row, int column, string cellText, NXOpen.Tag tag, double text_Height = 3.5, string ugFont = "helios") { row += 1; column += 1; var cellParams = new NXOpen.UF.UFDraw.TabnotCellParams(); var eval_data = new NXOpen.UF.UFDraw.TabnotCellEvalData(); _ufSession.Draw.ReadTabnotCell(tag, row, column, out cellParams, out eval_data); cellParams.cell_text = EdmDraw.EDMTableInfo.ChineseHandle(cellText); cellParams.horiz_just = NXOpen.UF.UFDraw.TabnotJust.TabnotJustCenter; // UF_DRAW_tabnot_just_center; cellParams.vert_just = NXOpen.UF.UFDraw.TabnotJust.TabnotJustMiddle; //UF_DRAW_tabnot_just_middle; cellParams.ug_text_height = text_Height; cellParams.ug_font = ugFont; _ufSession.Draw.WriteTabnotCell(tag, row, column, ref cellParams); if (EDMTableInfo.IsHasChinese(cellText)) { NXOpen.Tag columnTag; _ufSession.Tabnot.AskNthColumn(tag, column - 1, out columnTag); NXOpen.Tag rowTag; _ufSession.Tabnot.AskNthRow(tag, row - 1, out rowTag); NXOpen.Tag cellTag; _ufSession.Tabnot.AskCellAtRowCol(rowTag, columnTag, out cellTag); var mark = Snap.Globals.SetUndoMark(Snap.Globals.MarkVisibility.Invisible, "WriteTabularCell"); try { _ufSession.Tabnot.SetCellText(cellTag, EdmDraw.EDMTableInfo.ChineseHandle(cellText)); Snap.Globals.DeleteUndoMark(mark, null); } catch (Exception ex) { Console.WriteLine("WriteTabularCell {0} {1}", ex.Message, ex.StackTrace); Snap.Globals.UndoToMark(mark, null); } } }