机械必威体育网址

标题: 关于图号分离 宏代码 问题 [打印本页]

作者: jiajiang951    时间: 2018-9-22 13:28
标题: 关于图号分离 宏代码 问题
如下  是图号分离 宏代码    图号在前 名称在后  用此宏可以    一键   分离 到自定义属性上面去,问题来了  我现在调用的  3D制造云标准件 都是名称在前  代号再后  这个宏  得更改一下了    谁会  帮我改改。

'从这里开始复制:

'定义solidwork

Dim swApp As Object

Dim Part As Object

Dim SelMgr As Object

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Dim Feature As Object

Dim a As Integer

Dim b As String

Dim m As String

Dim e As String

Dim k As String

Dim t As String

Dim c As String

Dim j As Integer

Dim strmat As String

Dim tempvalue As String

Sub main()

'link solidworks

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

Set SelMgr = Part.SelectionManager

swApp.ActiveDoc.ActiveView.FrameState = 1

'设定变量

c = swApp.ActiveDoc.GetTitle() '零件名

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" Then

        j = Len(b) - 7

    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, " ")

End Sub



作者: wx_vdZmJi97    时间: 2018-9-22 13:40
倒数三四行把代号和名称换一下就行了。
作者: jiajiang951    时间: 2018-9-22 14:21
wx_vdZmJi97 发表于 2018-9-22 13:40
倒数三四行把代号和名称换一下就行了。

(, 下载次数: 93)   厉害   再问下 有时候  分离出来的  怎么 把文件的 扩展名 也弄过来了    这代码还要完善下吧?

作者: wx_vdZmJi97    时间: 2018-9-22 16:50
jiajiang951 发表于 2018-9-22 14:21
厉害   再问下 有时候  分离出来的  怎么 把文件的 扩展名 也弄过来了    这代码还要完善下吧?

你要把扩展名隐藏掉才行

作者: jiajiang951    时间: 2018-9-22 17:41
wx_vdZmJi97 发表于 2018-9-22 16:50
你要把扩展名隐藏掉才行


    If t = ".SLDPRT" Or t = ".SLDASM" Then

        j = Len(b) - 7

    Else

        j = Len(b) 他这里有个判断  我出现这个问题有时候出现 有时候没出现 应该是 还要加几句吧


作者: wx_vdZmJi97    时间: 2018-9-22 17:49
jiajiang951 发表于 2018-9-22 17:41
If t = ".SLDPRT" Or t = ".SLDASM" Then

        j = Len(b) - 7

对啊,这句代码已经把后面的后缀给去掉了啊,为什么还会出现,隐不隐藏都没关系的了。

作者: 眸上有伤痕    时间: 2018-9-27 17:12
我想知道这个宏是怎么用的?


作者: fuyi8cn    时间: 2021-12-23 07:09
mark
作者: 想减肥    时间: 2021-12-23 07:54
我也研究一下,感觉挺好用的。
作者: jiajiang951    时间: 2022-7-18 17:20
wx_vdZmJi97 发表于 2018-9-22 17:49
对啊,这句代码已经把后面的后缀给去掉了啊,为什么还会出现,隐不隐藏都没关系的了。

If t = ".SLDPRT" Or t = ".SLDASM"  Or t = ".sldasm"  Or t = ".sldprt" Then

        j = Len(b) - 7

作者: tuotuo    时间: 2023-10-26 17:54
用Ucase 或者 Lcase转换大小写是不是方便点
作者: tuotuo    时间: 2023-10-26 17:56
本帖最后由 tuotuo 于 2023-10-26 18:00 编辑

Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguration.Name)
是不是要加一句这个改配置属性
作者: zzy953671038    时间: 2023-10-27 22:45
mark

作者: machel77    时间: 2023-10-28 07:49
用这个后,模型存档名称是什么样式的?能贴图看看吗




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