找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 13214|回复: 16

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

  [复制链接]
发表于 2019-6-27 15:34:55 | 显示全部楼层 |阅读模式
第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。
4 w, R2 ?) g: O  q$ ?1 @. `第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)6 p6 j( |0 G' [: t
第三步:用宏命令运行程序:
  }. z  p6 F4 \' j
# H/ A7 N% H* a! O第一步的附图:
6 v% m4 G9 B- W8 P3 @3 o4 W4 B' d9 B
$ q0 z. Z. ?& j/ F程序:
& g9 ]6 `' {% [1 h  u5 d! i* h' ******************************************************************************
5 \9 \0 S( W: C& G! z; i/ Q: I" `' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator- g# `6 ~- K, O& E0 O8 r
' ******************************************************************************
4 l( Q: S# Y# S- f5 V! O! jDim swApp As Object
7 e, v! V7 v: O3 j, j0 K4 @+ N/ I% t6 l
Dim Part As Object: v8 v' n- G$ r% }" a' F
Dim boolstatus As Boolean4 \- b% c) l) Y

( ?/ h3 ^( R0 M) a8 }- ]+ U7 V6 S/ y7 c  h

" y0 \1 e" ~* C, K: l$ U6 t1 c; v. m  k* X) A

4 d  O/ D) P1 s4 nDim longstatus As Long, longwarnings As Long, myPath$, myFile$: M* t! D) ^) o! N7 w0 q0 z
Dim i As Integer
2 C3 i7 _: k8 _6 `! b: J6 k. ?$ [, x) f) x! S9 _8 j: X
Sub Main(). ?4 u* B9 O0 w" F2 X4 \0 r5 H. _
( l* d# x1 o. k4 I: q" w* e6 t

1 G3 m3 B: f6 x
, t' x( b% N* b% l8 ySet swApp = _
6 ]( o2 ~9 b3 g2 wApplication.SldWorks! _1 J' o. Q- Q
myPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。0 U  N2 B; s3 e; h7 \& d3 l
myFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件
1 S. Y) d/ N( Yi = 0- K' q2 c; `4 k( H
Do While myFile <> ""- q6 m' I7 s6 S- A/ w- C
Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings)
! r: V6 w* }+ `
" C$ N% G. s$ O9 M' J; ]Set Drawing = swApp.ActiveDoc2 i: L/ o2 @3 o% m8 ~6 Y
If Drawing.GetType <> 3 Then Exit Sub
$ M2 G) l: i2 s9 jRetoreSheetName = Drawing.GetCurrentSheet.GetName& u5 l2 A  L$ [% A- [( u) ^
SheetName = Drawing.GetSheetNames
5 h, S) s7 E0 gSheetCount = Drawing.GetSheetCount
* W  i. ~$ u8 v" ~( A7 kFor i = 0 To SheetCount - 1" n9 s6 S$ l+ F! @) v! N% i
    Drawing.ActivateSheet SheetName(i)
5 u1 M- w1 t. x+ ?) _1 W: ~# K& g; ]    swTemplate = Drawing.GetCurrentSheet.GetTemplateName+ v6 M; j. A. ^$ T, M
    swTemplatePath = Split(swTemplate, "")
3 A2 R4 B* |4 \& H! X! U5 c' J5 L9 d    swTemplate = swTemplatePath(UBound(swTemplatePath))
4 L* S2 h  w7 V    vSheetProps = Drawing.GetCurrentSheet.GetProperties()
+ P3 B: w& y% ], }+ M. E5 q# K    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""6 H4 r$ a0 N2 ^/ ]% G* L
    Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""0 t9 @( i9 d2 ?- Y! y) [, Q) M5 a
    vSheetProps = Drawing.GetCurrentSheet.GetProperties()' S( ^1 _$ S& f2 k+ r% W8 p1 N* g
Next
% w4 S0 w0 N: e8 E1 x* tDrawing.ActivateSheet RetoreSheetName
( a! e7 ~2 L$ ~( [- k. s% p; p! M: ]4 j& l1 ^$ Y! ~% ]* d
Part.Save
2 ^1 a( S& G% H, OswApp.CloseDoc myPath & myFile$ x" `3 G7 w$ Z/ X  D) \) }
3 a# H. x7 M! x- ^# [9 P
myFile = Dir '找寻下一个*.文件
, ^3 a6 @- L6 U( ]6 r( n5 Q8 }5 z' r' h5 }  W# R
Loop
& {5 Y0 F  x3 D- v# L3 d1 j! ^; N) G" S. U0 W, F, T  E4 m
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,像图片这样的
& F$ L$ J: a( A8 w或者钣金方面批量处理的VBA,比如批量改折弯系数 批量归类不同板厚零件的' W4 Q( T% t3 c  l4 z

本帖子中包含更多资源

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

×
发表于 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-9-16 05:37 , Processed in 0.070688 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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