找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 12902|回复: 16

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

[复制链接]
发表于 2019-6-27 15:34:55 | 显示全部楼层 |阅读模式
第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。5 K% ]' C) l! f
第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)& W$ r5 I" N# D" B: ^
第三步:用宏命令运行程序:% l( I  m: y6 k$ `9 k

; b) A8 g6 T5 c, q/ }第一步的附图:
, ]" D/ s$ k; i6 S9 i: C. \6 L+ c
* }" D; \% u( d8 ]$ f3 F, D0 q4 y1 i程序:8 }! t4 A6 v7 b( B7 X6 @+ w
' ******************************************************************************
" \5 S2 d" U$ \! Y) I5 j' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator$ k  N; z+ B% G5 [( t& d
' ******************************************************************************$ N. i5 ~) ?/ M
Dim swApp As Object
9 m0 m% c. W1 H1 U2 ]7 Q
* J# H! ?! u1 iDim Part As Object
# d; m, s# V) K4 U# P# o; lDim boolstatus As Boolean) |- j! J& }+ c0 T

& k7 m2 a* k: \* ?$ S! g  t
  v( }" ~- P8 ]- X
  T( X' E! D* B- ]/ f& @4 y. J
8 T6 g3 W' p0 \5 h9 \- x' h0 n! c! F& L5 Y) c5 E4 m( _$ _
Dim longstatus As Long, longwarnings As Long, myPath$, myFile$
! d, q( G/ x' ~+ x, jDim i As Integer
9 K4 c* O: `4 b; |9 X% F& x, j$ e8 f
Sub Main(): S. H0 N0 l6 U. F* @( I

; q& @' q! e3 H' B6 P" k2 K7 L& j, L# u4 n# U' G

1 `2 @$ W3 K, y+ b; ]5 LSet swApp = _
1 {( L; R' W+ ]% BApplication.SldWorks
( l* d4 E% d( s1 [# I$ imyPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。* f5 i# t: d1 e: z
myFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件: r7 o, g( U% ?+ Z
i = 0
' T: ?; t- l, T2 jDo While myFile <> ""
4 ~; ~, s, e, dSet Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings). @% C/ A! E3 O( N
$ q3 r$ P8 }$ ~6 P, E4 O
Set Drawing = swApp.ActiveDoc- R( ~8 u: V7 o# M# p
If Drawing.GetType <> 3 Then Exit Sub
5 v/ g. Q/ \2 yRetoreSheetName = Drawing.GetCurrentSheet.GetName
2 G# [" l+ W0 }& h0 U" K4 |# Y+ @SheetName = Drawing.GetSheetNames
: Q; z6 T- u. X  P$ f9 WSheetCount = Drawing.GetSheetCount6 w0 p. E6 m: W+ `& R, C
For i = 0 To SheetCount - 1
" ^) e0 o& k# J1 ]$ y8 s: y. |5 F    Drawing.ActivateSheet SheetName(i)
" Z5 P2 A: M) @. z    swTemplate = Drawing.GetCurrentSheet.GetTemplateName
3 G+ q. k2 d3 \1 r1 L    swTemplatePath = Split(swTemplate, "")
. Y$ L9 }4 q9 V: |+ u    swTemplate = swTemplatePath(UBound(swTemplatePath))
! S9 P/ Y& d; }. v1 |$ L0 V' x    vSheetProps = Drawing.GetCurrentSheet.GetProperties()
. p' k' x6 p% s" g    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""3 k$ N* k7 w" |! [
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""
8 v, x( y7 U  {. w    vSheetProps = Drawing.GetCurrentSheet.GetProperties()* s# n" j5 O/ B
Next
/ K3 ^7 ]/ |3 ~0 B& VDrawing.ActivateSheet RetoreSheetName8 u4 N6 {0 i# h+ y
1 k# p# x( C) L) O  `! V
Part.Save
, g' \( u8 j* r- d$ X$ r* g8 pswApp.CloseDoc myPath & myFile
, R$ ?+ u: L( v# x, D0 X7 u6 O
- N9 |* ~; e& qmyFile = Dir '找寻下一个*.文件
( c# R5 O! A' S$ M: b) \7 F
5 V: w  A+ ^1 B$ MLoop
" b/ }9 c6 j0 `2 P3 i: k0 }3 s4 s9 V' l) D7 G" I  w) \3 S9 D
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,像图片这样的& T' \: p/ G( q, }4 @0 Y% b: g
或者钣金方面批量处理的VBA,比如批量改折弯系数 批量归类不同板厚零件的% v, M  p* o+ P. V; L

本帖子中包含更多资源

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

×
发表于 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-8-3 10:00 , Processed in 0.075160 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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