机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2239|回复: 9
打印 上一主题 下一主题

关于SW宏程序

[复制链接]
跳转到指定楼层
1#
发表于 2024-3-19 16:10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨天略微涉略SW宏程序,今天想整个一键出CAD及PDF的宏,奈何,不会设置宏读取图纸名称,再把红圈那设置成对应图纸名,以致出的CAD及PDF都是固定名称,有没有大佬知道咋先读取图纸名。感谢。- b, k% E: {4 q- N4 r

本帖子中包含更多资源

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

x
回复

使用道具 举报

2#
发表于 2024-3-19 19:29:44 | 只看该作者
描述一下你的需求,

点评

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

使用道具 举报

3#
发表于 2024-3-19 23:35:21 | 只看该作者
工程图下导出PDF+DWF,部分宏
/ f% a1 |7 a' V& s) y* GDim swApp           As SldWorks.SldWorks
; v9 [. R+ a& Y3 ]Dim swModel         As SldWorks.ModelDoc22 x" M4 M4 }: y' b
/ r. u* N; B7 b3 J" I! D' b
Sub main()
# {$ w! l) v2 S" ^1 s& V) r& b' f
5 E2 C- v8 r3 c/ G. iSet swApp = Application.SldWorks3 P. X7 s, @! h1 v
Set swModel = swApp.ActiveDoc
6 i; ?2 T# M& K5 i& C  \2 Q8 H) E, T  U0 Q) y
' Check to see if a drawing is loaded.
9 x8 U/ m* W1 kIf (swModel Is Nothing) Or (swModel.GetType <> swDocDRAWING) Then
8 f5 e/ \* z- f. l& E4 X$ L. m0 ~! L) r' j0 G
swApp.SendMsgToUser ("To be used for drawings only, Open a drawing first and then TRY!")
$ U+ I$ J" ^. l- p8 L0 G4 b
' Q/ L% Y) Y8 Y% G- w' If no model currently loaded, then exit2 M, U- P( }- X4 K! e6 n( v
Exit Sub
' @3 n5 w( W1 t  E
5 B/ i  h1 A' s! K, nEnd If
7 c! `0 L# t4 T) \8 A- b6 C
6 d8 B- A2 {- U' r+ u% _0 ~! RSet swDraw = swModel
4 {9 v/ V6 \% v4 a( ^Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))8 y! j5 ~- B0 H* b7 A+ r5 p

, l8 R3 i* j5 vIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here
( [  f  @9 C5 zMkDir Filepath + "导出图纸" ' Change Sub folder Name here" H" b  Y, y: I* T: t4 `
End If" W& U0 A' l. ]  K) K
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here7 w2 [  y5 c1 H6 k2 v

- G" U. ^  G; wSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")' m# G: R; a1 V. P6 c; }  r3 Y
   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"& a" t' W) F6 s! J5 S5 w
! r3 o" h' h# ~5 i
FileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
- s3 o; b9 [$ l, uFileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".pdf"
2 I* ]4 ]( ~  l! W  E; D1 T+ lswDraw.SaveAs3 Filepath & FileName & "", 0, 0
& D7 e& z; ?9 a8 E1 d$ X5 D1 k9 O) \7 o4 S. ^
'-------------------------------------------------- SAVE DXF
' f& |& _6 Z+ i6 a
* y: O: b7 M" U' q9 x$ j4 ~* [Set swDraw = swModel7 [4 P' d* n8 x+ h0 |% V
Filepath = Left(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\"))
' A8 E' `/ X& QIf Dir(Filepath & "导出图纸", vbDirectory) = "" Then ' Change Sub folder Name here0 W1 Q' c, [5 Y% i. L! T0 U- V* e4 H
MkDir Filepath + "导出图纸" ' Change Sub folder Name here* A, g+ |( U4 q
End If' C( A, f: k6 o! z0 b
Filepath = Filepath + "导出图纸\" ' Change Sub folder Name here. ]3 ]6 I  P; }7 F* v0 s" B

& h* V# n% A- S5 DSet swCustPrpMgr = swModel.Extension.CustomPropertyManager("")0 j* k$ H. K5 o+ U3 q# I
   swCustPrpMgr.Get3 "", False, "", Value 'Change here the var revision "Rev"
0 Z% X( g4 C& w
$ k1 H2 ~" A5 k! m# s* o/ OFileName = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
1 x  W/ i5 ~) o* k$ ~FileName = Left(FileName, Len(FileName) - 7) & "" & Value & ".DXF"
+ @0 [; W  i& V( _8 z2 L6 ]( b( z" V. m1 F9 w. q  _8 `. O
swDraw.SaveAs3 Filepath & FileName & "", 0, 0- L4 _: m! ~# a6 j8 E2 l* f

/ ]/ Y5 ~7 P2 S* ^- D! j+ Y' F8 e9 qswDraw.Save
- v5 r. _( U2 |8 R. b& p& n9 I! f& E6 C$ g$ j" c: F
'swApp.ExitApp '关闭SW软件
* {$ v- o! z- }% IEnd Sub
& D) ^, n2 X! X
+ c$ s: l4 ^) h
6 B( ^' \. A, j

点评

必威APP精装版下载,高手如云啊  发表于 2024-3-20 10:36
非常,感谢,正是我需要的  发表于 2024-3-20 07:59

评分

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

查看全部评分

回复 支持 1 反对 0

使用道具 举报

4#
发表于 2024-3-21 15:42:11 | 只看该作者
宏怎么用都不知道
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2024-3-21 16:26:50 | 只看该作者
大兄弟aa 发表于 2024-3-21 15:427 k% V# ^1 c( b9 ~
宏怎么用都不知道
" a2 z  c' e( o; W% P! }- Q
很强大,可以了解了解$ {& r+ B6 F" l8 Q+ W3 e
回复 支持 反对

使用道具 举报

6#
发表于 2024-3-22 11:23:42 | 只看该作者
本帖最后由 steve_suich 于 2024-3-22 11:25 编辑 & t% E, o0 j8 x% d/ D6 h
+ S! O6 e' {: e% a# Q6 j
Dim swApp As Object
$ Y4 y1 i9 Q! ^( Z. p/ I! e0 N- K# V1 T
Sub main()
2 y- C" A% ?! [7 O. i& I
8 z% ?/ `9 V% |% `Set swApp = Application.SldWorks- J( W' x: D- \( [& n
Set part = swApp.ActiveDoc
+ w0 t9 C6 \3 M% T6 L
- [! ^* W5 s3 N- o% |- m% }6 jIf part.GetType = 3 Then9 X. F4 Y2 J& [
1 q8 Q# t1 g0 q! w/ _, x0 g9 @3 p' k
part.SaveAs (Left(part.GetPathName, InStrRev(part.GetPathName, "\")) & Left(part.GetTitle, Len(part.GetTitle) - 6) & ".PDF")
0 t9 c( ~. {' [5 S2 W3 U/ ~  
, u& {% }7 F& G$ A2 lswApp.CloseDoc (part.GetTitle)
3 W* h0 Y. [) g4 q3 h7 P& n2 Z
( y- s2 g+ c6 s6 m% A: {' R& mEnd If
: G4 X0 @7 S( g6 X+ v/ l  # g7 K7 a( |4 `0 Z( B+ F
End Sub

点评

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

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-22 22:21 , Processed in 0.059545 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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