机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 22206|回复: 30

SolidWorks工程图格式装换宏

[复制链接]
发表于 2020-10-25 11:36:01 | 显示全部楼层 |阅读模式
本帖最后由 yemao7758 于 2020-10-25 11:39 编辑
+ [$ u* ]3 V$ I: {9 x# b; q6 E+ v3 b" p% u. }
网上找了一个工程图转换PDF的宏文件,根据自己的需求改了一个版本,做了个界面,可以装换多种格式,并存放到一个新建文件夹中,相关说明可以见宏程序界面7 n, a. Z8 I# V2 x0 w, y" A) [7 b

本帖子中包含更多资源

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

x

评分

参与人数 1威望 +1 收起 理由
大白小白 + 1 谢谢分享

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2022-5-20 14:50:34 | 显示全部楼层
不知道有没有用这个,有使用过的可以反馈一下。目前版本有更新。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2020-10-25 15:53:03 | 显示全部楼层
这个必须支持一下,
回复 支持 反对

使用道具 举报

发表于 2020-10-25 16:48:25 | 显示全部楼层
SW里面本身就带各种格式保存的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-25 19:35:45 | 显示全部楼层
展翅飞翔2018 发表于 2020-10-25 16:48( X+ m  I: p: x: m5 I7 w
SW里面本身就带各种格式保存的

/ J& g  V; q3 S+ p我这个用的也就是SW自己的格式保存,就是实现批量转换的功能,节省时间; b$ f1 {" B/ ?
回复 支持 反对

使用道具 举报

发表于 2020-10-25 21:15:59 | 显示全部楼层
能否说明下怎样使用
回复 支持 反对

使用道具 举报

发表于 2020-10-26 08:22:46 | 显示全部楼层
高逼格应用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-26 08:36:10 | 显示全部楼层
cxc0701 发表于 2020-10-25 21:15
: H' O$ B+ w5 X" t能否说明下怎样使用
% |7 @% g2 p. a* Y$ ~
说明已经写在边上了!4 B8 x6 ^  l; @2 c4 ]0 p4 h
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-26 08:38:29 | 显示全部楼层
cxc0701 发表于 2020-10-25 21:15
$ T* _/ Z6 B3 J& v, q5 r5 u能否说明下怎样使用

! o9 L- d8 {3 V2 c- N这是个宏程序,用SW宏功能打开,也可以生成一个自定义宏按钮/ n' ~- j- E2 n4 C: ~
回复 支持 反对

使用道具 举报

发表于 2020-10-26 08:50:28 | 显示全部楼层
下载体验下
回复 支持 反对

使用道具 举报

发表于 2020-10-26 09:10:36 | 显示全部楼层
SOLIDWORKS Task Schedular我试了,根本动不了,自己也倒腾了个宏,功能是工程图转换成PDF和DWG文件,操作是,工具---》宏----》新建----》把下面的代码复制进去----》存到硬盘某个位置----》,调用的时候是,工具----》宏---》运行,当然也可以自定义到SW的工具栏上,宏文件源代码如下需要的拿去,:
1 ~( G! T8 J* s) W) ?Dim swApp As Object% ^' A9 B, ~% q1 d* Z0 A: \
Dim Part As Object, s0 ^6 W/ b3 s4 P" r/ o0 ~' Y! y/ Z" ^
Dim boolstatus As Boolean
$ ?; V. M: K3 M) kDim longstatus As Long, longwarnings As Long
( W- N, K7 S7 ~4 X) u5 qDim PathStr As String+ B/ K9 Q) Z( I
Dim FName(500) As String, FNum As Long
6 j5 e8 i* D1 x3 E5 i/ [8 J& `+ t& u8 F" {1 s3 ]
Sub main()
6 ^$ |: V% r( J* c4 dDim i As Long* p# Z* M* ]; Z: J7 S' n
Dim PathStr0 As String, PathStr1 As String
1 t/ w" w# V3 w9 ^( JDim PathStr2 As String, PathStr3 As String, PathStr4 As String, PahtStr5 As String2 R& x$ \  n- Z
Dim L As Long, L1 As Long' u( ~7 k6 a/ m: ^3 |- u
PathStr = InputBox("请输入需要转的工程图所在位置")
! ?1 }9 z2 X) ^1 A4 r! nCall Showfilelist(PathStr)
2 U' H1 _8 |# y% ]# B0 W( K' kSet swApp = Application.SldWorks
9 D+ r' j  E0 B$ E4 E) j9 N
8 V4 G- B4 q( k1 E& JFor i = 0 To FNum - 1
5 E( ]  u- b- k, j. J    PathStr0 = PathStr & "\" & FName(i)6 E: p: A1 d# {3 e* F* x
    Set Part = swApp.OpenDoc6(PathStr0, 3, 0, "", longstatus, longwarnings)
4 Y( t- ~7 ^3 }' r    L = Len(PathStr0)9 r2 }# Z! W; c0 Z# {
    PathStr1 = Left(PathStr0, L - 7) & ".DWG"; ^& \3 K" b2 C6 ?0 Q4 g' C) v
    PathStr2 = Left(PathStr0, L - 7) & ".PDF"
  n/ B- t5 P" ^8 L' g6 T    longstatus = Part.SaveAs3(PathStr1, 0, 0)
/ A3 y- F$ R' g3 ?; ~  \& @! W    longstatus = Part.SaveAs3(PathStr2, 0, 0), A0 e$ F% F' B
    $ E8 A( ?' Y+ w& e
    Set Part = Nothing
# B8 Z0 Z+ \2 n# ~2 J2 {/ f& `; \   
6 Y' }0 f% v+ {2 _2 ^    L1 = Len(FName(i))
+ J2 ]# S$ Q/ O% y' y! z    PathStr3 = Left(FName(i), L1 - 7) & " - 图纸1"
4 O  r# M) i! A, I) B3 q* R8 v    PathStr4 = Left(FName(i), L1 - 7) & " - 图纸2"
" ^* @& G7 }- e% |3 W, u    PathStr5 = Left(FName(i), L1 - 7) & " - 图纸3"- P; Y8 J! e, T
      R. ?, ?1 W) f; p; t
    swApp.CloseDoc PathStr3" x( r% _" h& b1 J+ @7 h7 ~
    swApp.CloseDoc PathStr4* A0 e: K" J+ [% X2 p
    swApp.CloseDoc PathStr52 @6 o& r! u$ x) S7 v2 u* J5 F: t, B
  ?9 d6 Y1 c" l; y
