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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3775|回复: 8
打印 上一主题 下一主题

Solidworks 将图纸处理成JPG格式文件的宏程序

  [复制链接]

8

主题

36

帖子

41

金币

天使

Rank: 2Rank: 2

积分
123
QQ
跳转到指定楼层
楼主
发表于 2019-5-23 19:18:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

   经典图书
可以将工程图文件处理为jpg格式文件,可自动判断及设定横纵向,处理文件位置与所处理的图纸文件路径相同,文件名与所处理的文件名相同。处理其他文件可能会报错,新建的、没有保存过的文件也会报错,仅仅是很初始的代码。共勉。记录

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

使用道具 举报

9

主题

38

帖子

67

金币

天使

Rank: 2Rank: 2

积分
152
QQ
沙发
发表于 2019-5-24 23:25:10 | 只看该作者
' ******************************************************************************

'将当前视窗激活的图纸文件处理为JPG格式文件,处理后文件路径与当前处理的文件的路径相同

' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
'————自定义全局变量start————



Dim PD As Boolean
'————自定义全局变量end—————



Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Dim COSMOSWORKSObj As Object
Dim CWAddinCallBackObj As Object
Set CWAddinCallBackObj = swApp.GetAddInObject("CosmosWorks.CosmosWorks")
Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS                                 '连接到SW对象,是宏程序与SOLIDWORKS建立连接的桥梁代码,得到的应用程序作为对象传给swApp,没有这条代码宏程序不能继续运行。
Set TopDoc = swApp.ActiveDoc                                                        '总装对象
TopDocPathSplit = Split(TopDoc.GetPathName, "")                                    '从全文件名中分割,使用Split函数剔除文件名中的""
TopDocName = TopDocPathSplit(UBound(TopDocPathSplit))                               '总装文件名称,使用UBound函数获取TopDocPathSplit数组大小
TopDocName = Left(TopDocName, Len(TopDocName) - 7)                                  '总装文件名称(去除扩展名.SLDASM),使用Left函数,Left(a,N) 从左起第一位开始取值,向右取N位
TopDocPathOnly = Mid(TopDoc.GetPathName, 1, InStrRev(TopDoc.GetPathName, "", -1))  '总装的完整目录,使用Mid函数,从文件名字符串第一位开始截取出指定数量的字符,使用InStrRev函数获取""在文件名字符串中最后出现的位置,即为Mid函数中指定的数量。
'————自定义变量start————

Dim EXPName  As String '处理出来的文件的扩展名
Dim PTA As Boolean

'————自定义变量end—————
Part.ViewZoomtofit2

EXPName = ".JPG" '扩展名定义

Call Potj '调用判断
Call DirT '调用设定
'MsgBox ("xxx")
longstatus = Part.SaveAs3(TopDocPathOnly & "" & TopDocName & EXPName, 0, 0) '处理文件

Set StudyManagerObj = Nothing
Set ActiveDocObj = Nothing
Set CWAddinCallBackObj = Nothing
Set COSMOSWORKSObj = Nothing

End Sub

Private Sub Potj() '判断图纸状态
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc
    Dim swSheet As SldWorks.Sheet
    Dim vSheetProps As Variant
    Dim bRet As Boolean
   
    Dim a, b, c, d, e, f, i, j, K, l, m, n, o, p, q As String
    Dim G, H As Single
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swDraw = swModel
    Set swSheet = swDraw.GetCurrentSheet
    i = "File = " & swModel.GetPathName '当前文档存储路径,含名称
    j = "  Sheet = " & swSheet.GetName '当前图幅配置名称
    K = "    Template = " & swSheet.GetTemplateName '返回模板路径
    ' Get current sheet settings
    vSheetProps = swSheet.GetProperties

   
a = "      PaperSize      = " & vSheetProps(0)
b = "      TemplateIn     = " & vSheetProps(1)
c = "      Scale1         = " & vSheetProps(2) '比例1
d = "      scale2         = " & vSheetProps(3) '比例2
f = "      FirstAngle     = " & vSheetProps(4) '第几张
'G = "      Width          = " & vSheetProps(5) '图纸宽度
'H = "      Height         = " & vSheetProps(6) '图纸高度
G = vSheetProps(5) '图纸宽度
H = vSheetProps(6) '图纸高度
e = "//"
'MsgBox (G / H)
If G / H < 1 Then
    PD = True
Else
    PD = False
End If

'MsgBox (a & e & b & e & c & e & d & e & f & e & G & e & H & e & I & e & j & e & K)
End Sub
Private Sub DirT() '设定图纸处理方向
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim COSMOSWORKSObj As Object
Dim CWAddinCallBackObj As Object
Set CWAddinCallBackObj = swApp.GetAddInObject(&quot;CosmosWorks.CosmosWorks&quot;)
Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 0)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 1)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 0)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 1)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 1)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 0)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 1)
boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swEdgesTangentEdgeDisplay, 0)

If PD = True Then
    boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA4sizeVertical) '纵向
ElseIf PD = False Then
    boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swTiffPrintPaperSize, swDwgPaperSizes_e.swDwgPaperA4size) '横向
End If
' Save As
'StudyManagerObj = Nothing
'ActiveDocObj = Nothing
'Set CWAddinCallBackObj = Nothing
'Set COSMOSWORKSObj = Nothing

End Sub
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

3

主题

23

帖子

44

金币

天使

Rank: 2Rank: 2

积分
103
QQ
板凳
发表于 2019-5-26 05:29:18 | 只看该作者

   经典图书
谢谢楼主朋友分享好工具,学习。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

37

帖子

34

金币

天使

Rank: 2Rank: 2

积分
88
QQ
地板
发表于 2019-5-27 06:25:07 | 只看该作者
不错的资料
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

31

帖子

46

金币

天使

Rank: 2Rank: 2

积分
190

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

5#
发表于 2022-6-6 17:46:49 | 只看该作者

   经典案例图书
谢谢,学习了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

21

帖子

14

金币

天使

Rank: 2Rank: 2

积分
80

最佳新人

6#
发表于 2022-6-9 10:02:50 | 只看该作者
谢谢楼主朋友分享好工具,学习。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

263

帖子

257

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2376

最佳新人活跃会员热心会员宣传达人灌水之王

7#
发表于 2023-1-17 21:05:06 | 只看该作者

   经典案例图书
谢谢分享,下载学习
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

351

帖子

549

金币

传奇

Rank: 8Rank: 8

积分
3174

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

8#
发表于 2023-1-18 08:30:55 | 只看该作者
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

351

帖子

549

金币

传奇

Rank: 8Rank: 8

积分
3174

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

9#
发表于 2023-1-18 08:31:01 | 只看该作者
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2025-5-22 14:08 , Processed in 0.291849 second(s), 25 queries , Memcache On.

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

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

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