我是靠谱客的博主 深情飞机,这篇文章主要介绍C# NX二次开发:封装输出PDF图纸的方法,现在分享给大家,希望可以做个参考。

今天讲的是将NXOPEN录制出来的输出PDF图纸进行一个方法的封装,下面我会将完整的代码放在下面。

封装方法的输入参数有三个,第一个参数是Part workPart,第二个参数是DrawingSheet[] drawingSheet,第三个参数是string path也就是输出图纸保存的路径。

下面直接上代码(纯干货):

 public static void outPDF(Part workPart1, DrawingSheet[] drawingSheet, string fullname)
    {
        NXOpen.Session.UndoMarkId markId11;
        markId11 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "起点");
        NXOpen.PrintPDFBuilder printPDFBuilder1;
        printPDFBuilder1 = workPart1.PlotManager.CreatePrintPdfbuilder();
        printPDFBuilder1.Scale = 1.0;
        printPDFBuilder1.Colors = NXOpen.PrintPDFBuilder.Color.BlackOnWhite;
        printPDFBuilder1.Widths = NXOpen.PrintPDFBuilder.Width.CustomThreeWidths;
        printPDFBuilder1.Size = NXOpen.PrintPDFBuilder.SizeOption.ScaleFactor;
        printPDFBuilder1.XDimension = 215.90000000000001;
        printPDFBuilder1.YDimension = 279.39999999999998;
        printPDFBuilder1.OutputText = NXOpen.PrintPDFBuilder.OutputTextOption.Polylines;
        printPDFBuilder1.RasterImages = true;
        theSession.SetUndoMarkName(markId11, "导出 PDF 对话框");
        NXOpen.Session.UndoMarkId markId222;
        markId222 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "导出 PDF");
        theSession.DeleteUndoMark(markId222, null);
        NXOpen.Session.UndoMarkId markId3;
        markId3 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "导出 PDF");
        printPDFBuilder1.Watermark = "";
        NXOpen.NXObject[] sheets1 = new NXOpen.NXObject[drawingSheet.Length];
        for (int k = 0; k < drawingSheet.Length; k++)
        {
            NXOpen.Drawings.DraftingDrawingSheet draftingDrawingSheet1 = (NXOpen.Drawings.DraftingDrawingSheet)drawingSheet[k];
            sheets1[k] = draftingDrawingSheet1;
        }

        printPDFBuilder1.SourceBuilder.SetSheets(sheets1);
        printPDFBuilder1.Filename = fullname;
        NXOpen.NXObject nXObject1;
        nXObject1 = printPDFBuilder1.Commit();
        theSession.DeleteUndoMark(markId3, null);
        theSession.SetUndoMarkName(markId11, "导出 PDF");
        printPDFBuilder1.Destroy();
        theSession.DeleteUndoMark(markId11, null);
    }

有需要的可以直接拿到自己工程中使用就行了。

最后

以上就是深情飞机最近收集整理的关于C# NX二次开发:封装输出PDF图纸的方法的全部内容,更多相关C#内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(122)

评论列表共有 0 条评论

立即
投稿
返回
顶部