|
楼主 |
发表于 2021-1-5 10:37:18
|
显示全部楼层
7 a' M% a, l# B+ j$ s, ?
大神,你好,刚才看了你在宏中提取名称的视频。
) |' u# n; I) X以下是图号名称分离的宏中一段代码:& g& Q4 [& E9 y1 m
, S0 V) A1 j; J3 S3 W6 W
c = swApp.ActiveDoc.GetTitle() '零件名5 l1 A8 p/ b3 n/ `3 J/ D
想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。* U1 H4 c/ x( [6 p( @9 r! _! H* r
望大神指教或者之前填上吧。万分感谢。
6 ^: I% a. p! k% v9 V6 X: ~" k8 w1 T( K9 {" n5 i
3 h3 |0 V/ G7 xstrmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
+ r: Y( ^" H% z" p& g/ n$ {9 \blnretval = Part.DeleteCustomInfo2("", "代号")
* m+ ]4 @* I; N9 g( ?blnretval = Part.DeleteCustomInfo2("", "名称")
/ A4 z, E" q7 U/ J8 s5 R- f# L3 ~a = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格" l6 p ?/ X6 d! @% B
If a > 0 Then- b% S9 p7 Z4 ~6 [% a
k = Left(c, a)
" { u- `4 o' j t = Left(LTrim(e), 3)
4 ]6 E. ]& H* X U, I" d% \' c" Y If t = "GBT" Then
, t: n& E1 M) |# A, B e = "GB/T" + Mid(k, 4)) [ n v s \0 ^. ?6 q# O+ u
Else# G# `) {0 S2 s$ k$ ], i% p
e = k
' }' p L# q1 `& p) O/ A! U S) D End If. L# | H! S7 j
b = Mid(c, a + 2)
) L/ k) e/ q2 D R: C t = Right(c, 7)
0 l+ q1 S% j& k" n, I( p If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
" N7 ]2 a6 o. M7 f% Q j = Len(b) - 7 '消除后缀(区分大小写共4种)
0 c% B3 Z0 y/ d" o0 Q Else1 F P* K5 G) J6 P
j = Len(b)% ?# J8 V* H! m' U# I# j
End If
, `3 I1 @, W8 r8 C" A' F m = Left(b, j)
; f: ^ I+ Q; K% vEnd If1 z z. d& s8 J
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号. k( \4 ]9 b9 z+ y+ U' e
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称. Z2 d% H) f+ R& m( Q( F0 n
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e) '图号# u; @) c/ L q9 k
1 P6 y$ v- A6 l# h- Z- C |
|