机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3914 | 回复: 14
打印 上一主题 下一主题

关于图号分离 宏代码 问题

[复制链接]
跳转到指定楼层
1#
发表于 2018-9-22 13:28:57 | 只看该作者 | 只看大图 回帖奖励 | 倒序浏览 | 阅读模式
如下 是图号分离 宏代码 图号在前 名称在后 用此宏可以 一键 分离 到自定义属性上面去,问题来了 我现在调用的 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#
发表于 2018-9-22 13:40:52 | 只看该作者
倒数三四行把代号和名称换一下就行了。
3#
楼主 | 发表于 2018-9-22 14:21:39 | 只看该作者
wx_vdZmJi97 发表于 2018-9-22 13:40
倒数三四行把代号和名称换一下就行了。

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

你要把扩展名隐藏掉才行
5#
楼主 | 发表于 2018-9-22 17:41:49 | 只看该作者
wx_vdZmJi97 发表于 2018-9-22 16:50
你要把扩展名隐藏掉才行


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

j = Len(b) - 7

Else

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

6#
发表于 2018-9-22 17:49:57 | 只看该作者
jiajiang951 发表于 2018-9-22 17:41
If t = ".SLDPRT" Or t = ".SLDASM" Then

j = Len(b) - 7

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

点评

这句指令只是去掉了大写,没有去掉小写 发表于 2019-7-2 21:15
7#
发表于 2018-9-27 17:12:50 | 只看该作者
我想知道这个宏是怎么用的?

8#
发表于 2021-12-23 07:09:15 | 只看该作者
mark
9#
发表于 2021-12-23 07:54:27 | 只看该作者
我也研究一下,感觉挺好用的。
10#
楼主 | 发表于 2022-7-18 17:20:21 | 只看该作者
wx_vdZmJi97 发表于 2018-9-22 17:49
对啊,这句代码已经把后面的后缀给去掉了啊,为什么还会出现,隐不隐藏都没关系的了。

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

j = Len(b) - 7
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2024-6-7 13:32, Processed in 0.059731 second(s), 22 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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