機械社區(qū)

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 4251|回復: 14
打印 上一主題 下一主題

關于圖號分離 宏代碼 問題

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2018-9-22 13:28:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
如下  是圖號分離 宏代碼    圖號在前 名稱在后  用此宏可以    一鍵   分離 到自定義屬性上面去,問題來了  我現(xiàn)在調用的  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


回復

使用道具 舉報

2#
發(fā)表于 2018-9-22 13:40:52 | 只看該作者
倒數(shù)三四行把代號和名稱換一下就行了。
回復 支持 反對

使用道具 舉報

3#
 樓主| 發(fā)表于 2018-9-22 14:21:39 | 只看該作者
wx_vdZmJi97 發(fā)表于 2018-9-22 13:40
倒數(shù)三四行把代號和名稱換一下就行了。

  厲害   再問下 有時候  分離出來的  怎么 把文件的 擴展名 也弄過來了    這代碼還要完善下吧?
回復 支持 反對

使用道具 舉報

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

你要把擴展名隱藏掉才行
回復 支持 反對

使用道具 舉報

5#
 樓主| 發(fā)表于 2018-9-22 17:41:49 | 只看該作者
wx_vdZmJi97 發(fā)表于 2018-9-22 16:50
你要把擴展名隱藏掉才行


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

        j = Len(b) - 7

    Else

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

回復 支持 反對

使用道具 舉報

6#
發(fā)表于 2018-9-22 17:49:57 | 只看該作者
jiajiang951 發(fā)表于 2018-9-22 17:41
If t = ".SLDPRT" Or t = ".SLDASM" Then

        j = Len(b) - 7

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

點評

這句指令只是去掉了大寫,沒有去掉小寫  發(fā)表于 2019-7-2 21:15
回復 支持 反對

使用道具 舉報

7#
發(fā)表于 2018-9-27 17:12:50 | 只看該作者
我想知道這個宏是怎么用的?

回復 支持 反對

使用道具 舉報

8#
發(fā)表于 2021-12-23 07:09:15 | 只看該作者
mark
回復

使用道具 舉報

9#
發(fā)表于 2021-12-23 07:54:27 | 只看該作者
我也研究一下,感覺挺好用的。
回復 支持 反對

使用道具 舉報

10#
 樓主| 發(fā)表于 2022-7-18 17:20:21 | 只看該作者
wx_vdZmJi97 發(fā)表于 2018-9-22 17:49
對啊,這句代碼已經(jīng)把后面的后綴給去掉了啊,為什么還會出現(xiàn),隱不隱藏都沒關系的了。

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

        j = Len(b) - 7
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

小黑屋|手機版|Archiver|機械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2024-9-23 00:34 , Processed in 0.060394 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表