|
楼主 |
发表于 2021-1-5 10:37:18
|
显示全部楼层
2 b* I# D' @5 n7 \/ R1 }, j大神,你好,刚才看了你在宏中提取名称的视频。
( G3 m, P5 ^+ `8 h9 N8 A以下是图号名称分离的宏中一段代码:
$ T2 |8 X2 ]! ~" r* @ b! h! D+ `+ x" y5 f+ I
c = swApp.ActiveDoc.GetTitle() '零件名8 E( ~$ o* L: o3 Q
想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。
' Y: V) |# U9 `2 j望大神指教或者之前填上吧。万分感谢。
% }$ @$ U7 L% ^* p" Z l0 C; ]7 D1 ^% p% |: H
" c7 k) T% o1 |! h# L; M
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34); ]( b2 i; V# H% `8 A
blnretval = Part.DeleteCustomInfo2("", "代号")
( ]$ J. Z- S' R# sblnretval = Part.DeleteCustomInfo2("", "名称")
2 z/ ?. T6 F! T/ y! B- |3 e% za = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格2 {: O, B2 y1 O% Y3 X8 x
If a > 0 Then% o ~% L- ~* V4 g4 r& U% _
k = Left(c, a)+ V. _. p* O G
t = Left(LTrim(e), 3)' z, o3 ?( D' C- _9 I
If t = "GBT" Then
; U; T: M( R+ ` e = "GB/T" + Mid(k, 4)$ y& I5 c5 `: g, G# Y! D `3 G
Else
6 @' V/ N* Q! }2 K8 c" e e = k
: }4 A j) F- E0 R& I, z, D End If
/ M; o! |; k" ~: `6 _8 X3 o5 m b = Mid(c, a + 2)
]1 @6 J/ `- j( i- q t = Right(c, 7)8 i% C, m6 ^& c; ^$ R
If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then" {) _; A- }! A1 `' j9 j5 a& p& U, [- `
j = Len(b) - 7 '消除后缀(区分大小写共4种)" b4 z# I" w. W0 j% D4 L
Else! Q/ k+ l+ e6 o- S7 q/ l6 h
j = Len(b)7 m; l: ^; {; {4 [! [
End If
# E3 ?; T5 r2 C; l4 X m = Left(b, j)$ B. c- N: C; I
End If, _) m5 m# z% R E* g& g
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号/ |6 S( H, ]3 E1 a+ B1 C! W; s: B! q
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称
6 h. W- N0 Z" _/ G, A'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e) '图号/ Q6 U! X2 A/ F6 C8 `( d
) q4 J$ _7 C; L( _* C |
|