|

楼主 |
发表于 2021-1-5 10:37:18
|
显示全部楼层
1 Y2 f8 W& q0 q1 C1 f, G& D9 B
大神,你好,刚才看了你在宏中提取名称的视频。
( o+ T" g; e D& |3 w" S以下是图号名称分离的宏中一段代码:
4 b9 S E/ ~$ g3 ^9 N0 W8 A, W3 R
. }; K" V# |6 y+ d0 zc = swApp.ActiveDoc.GetTitle() '零件名
9 Z; P" Y( F4 D) D) Z想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。) u' N, Q' ~% v" Z
望大神指教或者之前填上吧。万分感谢。/ M# ^+ e% _0 b0 n: x
, L. B _9 y0 S5 D3 z+ f0 Z9 L# ]" ]
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
# H, ?) h5 Q0 Bblnretval = Part.DeleteCustomInfo2("", "代号")
/ D( U' |& k3 M& @" }' _; M8 kblnretval = Part.DeleteCustomInfo2("", "名称")+ V8 j7 k1 i) j2 R+ [9 `, a7 L
a = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格+ s. _! i2 `5 G2 `- w2 Y! Q
If a > 0 Then
( C6 c4 ~1 R0 E+ F8 B! a k = Left(c, a)
" _9 q, B j: V t = Left(LTrim(e), 3)
( g2 ^6 z) S* r If t = "GBT" Then
& O+ G0 A% \- O2 \; f! h0 N! W) C e = "GB/T" + Mid(k, 4)
& J8 ~5 u1 K! F: h, d) @ Else( h# N! P& z+ D( R4 Y1 b
e = k4 c: M! L# ]8 `) {7 l* Z
End If, n+ d. m/ y* B6 l q
b = Mid(c, a + 2)
& c5 |5 ~- L1 c7 z" n) p& H7 }4 K t = Right(c, 7)
, \0 q9 n1 r* e$ p- _2 u4 Q+ \7 E' [ If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
' w) p; D0 S$ F8 D; A/ [ j = Len(b) - 7 '消除后缀(区分大小写共4种). n/ f( R. c5 V! ?2 P1 h
Else# B* O0 @, r1 w" r! {/ u
j = Len(b)
3 |+ m' V4 Y M7 }' T% { End If/ o0 r2 w( P: ]6 a5 B B3 k. Z
m = Left(b, j)
- @3 g4 F! b* ZEnd If+ {7 Q( ~2 t) J/ W
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号
& S" G& X) w' n( c5 {4 ^blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称 ~4 k* \5 k2 N# `% P! X
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e) '图号8 [9 w$ m1 W1 t- U& H
. F' g" b5 o/ ]" p6 H/ G |
|