机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2491 | 回复: 10
打印 上一主题 下一主题

solidworks中利用宏名称检测,希望大神解答

[复制链接]
跳转到指定楼层
1#
发表于 2021-1-5 10:09:49 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
solidworks用了图号名称分离,先有个问题,标准件一般是开头是中文,怎么编辑宏命令检测到中文跳出程序呢?求大神解惑。比如:零件名称: 12354 中文 零件属性中图号:12354 名称:中文;零件名称是标准弹垫 12345 当检测到这个零件后不进行图号名称分离。6 [! R( a; ]+ u4 |! {. l. E6 ?3 I% \+ X# {
2#
楼主 | 发表于 2021-1-5 10:16:14 | 只看该作者
solidworks中宏是类似哪种语言呢?VB?Oracle?C++?

点评

VBA 发表于 2021-1-5 10:19
3#
发表于 2021-1-5 10:20:40 | 只看该作者
加个if语句判断一下
* B. a- t( b3 s3 _% J( A* _# q( n
4#
楼主 | 发表于 2021-1-5 10:37:18 | 只看该作者
魍者归来 发表于 2021-1-5 10:20 3 Z4 }2 p7 _0 R# @1 b9 o
加个if语句判断一下
0 C' j" E+ H" G7 ~2 F& R. V
大神,你好,刚才看了你在宏中提取名称的视频。; k5 m% M' k7 c" U4 E( P
以下是图号名称分离的宏中一段代码:
0 w, i, ?$ n5 V4 v j
! f# Q; e. X! U# J$ D$ Vc = swApp.ActiveDoc.GetTitle() '零件名
. T4 a' v9 h& c8 [1 N想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。; E- m T) O. |0 }- x# p
望大神指教或者之前填上吧。万分感谢。
* O) i6 }% F2 W3 T! {* }; N4 n/ |) y, V) O! I+ ^- f

5 e+ A; O! F5 G5 s+ {% p) Estrmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
7 `, T2 `$ J) t5 kblnretval = Part.DeleteCustomInfo2("", "代号")
$ \, u. o( d h% L, A1 `blnretval = Part.DeleteCustomInfo2("", "名称")
! C- ?6 }$ e( w# N$ w+ Ma = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格
9 s2 N d! g2 l: P( Q7 S- E& j& kIf a > 0 Then
! V4 `0 b. U) H; V! M8 Xk = Left(c, a)# k: Z G' |, ^, P# Y: S& \
t = Left(LTrim(e), 3)7 T8 f- ^+ [1 n4 u
If t = "GBT" Then# e4 S1 N1 Z, `5 A
e = "GB/T" + Mid(k, 4). Y. s2 V) P. t7 m
Else
+ @8 H9 ~) Y" E' b, S/ V8 le = k
$ x3 O" b+ y) @End If$ m* ~1 t6 `5 h- Z
b = Mid(c, a + 2)
% y; F! ]% e# z0 J8 @8 E* xt = Right(c, 7)1 i6 t9 A. V3 @; g, v
If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then/ x' E7 ^2 R$ U& }0 y! I7 C! d: ?
j = Len(b) - 7 '消除后缀(区分大小写共4种)
/ W5 w/ c: e! Y3 gElse
! _/ f3 q. C. \ Gj = Len(b)
' ]9 ?8 |) d+ g+ i7 u; uEnd If4 Y" T. P; m5 P* h2 r
m = Left(b, j)
& _; l* J" B4 f1 gEnd If
& t2 F/ I8 Z$ }0 r w4 m- }: oblnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号& h% d1 @" W6 I2 |, s* q6 R) |( X9 k
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称" T, V1 p$ |$ T! l0 Z+ h
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e) '图号& ?/ f. g5 K8 g
! Z# B3 a6 M+ S$ k; Y. s7 w
5#
楼主 | 发表于 2021-1-5 10:43:39 | 只看该作者
foxlord 发表于 2021-1-5 10:16 # _, ?/ q0 a+ ~- H; X
solidworks中宏是类似哪种语言呢?VB?Oracle?C++?

