机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2548|回复: 9

关于SW宏程序

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

点评

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

使用道具 举报

发表于 2024-3-19 23:35:21 | 显示全部楼层
工程图下导出PDF+DWF,部分宏" ]2 s' ]3 p* `' \) _. ~1 a
Dim swApp           As SldWorks.SldWorks! U& R# T# Z" I7 f
Dim swModel         As SldWorks.ModelDoc2( Y6 L* k& O0 B  V. B

' @) ?7 F9 `4 G" g1 b. aSub main()
- e( Q+ [* Y' i- {1 G; {. U: W, y* s3 t
Set swApp = Application.SldWorks7 e- d) X1 z6 ], M( @* t" ]2 [* E
Set swModel = swApp.ActiveDoc
! ^; a9 ~* h: F: g. {: Y! p/ q9 Z" V4 G  i" `1 S1 a( `: P+ a
' Check to see if a drawing is loaded.9 [! U; j" X. J) X: w
If (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then0 J3 ^( l7 g( \. h; k& W5 v4 \/ W3 `

& b- |9 @+ b/ }swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")
2 M: j. e, g- b/ p9 a, M" ^  d1 [
, I# P: [+ d7 g7 P* y( N7 e! j' If no model currently loaded, then exit
8 j% y7 ^' z9 |3 v( XExit Sub3 B# d4 T8 `: J6 R3 p  J$ X
4 L# K8 d% @, j* L+ l
End If
/ ?9 l5 U6 H# I& e0 a* M  K6 q8 K
: \& p' M, I6 L  L6 pSet swDraw = swModel
8 l2 d: D  B- e( fFilepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
& I4 s& [' B0 I2 x
5 n) [, s% R3 m3 oIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
7 k$ l" x0 _- m' v% m4 K) S+ X+ b- VMkDir Filepath + "导出图纸" ' Change Sub folder Name here
: u9 M  i4 q- ?, J$ F. J; [/ ]2 WEnd If$ y2 x6 Y# @( K2 m0 H  r) u
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here
4 N* T* r. J! Q0 T* L+ N6 `. i' Q
Set swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
% k7 P  Y2 k  L. X9 D   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev": }) C1 ?9 u: Q( p( h: Z
6 S* [* g% a1 J; ?2 B
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)2 J2 L; L& d. G; R! G0 U9 \$ ^
FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf"
0 C  {* i( f( I% f' r4 k8 \5 cswDraw.SaveAs3 Filepath & FileName & "", 0, 0
9 P6 A6 ~# K8 p8 N2 C# v2 V- w7 V+ L
'-------------------------------------------------- SAVE DXF
, s( T1 k$ A; K, c6 |$ `; F# q# X3 Z9 U2 G
Set swDraw = swModel9 l5 F( R" b" _  f; Y
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
/ @5 x/ t9 [! TIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here( H  S+ w) N2 `& p4 W5 W6 x
MkDir Filepath + "导出图纸" ' Change Sub folder Name here6 e; Z* A- y3 f
End If3 _4 n6 ]6 _' K9 }* u$ [
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here% N& ^! n/ z( K4 b! e7 x% n! O) {

* y; d  p% I. k' |! \. }: k+ kSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")
! X" t2 z3 W( I  L' Z3 Z: m; H. X   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
; {* W8 q- n! e6 S! y# c, q
# W9 B, C" c  C0 K& q% oFileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
+ n; Y1 A! t) \& ?- m1 h$ w5 L/ IFileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"
9 B7 y  [# q9 Q' h" U" i
) R: ~* I2 ^& d5 nswDraw.SaveAs3 Filepath & FileName & "", 0, 0, Y+ v% u' C, b
9 L$ {# c2 f- H
swDraw.Save
) a) z! G# d5 I: M# v: b3 u
+ N. K) _- d5 n- _( M'swApp.ExitApp '关闭SW软件, `' }% M: X8 `, A0 _3 a! f
End Sub
0 M5 M, o  M: w) V- B5 p8 i& U; K9 r. f* f
" ^( }( S& ]7 B8 b4 j

点评

论坛,高手如云啊  发表于 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:422 D4 F: c" m. r; Z8 s9 _/ \
宏怎么用都不知道

% L% ?2 g1 P+ G  k很强大,可以了解了解
; I$ c* \9 I' k8 S" |
回复 支持 反对

使用道具 举报

发表于 2024-3-22 11:23:42 | 显示全部楼层
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑
! A- b5 R) \) K0 b- N4 R& G
- \5 @; ~. u  d/ ]! P& x6 yDim swApp As Object
" D' r6 H% N& y! h
; w3 w4 y  W, P8 ^. r4 {Sub main()1 k  @# |" f9 R
+ j" _* l9 n, }3 Z/ c
Set swApp = Application.SldWorks
; _, t; c# C( ?8 A$ v) i. {Set part = swApp.ActiveDoc) w4 m0 ]% H% o8 i5 z+ x

% V, d5 P& h4 h6 S+ y- |  hIf part.GetType = 3 Then
3 r$ C' y! u1 I3 n+ _$ Z4 k2 `$ Y/ v2 v6 u) A# x
part.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF")
/ _* `. [* C  A4 g/ O. ?0 P  
2 Q% n  _, x% Q1 o+ f9 sswApp.CloseDoc (part.GetTitle)7 L8 E9 n; e$ Y0 r, D

7 H9 {5 g. i, h+ V0 aEnd If
) P0 {9 E* l( r8 }5 [4 @% g$ F' A  
, t$ {. K0 q4 E* T) _- qEnd Sub

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-3 05:26 , Processed in 0.075676 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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