Exemple #1
0
        /// <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);
        }
Exemple #2
0
    /// <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);
    }
Exemple #3
0
        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);
                }
            }
        }