foxlord 发表于 2021-1-5 10:09:49

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

solidworks用了图号名称分离,先有个问题,标准件一般是开头是中文,怎么编辑宏命令检测到中文跳出程序呢?求大神解惑。比如:零件名称: 12354 中文   零件属性中图号:12354名称:中文;零件名称是标准弹垫 12345   当检测到这个零件后不进行图号名称分离。

foxlord 发表于 2021-1-5 10:16:14

solidworks中宏是类似哪种语言呢?VB?Oracle?C++?

魍者归来 发表于 2021-1-5 10:20:40

加个if语句判断一下

foxlord 发表于 2021-1-5 10:37:18

魍者归来 发表于 2021-1-5 10:20
加个if语句判断一下

大神,你好,刚才看了你在宏中提取名称的视频。
以下是图号名称分离的宏中一段代码:

c = swApp.ActiveDoc.GetTitle() '零件名
想在这加if判断c中字符串第一个字符是汉字或者不是字母数字,但是这个和C语言不一样,不太会,也不知道solidworks中宏的语言是哪种。
望大神指教或者之前填上吧。万分感谢。


strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
blnretval = Part.DeleteCustomInfo2("", "代号")
blnretval = Part.DeleteCustomInfo2("", "名称")
a = InStr(c, " ") - 1      '重点:分隔标识符,这里是一个空格
If a > 0 Then
    k = Left(c, a)
    t = Left(LTrim(e), 3)
    If t = "GBT" Then
      e = "GB/T" + Mid(k, 4)
    Else
      e = k
    End If
    b = Mid(c, a + 2)
    t = Right(c, 7)
    If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
      j = Len(b) - 7 '消除后缀(区分大小写共4种)
    Else
      j = Len(b)
    End If
    m = Left(b, j)
End If
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e)'代号
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m)'名称
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e)'图号

foxlord 发表于 2021-1-5 10:43:39

foxlord 发表于 2021-1-5 10:16
solidworks中宏是类似哪种语言呢?VB?Oracle?C++?

好的。了解。我查查

水水5 发表于 2021-1-5 12:36:06

我也用的这个宏
对于外购件,我一般是这样命名的比如轴承6906   螺钉 M8×10   电磁阀SY5120-DDDD,等等吧。
我对这个宏,稍微修改了一下,就能用了。再弄个宏按钮

bamboo 发表于 2021-1-5 13:46:32

SW是VBA,有语言互转软件吗?

foxlord 发表于 2021-1-5 14:38:45

加了条语句,已经搞定了。谢谢大家的帮助。
'设定变量
c = swApp.ActiveDoc.GetTitle() '零件名
If Asc(c) > 0 Then

strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
blnretval = Part.DeleteCustomInfo2("", "代号")
blnretval = Part.DeleteCustomInfo2("", "名称")
a = InStr(c, " ") - 1      '重点:分隔标识符,这里是一个空格
If a > 0 Then
    k = Left(c, a)
    t = Left(LTrim(e), 3)
    If t = "GBT" Then
      e = "GB/T" + Mid(k, 4)
    Else
      e = k
    End If
    b = Mid(c, a + 2)
    t = Right(c, 7)
    If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
      j = Len(b) - 7 '消除后缀(区分大小写共4种)
    Else
      j = Len(b)
    End If
    m = Left(b, j)
End If
blnretval = Part.AddCustomInfo3("", "代号", swCustomInfoText, e)'代号
blnretval = Part.AddCustomInfo3("", "名称", swCustomInfoText, m)'名称
'blnretval = Part.AddCustomInfo3("", "图号", swCustomInfoText, e)'图号
End If

远祥 发表于 2021-1-5 16:30:26

这个看似高大上,用起来却并不快捷呀!

foxlord 发表于 2021-1-5 17:02:21

远祥 发表于 2021-1-5 16:30
这个看似高大上,用起来却并不快捷呀!

还行吧,个人习惯,我用的切换填入信息,不是按钮。
页: [1]
查看完整版本: solidworks中利用宏名称检测,希望大神解答