Next i$ z4 `, s5 n# F0 k; l8 a8 a
% }$ a, E( ^% |& {, w
End Sub& Z/ D/ K4 `7 ^9 w7 j; N+ d3 r

5 @2 n& B) u0 A5 k2 WPrivate Sub Showfilelist(folderspec As String); V; X+ ]2 S& T/ D- H
     Dim fs, f, f1, fc, s3 p: j: ]) b' Q9 ?  c+ b
     Set fs = CreateObject("Scripting.FileSystemObject")5 e  H  p7 e) ~
     Set f = fs.GetFolder(folderspec)( T. H! W6 O! |- A" i
     Set fc = f.Files
1 a# {! ]2 X0 a% M( ]0 _4 U1 h     FNum = 0 '清零8 p1 K9 U3 ]2 Q. A6 w5 R" D3 @
     For Each f1 In fc
  @1 g# U! W* K$ ]1 M/ j        If InStr(f1.Name, "SLDDRW") > 0 Then! Y1 y" R/ e  q' x
            FName(FNum) = f1.Name
  i$ [) J8 m  h! D# \" E            FNum = FNum + 1
( m: R+ y2 s: _8 j/ t1 l/ @        End If
' Q2 g. Y* y# Z3 j, L, w' D     Next  N8 n3 v2 s' r' m
End Sub0 m0 r7 b- b+ T2 v/ b
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 19:48 , Processed in 0.059842 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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