找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2665|回复: 9

关于SW宏程序

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

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

点评

先定义,识别图纸名称变量,在用该变量替换红圈图纸名,  发表于 2024-3-19 21:21
发表于 2024-3-19 23:35:21 | 显示全部楼层
工程图下导出PDF+DWF,部分宏
, a1 M$ f# f, N9 H" RDim swApp           As SldWorks.SldWorks( O, u" ~2 j* q1 W* s
Dim swModel         As SldWorks.ModelDoc2
' {3 w" y0 {% A4 P/ L- _/ c, q! s
, _6 C- w3 `; dSub main()
% B, o* B' f* Q% U3 O0 U! d' B! z' @- M) Z7 q# a- h
Set swApp = Application.SldWorks
+ w- O3 X3 H- A8 O/ `" sSet swModel = swApp.ActiveDoc2 ?# }5 c, W; d2 {/ g/ o& g1 A
+ O7 p+ c/ \' M% i4 ?+ Q; p6 G5 M
' Check to see if a drawing is loaded.! d% n0 Z. V$ {& g+ \! I' A  I
If (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then) f9 b6 N9 H' o/ K

" N5 A3 a  v0 P* ^swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")6 Q& d; S8 F4 s2 F: E1 J2 P
# a# Q) ~5 s8 j9 D% p: @4 P4 y
' If no model currently loaded, then exit( |4 N6 s7 G! P: N0 |
Exit Sub
; d; ?& I7 @; @5 F/ A& L5 _
) |2 I9 Y2 d' m) {5 wEnd If
/ H: K* U; t% h
5 L% p# H5 B! C2 B! h) gSet swDraw = swModel
6 I& r8 N# `! g# W& D2 M+ uFilepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
' j" B& X: m* w$ h. ?, S- J
* Z2 s8 \! G5 g  }: I" F, _* [If Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here* S$ B. u5 F. N  f9 B7 N
MkDir Filepath + "导出图纸" ' Change Sub folder Name here
: n" I0 H/ [; P- }5 L$ gEnd If0 M6 P2 X: T: @2 R
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here8 [0 |5 U7 h4 A+ @/ {
7 `" e5 T9 g* y0 v
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
2 K/ w2 K6 V& m, X( X5 B0 e9 m& u9 ]4 e   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"& d% n, E* L" w$ P( J2 Y
2 S" \- L0 p9 ~( R* c
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)6 s" J! `2 O1 c3 {. ]; P% u& Z
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf"
& O1 n9 {3 C" Q; P+ ], XswDraw.SaveAs3 Filepath & FileName & "", 0, 04 R9 m) ]: [2 b

$ v% f, _* X% d% B; b2 w7 f5 M4 r# }'-------------------------------------------------- SAVE DXF' e- y0 B$ j! h( ^

9 T8 f- ~2 y* W0 F( ~  K* _Set swDraw = swModel; S4 U: C1 C2 _7 ?" z$ u% `
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))- ~: u$ o% m4 j% R8 T1 \
If Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
2 s7 J* ~# U0 W! C) EMkDir Filepath + "导出图纸" ' Change Sub folder Name here
. l; {  c% \/ fEnd If" v' t0 m/ f! b6 H9 ]/ a0 K
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here
' X- X! n5 A7 R) N) m3 }" Z
1 T+ J: @. N5 K# J! FSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
/ E6 e. x8 }! ~& w4 f4 N4 V   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
3 ^6 M8 A0 J# [2 Q+ q3 q
/ d2 D$ N/ K1 [) vFileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
' u6 ~2 \( H  [& d: P  t& w/ F* v  GFileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"9 Y9 n( n# N" ]7 o. k3 ^
" V& y; m3 {2 ~/ Q- x- d( F
swDraw.SaveAs3 Filepath & FileName & "", 0, 0
9 D9 S0 O+ r- K1 ~% K/ p
, o6 `+ F$ Q! [# SswDraw.Save
3 q6 M7 B4 k# N* k( |# W2 z6 d
+ u# i/ {3 k" `  J& P* Z+ F3 o3 z/ U'swApp.ExitApp '关闭SW软件
1 ]- n; r" [$ Z( O# P8 Z2 [+ H, w% pEnd Sub
  q9 m! w0 R0 H8 |- `8 p
3 M, L) |* ?, x! f. R2 W- D+ L$ G- U; o0 ^' g

点评

论坛,高手如云啊  发表于 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
9 X6 e7 h0 _/ p' P宏怎么用都不知道

3 t: [5 e3 ^( z6 M$ s很强大,可以了解了解
! G+ q+ D2 ^0 G3 V/ ^5 u4 @( q1 L
发表于 2024-3-22 11:23:42 | 显示全部楼层
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑 * @; _* t+ `5 Y( U7 q0 a9 l6 ~

. f6 f: B0 Y) h4 q1 wDim swApp As Object
7 Y) }- J* n; S
! e4 v( y$ q( \( LSub main()
% `) O% H  [: i) x* O# O0 b$ ]8 q% \" z: L  I: M
Set swApp = Application.SldWorks/ j9 A1 h# Y" j; G! ^
Set part = swApp.ActiveDoc# B0 Z0 A. L! B# h% K6 a. g- Z

1 m$ [/ t1 ?/ O9 x' s, a# P1 v$ ?If part.GetType = 3 Then+ i' D3 C. U' I! c0 g+ {3 E2 c

2 j4 P8 s/ ^% D  s( i0 m# Q: @( [part.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF"). j4 m) c0 A7 ^8 w
  0 x3 b' Q5 h/ y! O+ Q
swApp.CloseDoc (part.GetTitle)/ s; {* i6 \  J7 D

. y. U. I4 ]. |0 s& d) p5 E. KEnd If
* C- s8 o# x/ P$ E" R! k/ v  
% _* E) w1 o* P! U1 nEnd Sub

点评

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

本版积分规则

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

GMT+8, 2025-6-18 17:49 , Processed in 0.068134 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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