机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 11793|回复: 16

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

[复制链接]
发表于 2019-6-27 15:34:55 | 显示全部楼层 |阅读模式
第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。$ o0 ]: H2 h2 j& b5 ?
第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注). L) p; s* D% u+ r7 G- F9 i
第三步:用宏命令运行程序:7 I. M8 B2 w1 X" c5 G
) K) l/ @, v, H" j3 ?' C
第一步的附图:
" y/ E' a; e% e+ ]: X# M& _) N2 ^9 X1 @. W7 l$ R+ O5 P" O; D
程序:8 F0 A5 B% Y0 M6 w- f: b2 }
' ******************************************************************************
/ H6 G9 V) y0 F2 j$ R' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator9 g7 f+ \2 }3 s2 u4 Z4 P! Z' ]# a- M' B2 v
' ******************************************************************************
' V1 }! W/ z) sDim swApp As Object
& z* S* j1 |1 D1 y* x! T  {+ O/ `& O: v: v  i
Dim Part As Object! p) U+ [6 J% m4 I4 Z. T6 \+ k
Dim boolstatus As Boolean
6 N' E7 k2 z& W5 j
, o6 g/ M3 ^! H
. p) C0 m$ U. z
" z6 t2 d2 [! B6 X% G
) |/ m# R7 P5 C7 ?6 {
% h( P, Z* u+ ?4 n+ jDim longstatus As Long, longwarnings As Long, myPath$, myFile$
- ?# e! V' g$ s- v. h) a3 xDim i As Integer8 B7 n* }; L3 m9 u/ p* i

& B7 l  L0 o6 r. R, r" x$ `- `Sub Main()
7 g1 {( i4 N% w; ~- A. x" @9 a' M8 ?
3 t9 F  V# A( p2 F2 I8 M4 U; d; T4 G2 l8 a5 j, Y) U
7 a8 c, p) l3 q% ~0 t+ R- p1 |
Set swApp = _1 Y5 B% h# Q: V2 }' y" {
Application.SldWorks7 V+ c2 I$ n3 w4 }% w- F
myPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。
8 W( W& N6 h! q8 J, n; wmyFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件
" U# l) l0 K( o/ A  y7 T( x  A6 D' zi = 03 d; T5 Z7 w, @/ G) V, D% H% s6 X. M
Do While myFile <> ""
5 S1 m/ ^: y& D, j6 p- oSet Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings). q+ g9 ?: b7 u/ ^* f* n
! T8 q- [* n# }6 y6 A
Set Drawing = swApp.ActiveDoc3 [1 l& Y, Q2 K0 B# ~6 i
If Drawing.GetType <> 3 Then Exit Sub
4 v, n% d. T9 F5 BRetoreSheetName = Drawing.GetCurrentSheet.GetName
& ~6 x' O6 ^$ x/ y9 ISheetName = Drawing.GetSheetNames8 [/ l, s/ g: K7 ?* t
SheetCount = Drawing.GetSheetCount
8 W: u0 s( _/ yFor i = 0 To SheetCount - 1
& j" G( _2 y+ Z. U    Drawing.ActivateSheet SheetName(i)
# H9 M8 L$ t, q& V    swTemplate = Drawing.GetCurrentSheet.GetTemplateName
4 q% Z: K: a2 P4 P1 \5 u) u+ X. p    swTemplatePath = Split(swTemplate, "")
+ f+ @! J. i2 w    swTemplate = swTemplatePath(UBound(swTemplatePath))5 W; L+ t+ F6 K3 s- x) {" w4 T
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()2 w8 J1 Z2 J8 z2 K" A' z
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""% d% _# O- A) K3 b, O5 M$ o+ G- t4 f
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""
9 v/ v! P2 v# B/ N: C    vSheetProps = Drawing.GetCurrentSheet.GetProperties()
% m7 U. B0 M) Z7 BNext0 W- \4 B5 @5 [2 z
Drawing.ActivateSheet RetoreSheetName0 ]/ _2 A- W+ Q% d- s$ K

2 H5 B: \5 \' K9 L0 L& {: L+ @Part.Save4 w& O% @" u$ I
swApp.CloseDoc myPath & myFile/ ?# W* Y& U: t4 ~; W6 o) Z
, b6 w$ L& D. c
myFile = Dir '找寻下一个*.文件
" P# t2 z* Y! Q. m5 e6 r& _# ]8 [/ W: L' f& l; Y
Loop
3 a7 b" M, [5 w5 Y( a8 s: C; N8 ]5 a: W0 X  S4 I
End Sub

本帖子中包含更多资源

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

x

评分

参与人数 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,像图片这样的: s  |# ~7 u4 y* u% n' N$ e; r! ]
或者钣金方面批量处理的VBA,比如批量改折弯系数 批量归类不同板厚零件的
/ [: |5 V& V4 ]7 L6 G' \

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 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-2-23 05:18 , Processed in 0.064721 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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