|
楼主 |
发表于 2021-1-5 10:37:18
|
显示全部楼层
3 E0 B0 d1 w& J大神,你好,刚才看了你在宏中提取名称的视频。) h! V& `4 ?: m* x4 l. a" _
以下是图号名称分离的宏中一段代码:( u; V f. G, S9 o
! @' c- Z: A7 Q4 H* |" l. [
c = swApp.ActiveDoc.GetTitle() '零件名
2 L' K( f! A; Q* d想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。
: O. [2 `# A4 x- t, ]望大神指教或者之前填上吧。万分感谢。
- A! l9 _( m0 x _1 r8 B. W! F
$ U" z ~" d0 Z8 E6 V# U7 G, C5 E2 j. g. _5 a3 }9 M; l
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
% I" G5 V k, c5 s' g* Qblnretval = Part.DeleteCustomInfo2("", "代号")
& x; b9 }& E+ kblnretval = Part.DeleteCustomInfo2("", "名称")
$ d# O7 J9 B! da = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格+ N) t1 M; P' [, M2 w
If a > 0 Then/ u% {3 \* ^ A- @- A v1 o
k = Left(c, a)
3 _3 W. v5 Q: f t = Left(LTrim(e), 3)
8 u7 x, t0 u1 J If t = "GBT" Then
* T" k2 o, D" k0 p6 m& r e = "GB/T" + Mid(k, 4)# Q! j! Y* u6 b/ [! C0 s
Else
" Z) p a, ` f, g" I/ t: v e = k
/ O7 w- n8 v: f2 }9 C( R$ |4 ^+ O End If
$ F. p5 _1 u7 W' J1 p; @ b = Mid(c, a + 2)' S, A; q& z1 ]6 V6 ~0 ^
t = Right(c, 7)" n$ n: B8 { u1 p8 t) D! ~
If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
, P& g6 l" X/ A+ g j = Len(b) - 7 '消除后缀(区分大小写共4种)
$ Q- H$ M6 w. u" n% X7 j/ _9 v) R Else
- ?7 _/ {1 x6 R5 ]9 w: F, ~ j = Len(b)
1 N" Q) `8 R( d* q7 P0 u End If
3 {+ m8 H( U8 d% f& f m = Left(b, j): {. X r7 y* e0 S$ q8 ~! l
End If& o* M, i o, t. U+ f
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号
6 x' w) t; z4 U% }, M) `blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称2 k |1 K) B) e1 U8 q1 l3 K* b' F
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e) '图号7 p7 R# }% z- D8 d
5 S; F7 t+ ]3 }0 ] |
|