|
|
发表于 2015-11-25 11:23:12
|
显示全部楼层
来自: 中国广东佛山
ryouss 发表于 2015-11-25 00:28- N( b0 \9 \- o. D2 Z) ]/ E
若是強迫要隱藏擴展名,是認為本來能簡單地處裡就行,就硬生生搞成複雜事,5 \: q( H& J/ N0 N" @; Z. |1 C
程度所限,尚沒法在無擴展名之條件 ... . n8 W- ~) ], L- O' ]) \
首先谢谢梁大提供了那么好的东西~1 F2 H6 R. f% w1 ~$ {8 q
再来,SW API 里面提供了两个函数可以满足您的使用要求。$ H* y7 i. |, B* Z/ F- ?% h3 }
1. iModelDoc2.GetType 可以得到文件的类型 # l$ l0 B S+ j2 g' _
2. iModelDoc2.GetPathName 可以得到文件的全路径 K7 E: B. ?, W7 } h
# T3 T9 i- p. b; {2 S: S) G
针对梁大提供的宏,可以追加如下函数,2 _9 L: r0 f% t) z0 p
* O7 _: m; J8 O' n8 q% L' c
Private Function getModelDocExtAsString(ByVal prModelDoc As SldWorks.ModelDoc2) As String- l$ |+ o$ d5 D w* D" ^: }) w+ V
2 _# S; _! s% W" f Dim sFileName As String
9 h2 i$ P. i: Q6 G1 N
5 W- e2 X6 ^: C. { Const swDocPART = 11 e8 N0 l3 E/ U1 Z
Const swDocASSEMBLY = 2
( m9 z C& n; ~. j% G4 n m/ \# A Const swDocDRAWING = 3: x/ a# ^% |/ h+ \
% t( N* H" X4 s }( v2 s' d
If prModelDoc Is Nothing Then Exit Function0 T- Y2 T9 d6 H* {, S" _; E/ o& D
Select Case prModelDoc.GetType
0 J) N8 a) i, r- `* }9 m5 J
0 W5 l4 D4 J0 Q1 \) J Case swDocPART% [8 m9 J* l" J0 d2 \: r: P0 d5 P/ f
getModelDocExtAsString = ".SLDPRT"
+ L) C$ f3 |# W( ^+ A/ _ C
- M5 ]: o1 q# E0 z: G Case swDocASSEMBLY1 P. U/ Q+ ] f+ }. ?3 C) q) E
getModelDocExtAsString = ".SLDASM"
1 |. X1 w/ P+ q+ R' C& s/ ^' x9 B
0 b1 y! ?& I- g" o Case swDocDRAWING( ~/ _. m, O3 `; l0 K7 @ A8 e
getModelDocExtAsString = ".SLDDRW"
' g8 T+ x) M L
4 C! W ~$ U* E/ p! C Case Else
J. N: U- t% C) G) [; T- e! ?/ U- @ sFileName = prModelDoc.GetPathName
% N( i4 p. N1 M) R2 [' A! W If InStr(1, sFileName, ".") > 0 Then
( C! ]8 v# _5 O2 ]' ~+ C [1 J getModelDocExtAsString = Right(sFileName, Len(sFileName) - InStrRev(sFileName, ".") + 1)
2 E4 k E ?' K/ {6 f$ w8 ]! C Else: getModelDocExtAsString = ""
8 U+ Y, W, H: k( \9 b End If
& ~( ~; _* U* i + {9 N9 z9 d. s8 r+ c
End Select
# W# i: l. `- M6 A2 {0 n ?' `: R: ^
( k1 v8 o3 R- q6 @' u1 o; EEnd Function
0 p0 B# p+ p' Z3 U* \8 q) j) m2 n7 l
, r8 d# @7 B$ p: z
并对原来的宏的一行作如下修改:
! O- r0 Q: G$ y, b2 t+ a, `+ t" K- _3 ~
'Na = c + ".SLDPRT", U. F& j2 D1 Z" S1 p) R: o) B
Na = c + getModelDocExtAsString(swApp.ActiveDoc)! T/ T/ j+ z8 |& x. y; X
4 k; Z; M$ r. J! ~/ C4 L即可。 |
评分
-
查看全部评分
|