机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1790|回复: 9

关于SW宏程序

[复制链接]
发表于 2024-3-19 16:10:50 | 显示全部楼层 |阅读模式
昨天略微涉略SW宏程序,今天想整个一键出CAD及PDF的宏,奈何,不会设置宏读取图纸名称,再把红圈那设置成对应图纸名,以致出的CAD及PDF都是固定名称,有没有大佬知道咋先读取图纸名。感谢。! N' V' L) x  |3 }, {

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2024-3-19 19:29:44 | 显示全部楼层
描述一下你的需求,

点评

先定义,识别图纸名称变量,在用该变量替换红圈图纸名,  发表于 2024-3-19 21:21
回复 支持 反对

使用道具 举报

发表于 2024-3-19 23:35:21 | 显示全部楼层
工程图下导出PDF+DWF,部分宏% }. H1 C# E) }+ j9 S
Dim swApp           As SldWorks.SldWorks
2 k* L2 n6 l) a. Y( r' GDim swModel         As SldWorks.ModelDoc2: m' K) X3 Y7 O7 M! F* q% e

4 y, ~/ H( x2 {% J) }Sub main()
! D. f, x( k( }0 f) F
+ j0 ~: H7 I# b$ F$ I9 GSet swApp = Application.SldWorks( \7 z& ]" a0 i9 e4 i$ G% d0 [
Set swModel = swApp.ActiveDoc0 K- g" W  Y! j& G. Z

& n' `1 [- p) o. [' t+ V) O' Check to see if a drawing is loaded.
  ~) D  ^$ P7 v* i( n! [. G& n) WIf (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then. ?/ U' ]$ s: I- }: r) }; Q% T; r
% b# S3 P$ o% u( v1 p0 }
swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")
% n9 Z! b; |* \9 r/ i1 Z6 J
+ ~  e# U3 k1 L# T. ~, m' If no model currently loaded, then exit( I2 i+ U# `2 h. N
Exit Sub. [; y* N2 l5 L% ~4 U" O
! O5 H8 {* {$ |2 r* R2 f
End If
2 S) B5 O; l' P' ^2 r, j$ ^
1 b  V2 a+ {6 F# d( a$ wSet swDraw = swModel
+ z! y0 u- r1 l, t/ t) L, @Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))) V% c( |9 `$ A# f0 ^

/ h8 i- c7 A7 ]) c9 jIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here2 R, T. c" b& C2 w3 W; n. F
MkDir Filepath + "导出图纸" ' Change Sub folder Name here+ o( C/ E) O8 k1 J" j& ~9 d5 [% u, ]
End If$ [  Q# w5 F4 y, g8 [: f
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here" U$ L4 {7 G! p+ e/ a0 J3 w+ T% V
) e4 O1 Y9 R5 w( b$ U+ T
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")3 h* h& [1 o1 N2 o+ N
   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
* N" d# M, q& n9 m6 H% }) {- r: a/ ^5 H# B# Z
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
- |7 v# M! N. O; k0 X3 pFileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf"
, c2 y9 U, t5 x# p7 zswDraw.SaveAs3 Filepath & FileName & "", 0, 0
3 H5 C" A5 F, a* Y5 ?0 l; b6 m5 `) u, L% c
'-------------------------------------------------- SAVE DXF- R$ P' I1 E; i2 D! p) G

! w) L# ]1 R- m2 R$ ^Set swDraw = swModel- }: c+ r! P1 p- G& Y7 b: x) F4 S
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
  u- Z) W1 m# |# I; v4 K0 xIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
3 d. Q" p# Q0 d4 E7 yMkDir Filepath + "导出图纸" ' Change Sub folder Name here  \- A1 A( Y: H2 G
End If' s- e' {. O) D: ?: N
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here! z* [0 L2 K' n: y
. \+ U  y+ J+ f8 H# s
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
7 t" ?+ Y9 @( _- [& I3 z   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
% C& F$ _4 L; V5 G. _' U2 l0 j" z, R  T5 O$ Y- [" T- {; _
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)" _% K; k7 l; l
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"
# i% w+ P" h% }) E& K4 ]& l) q. V# C; q" B- \# H6 M0 i
swDraw.SaveAs3 Filepath & FileName & "", 0, 0
6 T* M# v1 Q: H% u5 F3 r
" N, J& t$ f4 s" \9 x. l2 Q0 QswDraw.Save' W7 _/ p/ k6 e7 ]
! o" D% B% Y. l2 D. e! x# }0 T
'swApp.ExitApp '关闭SW软件
4 i: n' N! {3 iEnd Sub
5 o; x# L! {- T4 S6 f5 ~) N8 _+ ^# h; g4 \. p; I8 D: a6 S8 H

3 W* A* P" w) r% t

点评

论坛,高手如云啊  发表于 2024-3-20 10:36
非常,感谢,正是我需要的  发表于 2024-3-20 07:59

评分

参与人数 1威望 +1 收起 理由
shengyz + 1 热心助人,专业精湛!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-21 15:42:11 | 显示全部楼层
宏怎么用都不知道
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-21 16:26:50 | 显示全部楼层
大兄弟aa 发表于 2024-3-21 15:42
5 G; P5 d' S4 d7 ~& |& X宏怎么用都不知道
; e' u; ?, i+ ^! J# z. o6 p. S6 u
很强大,可以了解了解" _$ s. _1 G& M4 ]- n
回复 支持 反对

使用道具 举报

发表于 2024-3-22 11:23:42 | 显示全部楼层
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑
" ?' z' Z  j! j% S% N! d+ P4 r0 l9 @3 M' h- U- m# Z4 Z9 b4 R
Dim swApp As Object
% {) U" E: @$ n$ E6 U9 R  J) l: s7 @( Y; M% b3 l& ^
Sub main()
$ B* ]6 A# W8 m0 i8 r  C8 `& d. o( z8 C
Set swApp = Application.SldWorks' {' g- w+ z4 x) B( o7 s2 u
Set part = swApp.ActiveDoc
1 q2 d. I* W2 b$ u" [7 H  A- ]5 F3 b' Y* U! E, }
If part.GetType = 3 Then
- x! S. }3 \) I/ Q( {. ?/ U1 O; h: ^7 }1 ^  m) h6 w# I" [
part.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF")8 y1 v* y! h' b9 t0 E, n
  
" Q0 q) v/ p+ h: i# U4 ^swApp.CloseDoc (part.GetTitle)
. }& s: M$ e3 L' m+ _# i, A8 d6 u9 x) o" S/ k
End If7 \) e( K1 l* d6 ^
  : P* _6 y* [! T" p2 B& |7 L! j
End Sub

点评

谢谢  发表于 2024-3-22 12:30
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 01:14 , Processed in 0.060393 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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