SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 3321|回复: 3
打印 上一主题 下一主题

SaveAs4和SaveAs2生成PDF文件时,SolidWorks不响应的问题。

[复制链接]

19

主题

77

帖子

129

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
302
QQ
跳转到指定楼层
楼主
发表于 2016-3-23 10:43:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
测试以下两个语句,都出现下图问题,solidworks不响应。
SwModel.SaveAs2 PDFFile, 0, True, False
Debug.Print SwModel.SaveAs4(PDFFile, 0, 0, E, W)




  • Private Sub PrintPDF()
  • Dim Xls As Excel.Application, Rng As Range
  • Set Xls = Application
  • Set Rng = Xls.Selection
  • 'Debug.Print Rng.Address

  • Dim R1 As Range, R2 As Range, R3 As Range, R4 As Range, R5 As Range, R6 As Range
  • Set R1 = Xls.Range(Rng(1, 1))
  • Set R2 = Xls.Range(Rng(2, 1))
  • Set R3 = Xls.Range(Rng(3, 1))
  • Set R4 = Xls.Range(Rng(4, 1))
  • Set R5 = Xls.Range(Rng(5, 1))
  • Set R6 = Xls.Range(Rng(6, 1))
  • ''
  • Dim SwApp As SldWorks.SldWorks, SwModel As ModelDoc2


  • 'Set SwModel = SwApp.ActiveDoc
  • Dim E As Long, W As Long, PDFFile

  • For ii = 1 To R5.Rows.Count
  • Set SwApp = CreateObject("SldWorks.Application")

  • SwApp.Visible = True
  • Set SwModel = SwOpenFile(SwApp, R5(ii, 1))
  • PDFFile = R6(ii, 1)
  • Debug.Print SwModel.SaveAs4(PDFFile, 0, 0, E, W)
  • Debug.Print ii, PDFFile
  • SwModel.SaveAs PDFFile
  • SwApp.CloseDoc SwModel.GetTitle
  • SwApp.ExitApp
  • Next ii
  • Dim PDFRng As Range, MergePDF

  • Set PDFRng = R6 '.Resize(2, R6.Columns.Count)
  • MergePDF = Rng(0, 3)
  • RngMergePDF PDFRng, MergePDF


  • End Sub

  • ''
  • Private Sub testMergePDF()
  • Dim Xls As Excel.Application, Rng As Range
  • Set Xls = Application
  • Set Rng = Xls.Selection
  • 'Debug.Print Rng.Address

  • Dim R1 As Range, R2 As Range, R3 As Range, R4 As Range, R5 As Range, R6 As Range
  • Set R1 = Xls.Range(Rng(1, 1))
  • Set R2 = Xls.Range(Rng(2, 1))
  • Set R3 = Xls.Range(Rng(3, 1))
  • Set R4 = Xls.Range(Rng(4, 1))
  • Set R5 = Xls.Range(Rng(5, 1))

  • Set R6 = Xls.Range(Rng(6, 1))
  • Dim PDFRng As Range, MergePDF
  • Set PDFRng = R6.Resize(3, R6.Columns.Count)
  • MergePDF = Rng(0, 3)
  • RngMergePDF PDFRng, MergePDF
  • End Sub

复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞2617 拍砖拍砖72
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

18

主题

96

帖子

115

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
310
QQ
沙发
发表于 2016-3-23 10:50:08 | 只看该作者
saveas、saveas2、saveas4等需要了解细节,应用场合需要搞清。
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

15

主题

88

帖子

92

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
262
QQ
板凳
发表于 2016-3-23 11:08:36 | 只看该作者
Option Explicit
    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swModelDocExt       As SldWorks.ModelDocExtension
    Dim swExportData          As SldWorks.ExportPdfData
    Dim boolstatus          As Boolean
    Dim filename            As String
    Dim textdate            As String
    Dim lErrors             As Long
    Dim lWarnings           As Long
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "No current document", vbCritical
        End
    End If
    If swModel.GetType <> swDocDRAWING Then
        MsgBox &quot;This Macro only works on Drawings&quot;, vbCritical
        End
    End If
    Set swModelDocExt = swModel.Extension
    Set swExportData = swApp.GetExportFileData(swExportPDFData)
    filename = swModel.GetPathName
    If filename = &quot;&quot; Then
        MsgBox &quot;Please save the file first and try again&quot;, vbCritical
        End
    End If
    textdate = Format(Date, &quot;yyyy-mm-dd&quot;)
    filename = Strings.Left(filename, Len(filename) - 6) & textdate & &quot;.PDF&quot;
    boolstatus = swExportData.SetSheets(swExportData_ExportAllSheets, 1)
    swExportData.ViewPdfAfterSaving = True
    boolstatus = swModelDocExt.SaveAs(filename, 0, 0, swExportData, lErrors, lWarnings)
    If boolstatus Then
        MsgBox &quot;Save as PDF successful&quot; & vbNewLine & filename
    Else
        MsgBox &quot;Save as PDF failed, Error code:&quot; & lErrors
    End If
End Sub
引用其他人编写的,自己乱加了一些东西,仅供参考
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

47

帖子

570

金币

传奇

Rank: 8Rank: 8

积分
3481

最佳新人活跃会员宣传达人

地板
发表于 2016-4-2 21:44:32 | 只看该作者
swModelDocExt.SaveAs,一般都是用这个命令来保存为其他格式。把文件的后缀名改一下就好,然后用swModelDocExt.SaveAs
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-4 21:26 , Processed in 0.207518 second(s), 36 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

快速回复 返回顶部 返回列表