今天讲的是将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);
}
有需要的可以直接拿到自己工程中使用就行了。