【问题标题】:Saving solidworks drawings as PDF file with prefix将 Solidworks 工程图另存为带前缀的 PDF 文件
【发布时间】:2019-11-26 15:05:28
【问题描述】:

我正在尝试使用宏保存solidworks 工程图文件并向PDF 添加前缀。该代码可以在从solidworks中提取文件名之后添加所有内容,但似乎无法添加前缀

代码:

Dim swApp As Object
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename As String
Dim status As Boolean
Dim errors As Long, warnings As Long
Dim prefix As String
Dim CurrRev As String
Dim strFilenameShort As String
Dim TempString As String




Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

'Save
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, errors, warnings)

'Export to PDF if it is a drawing
If (swModel.GetType = swDocDRAWING) Then

prefix = (InputBox("Enter Company Prefix"))
CurrRev = (InputBox("Enter Current Revision"))

strFilenameShort = swModel.GetPathName
strFilenameShort = Left(strFilenameShort, Len(strFilenameShort) - 7)
TempString = CStr(strFilenameShort)
strFilename = prefix & TempString & "REV" & CurrRev & ".PDF"


Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0


End If
Set swApp = Application.SldWorks
End Sub

【问题讨论】:

  • 运行时会发生什么,是否出现错误,是否调试以查看尝试 SaveAs 时会发生什么。欢迎来到 SOF :D
  • 另存为 PDF 确实有效,但它只保存不带前缀的文件名

标签: vb.net solidworks


【解决方案1】:

你好,西迪克·哈雷格特,

在您的示例中,您将 prefixTempString 的完整路径相结合,这是错误的,因为结果将类似于 "prefixC:\.. .REV1.pdf"

这是一个包含多个步骤的示例,可提取模型路径名的所需部分。最后,所有内容都与 prefixCurrRev

结合在一起
' PathName of current model document
Dim sModelFullPath As String
sModelFullPath = swModel.GetPathName

' get path name without filename
Dim sFilePath As String
sFilePath = Left(sModelFullPath, InStrRev(sModelFullPath, "\"))

' get filename and extension
Dim sFileName As String
sFileName = Right(sModelFullPath, Len(sModelFullPath) - InStrRev(sModelFullPath, "\"))

' get filename without extension
Dim sFileNameWithoutExtension As String
sFileNameWithoutExtension = Left(sFileName, InStrRev(sFileName, ".") - 1)

' combine everything to new path name
Dim sNewFullPath As String
sNewFullPath = prefix & sFileNameWithoutExtension & "REV" & CurrRev & ".pdf"

' SaveAs with new full path
Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs sNewFullPath, 0, 0, swExportPDFData, 0, 0

【讨论】:

  • 非常感谢,这似乎可以完成这项工作
猜你喜欢
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多