【问题标题】:Print NanoCAD DWG files to PDF将 NanoCAD DWG 文件打印为 PDF
【发布时间】:2020-12-16 10:16:59
【问题描述】:

我想将 DWG 文件从 Excel VBA 打印到 PDF。 AutoCAD 有很多帮助,但 NanoCAD 的帮助很少或根本没有。我尝试使用等效函数,但导致错误。

我所探索的一些背景知识。

  1. 在 NanoCAd 中创建的打印配置 DWG2PDF.pc3 和以下代码:

     Dim NCAD As nanocad.Application
     Dim ndg As nanocad.Document
     Dim pth As String
     Dim result As String  
     pth = ThisWorkbook.Path
     Set NCAD = GetObject("", "nanoCAD.Application")
     NCAD.Visible = True
     Set ndg = NCAD.Documents.Open(pth & "\typicals\Title-OPA01.dwg")
     ndg.ActiveLayout.ConfigName = "DWG2PDF.pc3"
     result = ndg.Plot.PlotToFile(pth & "\Output\op.pdf")
    

我使用了为 AutoCAD 专业版而不是 LT 指定的命令。 AutoCAD LT 中是否有我可以适应 NanoCAD 的解决方法?

  1. 第二次试用Acrobat的打印功能,windows要求打印成PDF。从 Internet 获得有关调用 Shell 命令的帮助。我使用了如下代码。

    调用 Shell ("C:\Program Files\Adobe\Acrobat 8​​.0\Acrobat\Acrobat.exe /p/h" & pth & "\typicals\Title-OPA01.dwg")

注意:我在VBA项目中引用了NanoCAD、Acrobat的类型库。

【问题讨论】:

  • 进一步上网,我有一个子问题。有人可以帮助我使用 AutoCAD LT(当然来自 Excel)从 DWG 打印 PDF 的代码吗?

标签: excel vba pdf cad dwg


【解决方案1】:

把这件作品用在我身上:

Public Sub test()
Dim NCAD
Dim ndg
Dim pth As String
Dim result As String

pth = "C:\Users\Cci\Desktop\TMP\"
Set NCAD = GetObject("", "nanoCAD.Application")
NCAD.Visible = True

Set ndg = NCAD.Documents.Open(pth & "BASE CAVALLETTO.dwg")

'setup plot
    ndg.ActiveLayout.RefreshPlotDeviceInfo
    ndg.ActiveLayout.ConfigName = "doPDF 10"
    ndg.ActiveLayout.PlotRotation = ac0degrees
    ndg.ActiveLayout.StyleSheet = "monochrome.ctb"
    ndg.ActiveLayout.PlotWithPlotStyles = True
    ndg.ActiveLayout.PlotViewportBorders = False
    ndg.ActiveLayout.PlotViewportsFirst = True
    ndg.ActiveLayout.CanonicalMediaName = "A3"
    ndg.ActiveLayout.PaperUnits = acMillimeters
    ndg.ActiveLayout.StandardScale = acScaleToFit
    ndg.ActiveLayout.ShowPlotStyles = False
    ndg.ActiveLayout.CenterPlot = True
    ndg.Plot.NumberOfCopies = 1

result = ndg.Plot.PlotToDevice

End Sub

doPDF 10 是一个模拟打印机并制作 pdf 文件的免费程序。

尝试根据您的目的调整此基本代码 再见

【讨论】:

  • 我很久没有重新审视我的问题了。无论如何感谢您的回答:)
猜你喜欢
  • 2020-05-08
  • 2011-01-26
  • 2012-01-17
  • 2013-10-25
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
相关资源
最近更新 更多