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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

solidworks批量换工程图图框的VBA代码

  [复制链接]

7

主题

48

帖子

36

金币

天使

Rank: 2Rank: 2

积分
127
QQ
跳转到指定楼层
楼主
发表于 2019-6-27 04:34:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。
第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)
第三步:用宏命令运行程序:

第一步的附图:



程序:
' ******************************************************************************
' C:UsersAdministratorAppDataLocalTempswx8592Macro1.swb - macro recorded on 06/26/19 by Administrator
' ******************************************************************************
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean





Dim longstatus As Long, longwarnings As Long, myPath$, myFile$
Dim i As Integer

Sub Main()



Set swApp = _
Application.SldWorks
myPath = "C:UsersAdministratorDesktop新建文件夹 (2)" '把文件路径定义给变量,第二步中的路径填到此处。
myFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件
i = 0
Do While myFile  ""
Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings)

Set Drawing = swApp.ActiveDoc
If Drawing.GetType  3 Then Exit Sub
RetoreSheetName = Drawing.GetCurrentSheet.GetName
SheetName = Drawing.GetSheetNames
SheetCount = Drawing.GetSheetCount
For i = 0 To SheetCount - 1
Drawing.ActivateSheet SheetName(i)
swTemplate = Drawing.GetCurrentSheet.GetTemplateName
swTemplatePath = Split(swTemplate, "")
swTemplate = swTemplatePath(UBound(swTemplatePath))
vSheetProps = Drawing.GetCurrentSheet.GetProperties()
Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""
Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""
vSheetProps = Drawing.GetCurrentSheet.GetProperties()
Next
Drawing.ActivateSheet RetoreSheetName

Part.Save
swApp.CloseDoc myPath & myFile

myFile = Dir '找寻下一个*.文件

Loop

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

使用道具 举报

7

主题

47

帖子

38

金币

天使

Rank: 2Rank: 2

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

使用道具 举报

5

主题

40

帖子

26

金币

天使

Rank: 2Rank: 2

积分
114
QQ
板凳
发表于 2019-6-29 00:25:12 | 只看该作者
这种骚操作不用插件就能实现?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

28

帖子

11

金币

天使

Rank: 2Rank: 2

积分
67
QQ
地板
发表于 2019-6-29 01:27:39 | 只看该作者
有时间试试看,感谢
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

49

帖子

31

金币

天使

Rank: 2Rank: 2

积分
124
QQ
5#
发表于 2019-6-29 05:36:07 | 只看该作者

   经典案例图书
好强大,谢谢楼主!!!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

50

帖子

14

金币

天使

Rank: 2Rank: 2

积分
85
QQ
6#
发表于 2019-6-30 14:29:40 | 只看该作者
楼主,有没有批量导入展开图的VBA,像图片这样的
或者钣金方面批量处理的VBA,比如批量改折弯系数 批量归类不同板厚零件的


SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

48

帖子

38

金币

天使

Rank: 2Rank: 2

积分
140
QQ
7#
发表于 2019-6-30 22:50:17 | 只看该作者

   经典案例图书
可以在solid works设置实现吗
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

576

帖子

182

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2577

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

8#
发表于 2022-5-17 18:59:37 | 只看该作者
楼主太有才了,膜拜中……
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

22

主题

2003

帖子

1771

金币

传奇

Rank: 8Rank: 8

积分
9362

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

9#
发表于 2022-5-18 14:32:56 | 只看该作者
solidworks批量换工程图图框的VBA代码
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

1

帖子

16

金币

混混

Rank: 1

积分
33
10#
发表于 2022-5-25 09:20:54 | 只看该作者
宏有问题,老大们怎么解决呀

12.png
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

17

帖子

24

金币

天使

Rank: 2Rank: 2

积分
85

最佳新人

11#
发表于 2022-5-29 16:51:02 | 只看该作者
macowe 发表于 2022-5-25 09:20
宏有问题,老大们怎么解决呀

是不是少空格了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

786

帖子

441

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2175

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

12#
发表于 2022-6-2 23:21:40 | 只看该作者
楼主辛苦了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

2

帖子

8

金币

混混

Rank: 1

积分
24
13#
发表于 2023-8-1 00:21:16 | 只看该作者
Sub Main222()
    Dim swApp As Object
    Dim Part As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long
    Dim myPath As String, myFile As String
    Dim i As Integer
    Dim a As Integer
    Dim k As Integer
    k = 0
      
    Set swApp = Application.SldWorks
    'myPath = "C:\Users\Administrator\Desktop\888\02" '将文件路径定义给变量
    myPath = InputBox("请输入图纸文件夹路径:", "文件夹路径")
    mblj = InputBox("请输入工程图模版文件夹路径:", "文件夹路径")
    '如"C:\Users\Administrator\Desktop\888\02\000A4.slddrt"路径要包括模板名字+后缀,并且前后都要有英文版的双引号。
    a = InputBox("请输入处理几个文件:", "文件夹路径")
    '只能输入整数,表示处理几个文件
   
   
      
    myFile = Dir(myPath & "\*.SLDDRW") '首次找寻指定路径中的*.文件
      
    Do While myFile <> ""
        Set Part = swApp.OpenDoc6(myPath & "\" & myFile, 3, 0, "", longstatus, longwarnings)
        k = k + 1
         
        '在这里添加对文件的处理代码
        boolstatus = Part.SetupSheet5("Sheet1", 12, 12, 1, 5, True, mblj, 0.297, 0.21, "默认", True)
       ' MsgBox "测试一下"
        
         
        Part.Save
        swApp.CloseDoc myPath & "\" & myFile
         
        myFile = Dir '重置文件指针,以便下一次迭代可以找到下一个文件
        If k = a Then Exit Sub
    Loop
End Sub

SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

10

帖子

4

金币

混混

Rank: 1

积分
36

最佳新人

14#
发表于 2023-12-6 09:11:15 | 只看该作者
楼主辛苦了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-5 13:03 , Processed in 0.234676 second(s), 36 queries .

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

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

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