机械必威体育网址

标题: solidworks中利用宏名称检测,希望大神解答 [打印本页]

作者: foxlord    时间: 2021-1-5 10:09
标题: solidworks中利用宏名称检测,希望大神解答
solidworks用了图号名称分离,先有个问题,标准件一般是开头是中文,怎么编辑宏命令检测到中文跳出程序呢?求大神解惑。比如:零件名称: 12354 中文   零件属性中图号:12354  名称:中文;零件名称是标准弹垫 12345   当检测到这个零件后不进行图号名称分离。
/ R( E4 H8 ?) N+ S+ j
作者: foxlord    时间: 2021-1-5 10:16
solidworks中宏是类似哪种语言呢?VB?Oracle?C++?
作者: 魍者归来    时间: 2021-1-5 10:20
加个if语句判断一下; o0 X) g1 d1 v4 f. s  {8 D$ T( ^3 d

作者: foxlord    时间: 2021-1-5 10:37
魍者归来 发表于 2021-1-5 10:203 e7 Q( i# k3 t" {. ?
加个if语句判断一下

# q3 G/ }7 k1 O- T: _大神,你好,刚才看了你在宏中提取名称的视频。
7 W0 t) H& j0 O9 s4 D2 ~以下是图号名称分离的宏中一段代码:6 @/ d1 Y+ h! z" H* T" ^2 I4 O
; W# w2 e3 `, O; O5 P7 P! ^+ G) G) S
c = swApp.ActiveDoc.GetTitle() '零件名( X; D% E  Y# ~4 B7 S8 w# ?: i
想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。
( J& }& D' P0 m" J望大神指教或者之前填上吧。万分感谢。; Q$ h4 J* a: g3 ?
  M- B. P) V7 w$ t+ F
. a6 ^/ X. A& @! {7 E
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
* d& v: ?! \7 H& l; V+ B2 [" ublnretval = Part.DeleteCustomInfo2("", "代号")
% a! {7 ^8 e8 e. C4 Jblnretval = Part.DeleteCustomInfo2("", "名称")
2 M9 V2 H! V! `" ?a = InStr(c, " ") - 1      '重点:分隔标识符,这里是一个空格) K( k4 ]* G8 U) c6 o  D! m
If a > 0 Then
& P8 s! H) r9 L. X" H    k = Left(c, a)/ s; N" A$ n. e( u8 j
    t = Left(LTrim(e), 3)$ c- `9 |! b+ g
    If t = "GBT" Then" {' u$ ?/ o& {% J% L3 p
        e = "GB/T" + Mid(k, 4)
# k* M4 w3 T0 _( z/ P5 j    Else! e- t) j9 w, I$ K0 d
        e = k; F2 Q, ~1 ~" O" G7 e2 N
    End If% a2 i8 K( X+ `% R
    b = Mid(c, a + 2)
$ ~* A: ?8 G" v" D    t = Right(c, 7)
- ^% R: A5 h+ H4 o( _6 p8 E% @    If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
8 T# _) \3 N  m, S2 t% N8 q        j = Len(b) - 7 '消除后缀(区分大小写共4种)4 N2 Q7 q+ G- y
    Else
% d- P: U4 g, H( M' p  t        j = Len(b)5 X! y; M4 O( M* q( t
    End If2 l" _2 u; ?( i" m+ U
    m = Left(b, j)
3 B, Y/ x1 V+ \, aEnd If/ r4 |3 Y8 B6 q7 B
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e)  '代号
) ?5 x, o/ _; R2 zblnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m)  '名称
& C4 N( [  n2 m# z'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e)  '图号6 q+ Y; y. D  I

% w# t$ v6 M1 \
作者: foxlord    时间: 2021-1-5 10:43
foxlord 发表于 2021-1-5 10:16
' B9 Q3 d3 g/ @+ ?! Ssolidworks中宏是类似哪种语言呢?VB?Oracle?C++?

5 h" z. i  f. Z; l+ b; I好的。了解。我查查
0 _; L( n# j1 L# a
作者: 水水5    时间: 2021-1-5 12:36
我也用的这个宏
/ s$ ~# u% Y" ^- E* K, t( x对于外购件,我一般是这样命名的  比如  轴承  6906   螺钉 M8×10   电磁阀  SY5120-DDDD,等等吧。! [. ]+ w1 t8 |6 ^0 P' _. M" B4 [- D# j
我对这个宏,稍微修改了一下,就能用了。再弄个宏按钮
作者: bamboo    时间: 2021-1-5 13:46
SW是VBA,有语言互转软件吗?
作者: foxlord    时间: 2021-1-5 14:38
加了条语句,已经搞定了。谢谢大家的帮助。# q& y4 G2 b: N! ?% X
'设定变量
4 F9 U$ V  G; B0 l+ \* o1 w6 tc = swApp.ActiveDoc.GetTitle() '零件名' @' t. I$ Z5 `3 E9 X( \
If Asc(c) > 0 Then
  `. s1 B! c. O' ?
) M, t' }6 S& C: h7 n; V$ ostrmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34). I$ g  _* U9 h% R' i
blnretval = Part.DeleteCustomInfo2("", "代号")
0 w3 m' N2 {- jblnretval = Part.DeleteCustomInfo2("", "名称")
) V- c9 u& r2 ]/ p" I+ C6 U  Ka = InStr(c, " ") - 1      '重点:分隔标识符,这里是一个空格& Y& W+ g* _! o6 ~$ G5 z+ }
If a > 0 Then; f& N7 X9 i/ h0 b, r! a1 p: N
    k = Left(c, a)+ g) Y: `( a  A* {
    t = Left(LTrim(e), 3)
0 R( b6 E3 z4 F# Z: k! _. p7 D# Z    If t = "GBT" Then4 ~" O2 C( Y3 n2 f- s# F
        e = "GB/T" + Mid(k, 4): Z$ {, L6 \0 _& B- k  e1 }
    Else
$ j2 U  P6 v5 V' Q% V        e = k
3 ?) E0 d" h6 ], G  E. _5 Z5 p    End If- M. x6 s5 E( X7 \2 w5 z
    b = Mid(c, a + 2)
) U& i" g  l2 _2 r* a* y    t = Right(c, 7)+ d& D* @5 u0 `& ]* c. v* L7 [
    If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
' L! K5 G, W8 c, ^* Z' X        j = Len(b) - 7 '消除后缀(区分大小写共4种)
5 H# r1 ^4 p! I* N$ q2 Q    Else& p  R6 ^: l  I+ l) B6 {7 m
        j = Len(b)
8 _' o* _) e  J2 K( G( S: I    End If; V5 n" n# \1 _' m
    m = Left(b, j)! e2 @4 C1 j: w3 |
End If1 Y. i+ _3 T/ P# Q! ?0 c1 M
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e)  '代号
( v- b$ V3 z9 cblnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m)  '名称8 P9 z5 ^& J4 q6 J, p0 d9 T
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e)  '图号
5 S/ a% h. v5 ?0 zEnd If: a5 r" Y: `% q, C0 w

作者: 远祥    时间: 2021-1-5 16:30
这个看似高大上,用起来却并不快捷呀!
作者: foxlord    时间: 2021-1-5 17:02
远祥 发表于 2021-1-5 16:30
8 I) m: f' T5 S6 |* Y3 ?- w6 F这个看似高大上,用起来却并不快捷呀!
3 l2 \- Z. Y5 N2 B7 q- `8 k
还行吧,个人习惯,我用的切换填入信息,不是按钮。
. S  }( N! B1 [+ o0 J3 |1 m




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4