找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 12710|回复: 16

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

[复制链接]
发表于 2019-6-27 15:34:55 | 显示全部楼层 |阅读模式
第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。! K9 k% m. U: h" ^1 M) _
第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)
6 w1 a# f/ d5 `) }* \$ Y第三步:用宏命令运行程序:
3 l% F8 ~: g* h% b+ i4 K# c
/ Q! l. K* H- e$ }. Q$ ?% M第一步的附图:+ ]7 T& ]7 i* O- U; d
$ R4 ]. l# R/ j" f
程序:
0 Y/ G& N% f, f- r7 M- ?8 K' ******************************************************************************
6 g5 H& X9 p* Z9 m- o' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator, ?3 V/ K& n  l: z/ [- R
' ******************************************************************************
: C  S; r4 d  tDim swApp As Object
. P3 k) h3 c/ l+ p6 |* \7 j5 t. G" \* ~( J5 ]
Dim Part As Object) N2 n$ J1 [6 i. F' C7 Z
Dim boolstatus As Boolean6 p! N, Q9 n/ ?! v+ l, b

6 g1 v/ H) l4 [' D2 F8 W# |. Z
- h3 y+ A- Z7 x6 D! ~5 a4 k* L9 y4 u5 L; [/ w8 m& R5 r  Q/ D
; ?) Y: {; p/ Z$ N4 I, h& N

9 G  L7 E+ l' m* dDim longstatus As Long, longwarnings As Long, myPath$, myFile$
8 T  }# ]5 o( D6 x6 bDim i As Integer
- U5 {, S2 m$ @6 J8 b( s& }8 O6 S" ~$ `8 e' z! H& Z
Sub Main()
$ K' l+ U, X4 K7 c" g* U8 m2 B$ `2 i5 Q- @% N/ p* e4 B, I# ?. c

6 y+ y$ S+ U9 Z9 }1 p; G8 M+ l) ^! r; X7 x+ g6 y" `7 g7 I
Set swApp = _3 k5 A9 z  f; ~) s8 I$ o# M
Application.SldWorks
. b% k. `; e) AmyPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。; P8 I0 K$ [0 E' b5 g
myFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件$ [% N3 m" r' ~) z* {
i = 0' A8 V( G! ]" R! @2 e! I4 F6 [0 {; q: i
Do While myFile <> ""
; K& c3 Z$ C1 j, _Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings)& ]" g0 ~' G; v  L  l& f

1 \: ?* u3 u2 L% k6 \& s) DSet Drawing = swApp.ActiveDoc
$ Q, U! i: g  F: ~4 ?If Drawing.GetType <> 3 Then Exit Sub
. m8 k1 u0 L0 z6 A- n( qRetoreSheetName = Drawing.GetCurrentSheet.GetName
  c2 ?( y1 M" g8 k8 ~% D( D' W6 [SheetName = Drawing.GetSheetNames
2 ]' `1 |/ \7 `: }  OSheetCount = Drawing.GetSheetCount3 ^. {0 l+ [9 F, d, ^/ }2 g+ Q
For i = 0 To SheetCount - 14 k7 ~1 n" d2 k+ @' C' B7 Z
    Drawing.ActivateSheet SheetName(i), F; s1 c1 ~, F8 j! ~
    swTemplate = Drawing.GetCurrentSheet.GetTemplateName
; H9 U! i2 P3 D$ I    swTemplatePath = Split(swTemplate, "")2 d+ J2 n1 J" o/ z8 a1 T9 c
    swTemplate = swTemplatePath(UBound(swTemplatePath))1 `9 T! O+ r! C  K
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()* c* ^2 g0 \4 G6 h9 U1 v
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, "": T' L2 V0 s7 j3 A! A
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""% u. l0 G" D. c5 E7 ~! ^" U
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()/ T2 I5 {3 H$ u: x( l
Next
7 B; h; A; T; R8 A4 L( X9 U5 oDrawing.ActivateSheet RetoreSheetName' b' c4 j2 ~+ V* {. X" w6 J
) w; H/ l; _) X! C' J5 |* S' e
Part.Save
- Q8 }6 J) q; v1 g9 d  I1 I0 J# ~) PswApp.CloseDoc myPath & myFile
& `% L! M6 o8 _/ t8 v& I, \2 `. q7 _5 j: O8 T2 T: }' E2 Q# b% j
myFile = Dir '找寻下一个*.文件' q& v% _0 W' O' d8 l( {6 g) n
* Z- l0 _6 v% c6 _3 ]
Loop
2 F2 Z! E4 ~6 z6 |3 u4 F( e. V. [. j' ?7 F3 n- Y2 L; o
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×

评分

参与人数 2威望 +2 收起 理由
防弹蜗牛 + 1 热心助人,专业精湛!
喂我袋盐 + 1 热心助人,专业精湛!

查看全部评分

回复

使用道具 举报

发表于 2019-6-27 16:01:35 | 显示全部楼层
感谢
回复

使用道具 举报

发表于 2019-6-27 20:14:30 | 显示全部楼层
这种骚操作不用插件就能实现?
发表于 2019-6-27 23:26:40 | 显示全部楼层
有时间试试看,感谢
发表于 2019-6-28 12:52:17 | 显示全部楼层
好强大,谢谢楼主!!!
发表于 2019-6-28 16:53:35 | 显示全部楼层
楼主,有没有批量导入展开图的VBA,像图片这样的
. d( @( i. I7 |( e或者钣金方面批量处理的VBA,比如批量改折弯系数 批量归类不同板厚零件的. o9 L: ~2 Z. P/ F$ W& S9 y

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
发表于 2019-7-2 12:18:51 | 显示全部楼层
可以在solid works设置实现吗
发表于 2020-2-22 10:03:37 | 显示全部楼层
感谢,学习了
发表于 2020-10-11 10:13:10 | 显示全部楼层
宏内部能否指定(图纸格式文件),现在运行宏,显示要选择图纸格式文件,能否不要互动窗口,直接指定某个文件进行替换
发表于 2023-5-13 17:55:59 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-7-2 12:43 , Processed in 0.065391 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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