找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 13495|回复: 16

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

  [复制链接]
发表于 2019-6-27 15:34:55 | 显示全部楼层 |阅读模式
第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。
/ E( J- G9 Y) y1 N; r7 l) k第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)" Y  |0 p5 r: Y; a" Y: l- |
第三步:用宏命令运行程序:
4 k# z" H; D. ~' ~% R  e+ c
: [" L4 [0 r  K7 o第一步的附图:
) e2 G1 d: U( E) @' ?+ d& _& f, J) F) U7 C
程序:7 N5 n5 ~7 W1 |" l
' ******************************************************************************
8 z7 M% y( q' E" C' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator
5 n9 N6 ~" l+ k1 X1 k4 P' ******************************************************************************
+ f( s" f" E/ m5 _Dim swApp As Object" @/ Z& F1 j, ~7 Y" q! x* D- r
& k. c! j& @8 y, W% j( @
Dim Part As Object
: o. ~, E) v2 J# P1 u+ yDim boolstatus As Boolean/ l  p3 A8 }3 I' U- j

2 D- m" R: O9 w7 S9 a. l) Y7 o& w! C
0 N' f' |& K  [; |( c( U
' ^) y! P  r+ [! A
( L4 e. r0 z  p3 S. T, N
Dim longstatus As Long, longwarnings As Long, myPath$, myFile$" l1 |- K" Z5 M$ Z; a
Dim i As Integer
+ j; v  P4 {+ o# I$ ~  v( g5 H
) W( R# I2 }& T' sSub Main()
" n1 k' A( g  i8 G
( K6 d5 ^) N" S# k& m( U* e+ w6 z4 M# c) x6 H. }& O
* m; f0 u/ g) b3 h: K
Set swApp = _: z( U9 v+ Y2 I
Application.SldWorks9 x" ?+ b$ h3 p0 Z( i
myPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。
9 U/ \( S0 Q( U- ~3 f( hmyFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件
% q$ @6 u/ R& W+ H( ki = 0- K9 e% X; v0 v* g. q& O/ Y1 _
Do While myFile <> ""4 M' j9 q' p! \$ N: a2 g7 ^
Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings), w3 f7 ^; P' k0 T8 u+ ~
4 |7 c7 z! U6 L
Set Drawing = swApp.ActiveDoc
9 E9 Z1 M4 v9 n1 Z4 aIf Drawing.GetType <> 3 Then Exit Sub. s' x) u  L, T* \
RetoreSheetName = Drawing.GetCurrentSheet.GetName
! ]* `2 g' r1 F: K/ x8 C+ P/ P. ySheetName = Drawing.GetSheetNames/ g% p" V* x3 W' b* w2 o+ }, ?
SheetCount = Drawing.GetSheetCount7 |# [6 O, g) Q' m0 w  N
For i = 0 To SheetCount - 1
& |; A. J. x6 w' t7 ^( W3 L    Drawing.ActivateSheet SheetName(i)
7 _8 Z' ?1 i  p+ l2 r    swTemplate = Drawing.GetCurrentSheet.GetTemplateName
' t/ y+ V6 ]6 e9 l" Z/ {1 O2 Z9 m    swTemplatePath = Split(swTemplate, "")# \" b4 F0 Q$ x$ j+ f3 `5 m
    swTemplate = swTemplatePath(UBound(swTemplatePath))
$ [$ v- ~% O3 _1 h6 b$ g    vSheetProps = Drawing.GetCurrentSheet.GetProperties()
  \3 d. Q! b6 ?) O# {8 t$ C    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""
, M  u3 I# c) U    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""( C' \0 n9 c* o
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()
8 T+ _+ B8 z* i" c( K* n6 \Next& g4 w; ^" K8 o: T
Drawing.ActivateSheet RetoreSheetName2 |; \+ |9 }4 d) |* I- i
" a! ?( A8 t; i: i! g- c' \- Q) f
Part.Save. j: v( X* N2 r+ w3 r6 R; h
swApp.CloseDoc myPath & myFile! g1 m. w# C3 W7 h; ~

0 V1 J3 H7 u4 [0 L6 V; VmyFile = Dir '找寻下一个*.文件
8 L/ m+ l6 ]9 N0 K8 B; E+ C, q: s- d( l
Loop
" V: G! X, c' ~8 `# T! E8 P8 K) g' Y$ c8 _; @) J# ?
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,像图片这样的# b7 ^* S* O6 r8 K4 l2 C
或者钣金方面批量处理的VBA,比如批量改折弯系数 批量归类不同板厚零件的" S1 P3 g. Q  W: S, a

本帖子中包含更多资源

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

×
发表于 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-10-16 18:38 , Processed in 0.084570 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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