機(jī)械社區(qū)

標(biāo)題: 關(guān)于圖號(hào)分離 宏代碼 問題 [打印本頁]

作者: jiajiang951    時(shí)間: 2018-9-22 13:28
標(biāo)題: 關(guān)于圖號(hào)分離 宏代碼 問題
如下  是圖號(hào)分離 宏代碼    圖號(hào)在前 名稱在后  用此宏可以    一鍵   分離 到自定義屬性上面去,問題來了  我現(xiàn)在調(diào)用的  3D制造云標(biāo)準(zhǔn)件 都是名稱在前  代號(hào)再后  這個(gè)宏  得更改一下了    誰會(huì)  幫我改改。

'從這里開始復(fù)制:

'定義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

'設(shè)定變量

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

strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)

blnretval = Part.DeleteCustomInfo2("", "代號(hào)")

blnretval = Part.DeleteCustomInfo2("", "名稱")



a = InStr(c, " ") - 1      '重點(diǎn):分隔標(biāo)識(shí)符,這里是一個(gè)空格

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("", "代號(hào)", swCustomInfoText, e)  '代號(hào)

blnretval = Part.AddCustomInfo3("", "名稱", swCustomInfoText, m)  '名稱

blnretval = Part.AddCustomInfo3("", "表面處理", swCustomInfoText, " ")

End Sub



作者: wx_vdZmJi97    時(shí)間: 2018-9-22 13:40
倒數(shù)三四行把代號(hào)和名稱換一下就行了。
作者: jiajiang951    時(shí)間: 2018-9-22 14:21
wx_vdZmJi97 發(fā)表于 2018-9-22 13:40
倒數(shù)三四行把代號(hào)和名稱換一下就行了。

(, 下載次數(shù): 89)   厲害   再問下 有時(shí)候  分離出來的  怎么 把文件的 擴(kuò)展名 也弄過來了    這代碼還要完善下吧?

作者: wx_vdZmJi97    時(shí)間: 2018-9-22 16:50
jiajiang951 發(fā)表于 2018-9-22 14:21
厲害   再問下 有時(shí)候  分離出來的  怎么 把文件的 擴(kuò)展名 也弄過來了    這代碼還要完善下吧?

你要把擴(kuò)展名隱藏掉才行

作者: jiajiang951    時(shí)間: 2018-9-22 17:41
wx_vdZmJi97 發(fā)表于 2018-9-22 16:50
你要把擴(kuò)展名隱藏掉才行


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

        j = Len(b) - 7

    Else

        j = Len(b) 他這里有個(gè)判斷  我出現(xiàn)這個(gè)問題有時(shí)候出現(xiàn) 有時(shí)候沒出現(xiàn) 應(yīng)該是 還要加幾句吧


作者: wx_vdZmJi97    時(shí)間: 2018-9-22 17:49
jiajiang951 發(fā)表于 2018-9-22 17:41
If t = ".SLDPRT" Or t = ".SLDASM" Then

        j = Len(b) - 7

對(duì)啊,這句代碼已經(jīng)把后面的后綴給去掉了啊,為什么還會(huì)出現(xiàn),隱不隱藏都沒關(guān)系的了。

作者: 眸上有傷痕    時(shí)間: 2018-9-27 17:12
我想知道這個(gè)宏是怎么用的?


作者: fuyi8cn    時(shí)間: 2021-12-23 07:09
mark
作者: 想減肥    時(shí)間: 2021-12-23 07:54
我也研究一下,感覺挺好用的。
作者: jiajiang951    時(shí)間: 2022-7-18 17:20
wx_vdZmJi97 發(fā)表于 2018-9-22 17:49
對(duì)啊,這句代碼已經(jīng)把后面的后綴給去掉了啊,為什么還會(huì)出現(xiàn),隱不隱藏都沒關(guān)系的了。

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

        j = Len(b) - 7

作者: tuotuo    時(shí)間: 2023-10-26 17:54
用Ucase 或者 Lcase轉(zhuǎn)換大小寫是不是方便點(diǎn)
作者: tuotuo    時(shí)間: 2023-10-26 17:56
本帖最后由 tuotuo 于 2023-10-26 18:00 編輯

Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguration.Name)
是不是要加一句這個(gè)改配置屬性
作者: zzy953671038    時(shí)間: 2023-10-27 22:45
mark

作者: machel77    時(shí)間: 2023-10-28 07:49
用這個(gè)后,模型存檔名稱是什么樣式的?能貼圖看看嗎




歡迎光臨 機(jī)械社區(qū) (http://www.mg7058.com/) Powered by Discuz! X3.4