. I, _$ ]; z% e+ b( E* w |好的。了解。我查查# r2 |8 E: P( u4 G f' J. @
6#
发表于 2021-1-5 12:36:06 | 只看该作者
我也用的这个宏
/ K7 z4 g+ h, H5 f对于外购件,我一般是这样命名的 比如 轴承 6906 螺钉 M8×10 电磁阀 SY5120-DDDD,等等吧。4 r" R6 K2 ~' ]$ W, r. n! T
我对这个宏,稍微修改了一下,就能用了。再弄个宏按钮
7#
发表于 2021-1-5 13:46:32 | 只看该作者
SW是VBA,有语言互转软件吗?
8#
楼主 | 发表于 2021-1-5 14:38:45 | 只看该作者
加了条语句,已经搞定了。谢谢大家的帮助。
# v5 t- y2 z! f& p* {'设定变量" D' o8 v' D" {4 I
c = swApp.ActiveDoc.GetTitle() '零件名
- w; K( Z5 z$ I' dIf Asc(c) > 0 Then
. A, m {9 C; }8 `3 i2 i4 h4 x1 k2 u, P& s; u& Y5 F
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)5 S, L) M/ n" [9 ?
blnretval = Part.DeleteCustomInfo2("", "代号")
" C5 `+ M+ q: a. Cblnretval = Part.DeleteCustomInfo2("", "名称")4 L- f4 w+ Y' I# \' a) ^. M- |: d
a = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格
& ^& N* H% C8 mIf a > 0 Then
1 p! _+ }6 i% p9 c( ^k = Left(c, a)7 u0 G& S7 x$ A* i+ \6 H
t = Left(LTrim(e), 3)( Z3 i0 Z& K9 C( e' a2 F$ K: d! o0 o
If t = "GBT" Then
8 U4 f9 V/ w& i) pe = "GB/T" + Mid(k, 4): N5 s/ l3 F o( x
Else4 m8 _# a4 R1 [0 Z! `/ o! Y
e = k
/ L( D+ P* v- W; t: t- @( U/ U+ aEnd If/ X5 ] W ~( U; f: A. n; \. B
b = Mid(c, a + 2)8 g; w2 C8 T6 _3 V' M" r2 ]) b
t = Right(c, 7)% C- O& ]6 Z( Y4 ~/ z
If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
" W* O4 e0 N5 I1 ?j = Len(b) - 7 '消除后缀(区分大小写共4种)' ~9 r U" u9 }9 Q5 k
Else1 l' E* c2 b$ k# K+ v+ ]
j = Len(b)/ Y% m1 F3 v; g# O+ q
End If
, m9 c& @; u; L: n6 H9 Q% \. Um = Left(b, j)
$ Y) N4 v9 _4 N% n+ m. pEnd If
! O0 O& B4 a% Fblnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e) '代号
: B; {$ D7 v/ @blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m) '名称/ d' _' X3 o9 c$ P5 t, a
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e) '图号, s3 j o ]( G) u. s
End If: b& k/ Z2 ?2 \# z" H9 l6 Y
9#
发表于 2021-1-5 16:30:26 | 只看该作者
这个看似高大上,用起来却并不快捷呀!
10#
楼主 | 发表于 2021-1-5 17:02:21 | 只看该作者
远祥 发表于 2021-1-5 16:30 * D. V, l9 c) ~
这个看似高大上,用起来却并不快捷呀!
( \ Z& o \( q( _4 U; J% w
还行吧,个人习惯,我用的切换填入信息,不是按钮。5 n1 H9 Y$ R- ]: n: L
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址(京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号)

GMT+8, 2024-7-22 05:33, Processed in 0.058126 second(s), 18 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

快速回复 返回顶部 返回列表