找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2909|回复: 9

关于SW宏程序

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

点评

先定义,识别图纸名称变量,在用该变量替换红圈图纸名,  发表于 2024-3-19 21:21
发表于 2024-3-19 23:35:21 | 显示全部楼层
工程图下导出PDF+DWF,部分宏
9 J7 z: r/ D( Y6 DDim swApp           As SldWorks.SldWorks
( `$ V4 p4 O9 `! m: X, ], ^0 QDim swModel         As SldWorks.ModelDoc22 t/ ~, ^6 N7 g0 A" H- o2 S# x

+ A/ \6 G3 L6 t$ |$ pSub main()- c1 f0 N6 x9 }) U
: L$ e. D8 z/ ^' j2 d2 b
Set swApp = Application.SldWorks8 i& i4 \8 e! a+ A
Set swModel = swApp.ActiveDoc7 T+ w# E9 n: m, H6 C9 p; W$ }
' k: n5 K/ `$ }4 D# I
' Check to see if a drawing is loaded.3 }1 @& k, e; B& w$ F2 C  ~2 ~- \. p
If (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then; O/ s% M; U, C" N* g
' {3 D; w5 G9 s  K  j) S
swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")" k& K3 w% ^, N9 G% H  u
2 j. X# G* [. E! X- V1 e
' If no model currently loaded, then exit" L# \# h  ?. e* |$ N
Exit Sub9 e. ~; A% g- T4 t: R5 C

' U7 D5 ]9 @( _& L' H6 o( D0 Q" O  rEnd If1 T3 G( _, ?' Z9 [/ E8 {* u

8 X+ |( U! H/ G% fSet swDraw = swModel  d" D8 O/ b" o& a6 x  @
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
2 c' @: s( b  W9 d' d( `/ z
& u; Z& z+ V' J0 i! cIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here) t- Y; f4 A. }6 U3 ~- }" T
MkDir Filepath + "导出图纸" ' Change Sub folder Name here" z: S9 B, _3 L' L
End If
1 i' B& E3 `# Q% r. i1 a( NFilepath = Filepath + "导出图纸\" ' Change Sub folder Name here( [1 k$ L6 I7 i+ ?9 Y
2 a* G9 p  L1 j# F( \. [
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
% j) J9 x0 }" L4 N2 N! i5 l   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
% z  M3 U6 w9 c8 Y0 j5 O8 I+ O6 b1 [- ~) ~5 [2 y
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)1 p1 M# H/ X, m: ?" g& T* S
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf"
% ?7 T. N7 Z% f2 zswDraw.SaveAs3 Filepath & FileName & "", 0, 09 w1 L& y4 t& `1 \! w+ U5 K9 \/ L
# K& O5 \( U" I7 B1 O/ N( ]
'-------------------------------------------------- SAVE DXF
) j: {& b1 y2 M0 i, {. i1 [3 v' W
- x  {6 ^4 c( W. dSet swDraw = swModel5 t- T, r7 |( r6 t6 T, g
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))7 {; l" z9 A8 B- a* |# a
If Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
' M4 B% T) V1 _4 b, P1 W: e1 DMkDir Filepath + "导出图纸" ' Change Sub folder Name here
) `6 ?6 n; [  m4 a  AEnd If& B5 Y3 \2 }. y9 t
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here. u* g4 R6 _, k3 S
: p2 Y1 Q; n* p1 ?+ b: c
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
7 T9 u- }$ N% B3 ]5 L$ o* W; s4 x   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
: K* w  v; z% s$ s" E# {8 k
) C" C$ P) x5 X9 P) AFileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)8 n0 B2 C: j! k; \
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"* b, t, Y( m. w2 Z+ p" p" `, r

4 |) F$ h: u4 v' |7 y# h$ U$ DswDraw.SaveAs3 Filepath & FileName & "", 0, 0
4 b; \9 K! E& P8 u0 a8 e3 R5 z5 A1 W, ?2 P; p7 h3 n+ y7 q8 ^' u1 \
swDraw.Save3 y1 |, ]2 ^0 b- P: m/ R. C, f

3 ~5 i1 R( t" R5 P' w'swApp.ExitApp '关闭SW软件
9 h% D! R$ Z9 F( _7 N* C! KEnd Sub. M  ~2 t' g! T" A

# k4 g* k+ a+ a" i1 h: g3 O! _. r2 q2 ^- C

点评

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

评分

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

查看全部评分

发表于 2024-3-21 15:42:11 | 显示全部楼层
宏怎么用都不知道
 楼主| 发表于 2024-3-21 16:26:50 | 显示全部楼层
大兄弟aa 发表于 2024-3-21 15:42
, u4 n6 V9 C6 B6 Q2 `& m宏怎么用都不知道
0 w3 k. E) \+ h( G: E! X
很强大,可以了解了解
; v( D  Y, o/ `: E7 }6 o
发表于 2024-3-22 11:23:42 | 显示全部楼层
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑
: Z+ @2 K7 o# N; U- Q
! k- \/ V8 f4 i, W( W8 N: [Dim swApp As Object+ s% F( }, @$ s+ _% Q* L0 G
: y# a) n9 `7 D' R1 H& P' j$ X
Sub main()% M$ O: f6 Z/ j' S! v

; L) r# h8 j2 h( d$ CSet swApp = Application.SldWorks
7 m6 B( w$ Q% q! |! n- U% K& L+ bSet part = swApp.ActiveDoc
: P4 f. U, S) F5 h. g8 X  N3 T
" u4 j+ O8 D- Z/ e( M8 DIf part.GetType = 3 Then
- V& A* u3 H' l1 g/ A* w
7 O9 L$ J8 s; v6 ppart.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF")
0 ]1 b- D/ c& A2 b  7 e  ~: _; [/ S! z5 d! ?
swApp.CloseDoc (part.GetTitle)
+ W3 Z" k, ]5 v' C7 `
. V' C2 A" N+ u" P4 h) [' Y) z$ cEnd If
  q5 w' J; D' ?; t+ G  
! u" @% v3 l. s+ \3 M, QEnd Sub

点评

谢谢  发表于 2024-3-22 12:30
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-9-20 15:55 , Processed in 0.149613 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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