找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2768|回复: 9

关于SW宏程序

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

点评

先定义,识别图纸名称变量,在用该变量替换红圈图纸名,  发表于 2024-3-19 21:21
发表于 2024-3-19 23:35:21 | 显示全部楼层
工程图下导出PDF+DWF,部分宏2 I, I1 w+ t4 b- g' J, q
Dim swApp           As SldWorks.SldWorks  ~* _* c' z0 E. M7 O+ T  c
Dim swModel         As SldWorks.ModelDoc2, ^# k8 x$ o$ i2 @9 `2 L+ g( _

8 Y" r, M! D6 P3 @+ B8 z" K# GSub main()
; n" `9 R4 h# X: s9 D$ H. g5 T& ^- v" K3 U. j
Set swApp = Application.SldWorks
8 e( ?' j! X9 F2 LSet swModel = swApp.ActiveDoc0 c, |) N- ~. y

/ L7 m4 \+ \" Y1 h% G) H+ S$ m' Check to see if a drawing is loaded.
2 x, V. B2 k1 B& I( Z6 |8 mIf (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then! @( M5 a+ U$ u- }% g7 r( a
0 r* @- K3 u/ d4 o, K
swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")/ k# o6 ^8 C) P2 w; E  R" c: x
& f  m: k' S# t3 v2 ~) x
' If no model currently loaded, then exit( F- a0 R  c- ^/ p' W( }  u$ v3 ~0 Q
Exit Sub( P! Z6 O$ ]- z& f- W

$ r; D2 Q$ S3 _$ C3 w2 mEnd If
% W  C8 H* j6 C% `( d% ?2 y9 T; M9 V- C+ r1 q- c3 }& z1 X0 y9 Q
Set swDraw = swModel
# Z1 e0 M$ r) W" U8 q/ J( c6 mFilepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
+ ?; u1 ^; N/ p( S8 F% w+ S& z$ D$ G. S9 O$ P
If Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
$ D2 N: K& O; Z0 D9 B/ }, sMkDir Filepath + "导出图纸" ' Change Sub folder Name here
% ?7 }+ L- g, u! P" vEnd If. Q3 F( z0 o( s! f1 C! ^) P
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here9 k' H1 j+ J( |% o, m/ ]9 g

2 R4 `" N: n( u4 R, H0 A) X5 C2 WSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")* f# o. j+ J6 X
   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
- g$ t; v. y( u1 m% [' Q) D+ ~; r6 t
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)- e2 h: M' G6 C; f
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf") m) t, g9 t& u! z
swDraw.SaveAs3 Filepath & FileName & "", 0, 0
; {: g; W4 M( d  A: [" z. J+ w$ C5 W/ [. U9 k% e
'-------------------------------------------------- SAVE DXF
, ~; z) c1 a4 @0 m0 m/ A+ q. S. {4 Y) ]- \: Z5 e0 t$ R$ s; b
Set swDraw = swModel
" B/ e; ^1 r6 ^4 ~5 i! iFilepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\")); x1 t) D9 E4 V9 w8 u1 B
If Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here0 M' t2 u7 z: }1 N7 \! ~
MkDir Filepath + "导出图纸" ' Change Sub folder Name here; n6 v' F, C; r- G( ^0 c" g6 H
End If: ^( ?$ e; r& c9 A* m$ r& q
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here
) ~' t' f' ?. \; |1 x$ I* O2 g2 k
- j7 @( a5 c! d2 i! S1 gSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
5 m: P2 G: y* W; G+ E6 M   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
3 R! o, E, F' F: V
2 z* u" B7 S' g9 H  qFileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)+ W; V% X: e! l* d
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"3 i" M: G5 }  R( W, E  c. `
+ w0 }! A6 x* B( {9 C3 h- m3 p" {
swDraw.SaveAs3 Filepath & FileName & "", 0, 0- f$ H8 b- x6 W( Z
6 S; B* V; t" W7 L' C& M
swDraw.Save  U% m/ r# O, U! l3 ~: t$ Z& {3 v
/ q. [1 @0 s4 n9 x: S0 n9 C
'swApp.ExitApp '关闭SW软件
+ D+ q8 D2 @9 c- \% eEnd Sub
4 S4 V' d1 p' ^" u2 @3 D5 A, l
6 J: Z8 ~! N, u4 B$ v  d! Z. U9 ?# _- L3 a

点评

论坛,高手如云啊  发表于 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
$ a" _5 D: F" E( S7 e# T) k! t宏怎么用都不知道

7 W* {: @+ t4 S- j3 T很强大,可以了解了解) W/ J, c: u+ m' Q9 {+ x
发表于 2024-3-22 11:23:42 | 显示全部楼层
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑
% v( Q& e# ^0 |2 Z1 L5 z8 n9 H( {/ A- y/ H0 i
Dim swApp As Object
6 H- `" j' g% X6 f4 ^2 r# _! P+ I  d" e( h" \) S
Sub main()" }, @6 P& P( y# b! i4 N
, B- @% ~. z7 T- J. p/ Z
Set swApp = Application.SldWorks
3 e0 v, @: R. M- [9 ]4 O$ RSet part = swApp.ActiveDoc; B- |1 J. P/ s5 a
, g! Z- x' K: _9 o. D
If part.GetType = 3 Then
: K2 {2 ^0 [2 C0 M. n9 F5 h: B0 ~0 H5 N6 i* O/ K( q
part.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF")
+ T# E& B! U: @9 [  / B: O* q* t' ~9 n0 \/ D
swApp.CloseDoc (part.GetTitle)% P5 R3 J8 o1 \- }4 ]

) @. q# V* y4 {( IEnd If7 [: `, B! N& A. E% N  d' R/ z8 R
  ' ?4 `# R4 k0 \4 U
End Sub

点评

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

本版积分规则

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

GMT+8, 2025-8-5 20:37 , Processed in 0.072121 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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