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);
    }

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵桑さん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值