机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2302|回复: 9

关于SW宏程序

[复制链接]
发表于 2024-3-19 16:10:50 | 显示全部楼层 |阅读模式
昨天略微涉略SW宏程序,今天想整个一键出CAD及PDF的宏,奈何,不会设置宏读取图纸名称,再把红圈那设置成对应图纸名,以致出的CAD及PDF都是固定名称,有没有大佬知道咋先读取图纸名。感谢。* P2 x5 W0 ^/ L2 z% ~9 m6 Y

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

点评

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

使用道具 举报

发表于 2024-3-19 23:35:21 | 显示全部楼层
工程图下导出PDF+DWF,部分宏
: |' }* [- f' V3 D7 zDim swApp           As SldWorks.SldWorks
# U& ]9 \/ l( r# tDim swModel         As SldWorks.ModelDoc21 d% q7 m/ O* O. V6 H, y% L, Z5 T* R1 s
4 ^# _& G  b, [
Sub main()
- h: G2 ~- `: ]  A2 h5 h% U: ^/ S/ I2 t4 @; }( h- Q1 K) O' k
Set swApp = Application.SldWorks
9 s8 W+ p* Z+ K5 l1 B- t, WSet swModel = swApp.ActiveDoc* X$ v9 j& ^( h/ e6 o

1 q+ E1 J9 j; _* h8 D; E7 B' Check to see if a drawing is loaded." \. A! ^" K6 B
If (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then
6 C- [, m* p+ R" l* \+ [( G% y+ @3 [, G/ E. b3 U, p7 A- \) @" o9 H% {
swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")2 C5 N4 H, K$ b9 H5 ?4 ~' a; D

( u, V7 c! Q0 ]1 N. {% T; S8 g5 k; ~6 O- u' If no model currently loaded, then exit! C- \0 M( M1 P0 \, g& j
Exit Sub
8 |9 B' {! k1 J0 K! I' Y% i5 ]2 }8 A
End If
9 r  s6 c9 e( I' T- c2 `. g" [. t
9 P7 l8 a" |/ j& U3 ySet swDraw = swModel
4 Y$ }4 Z& h) @) v( fFilepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
  d% a- b+ H: D5 G' ~: H; ]) v7 C0 r3 r
If Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here% Z4 g  r, e: Q6 d8 P  J* t+ n
MkDir Filepath + "导出图纸" ' Change Sub folder Name here
; m8 Z% K7 m) h2 F  bEnd If7 b' e) i: m0 D! d
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here
) B4 U- p7 ?. R
' ^$ d. M: v! z, P/ gSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
9 [5 `9 k0 @3 u* G" Y2 x   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev": _$ E: m. u& t: x) r7 X) M. W

4 |. Q7 z0 t8 V: w; nFileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)* |) D* R- r& |% W+ Y8 o& |/ `
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf"
- j5 P/ W" A5 J" V, _2 U' \  vswDraw.SaveAs3 Filepath & FileName & "", 0, 0
+ `' f9 u9 I4 a0 J$ D+ Q2 Y" B
+ }! Q$ D6 S0 U0 z'-------------------------------------------------- SAVE DXF( `1 W3 j4 y5 E- J

! \* l# g. g" M# z; eSet swDraw = swModel/ V: ~8 L( N( J& G# w6 S0 F
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
# `/ p) C+ k& N1 ~" i) CIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
  z3 m- w* S4 P6 Q. g. xMkDir Filepath + "导出图纸" ' Change Sub folder Name here
/ Z  n# f+ R" E2 |End If
3 E' Q! \4 z, LFilepath = Filepath + "导出图纸\" ' Change Sub folder Name here" n# w- ]- [. {

2 r! W$ y5 K. N- jSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")  ~6 n- }, M; H4 O) l
   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"+ S7 c% a2 b; t$ H2 N
" g4 g5 u+ Y  |4 M
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
( z2 c8 t! Y$ }7 H/ z1 fFileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"
: f8 L$ a& e2 {5 F9 W& P. Z) F2 j1 c7 _2 g# Y- }# p
swDraw.SaveAs3 Filepath & FileName & "", 0, 0/ K3 t/ Z/ w. c1 S$ U
& B" m6 Y* R& z4 T2 Q4 s
swDraw.Save
# H, O! K+ R0 p& C7 T* D6 X6 c; g/ u) S
'swApp.ExitApp '关闭SW软件
; z& x7 N: z! L4 p! K: ]# t6 W) pEnd Sub9 E/ i6 C* _% \6 I
9 c+ H. A& a- A& @8 B) o  I5 |
  b$ z4 V% ]3 B: v) R

点评

论坛,高手如云啊  发表于 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:423 {1 R( ~0 e. X$ q4 f: Y# n
宏怎么用都不知道

7 _/ |& t1 `8 A! r  |很强大,可以了解了解2 r2 i  \% }- s! N
回复 支持 反对

使用道具 举报

发表于 2024-3-22 11:23:42 | 显示全部楼层
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑
9 e' y7 V5 X5 v! X- T
2 f; H" C3 ?+ |+ U/ O: D2 fDim swApp As Object
& b; s% u5 U8 O" K. O' Z
. }: f" ~- w" J  w' `Sub main()! p8 u9 s' C- ^: z
( }7 D$ N+ A# R' _. w
Set swApp = Application.SldWorks
- J' K. t1 i+ t1 N5 _6 l5 e2 t$ _- BSet part = swApp.ActiveDoc0 w* e0 }3 O/ `$ O1 d

* C. W3 o$ C% g0 cIf part.GetType = 3 Then8 m- z5 R2 b) j$ {4 B- j$ w

" Z, Z5 u5 V% I# @# mpart.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF")
$ U' ~' W' ]( E  
7 N9 W' T. e! c3 H& EswApp.CloseDoc (part.GetTitle)
' D) C. H! P5 x: a  L: X
, s+ u0 i) y* p7 K, MEnd If7 W- f" v/ A4 m/ S
  
: i6 d, a, b& O# G7 _0 K9 AEnd Sub

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 09:27 , Processed in 0.053013 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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