jiajiang951 发表于 2018-9-11 19:23:27

看下这个是不是开了挂 搞的 图号 名称分离?

零件   故意用   图号   加双引号 名称    出图的时候 名字变成了只有图号 而且 标题栏    也是 只显示图号~


怎么弄的??还有左侧他这种   子集    树状列表 具体 怎么操作? 好处是 方便图纸整理 规范。

晓昀 发表于 2018-9-11 20:16:19

本帖最后由 晓昀 于 2018-9-11 20:17 编辑

看看这个零件的属性自定义里名称和图号那里的信息是什么?工程图纸中的信息是来自于零件属性里的信息。软件就是个聪明的大傻瓜,你让它做什么,它就做什么。也只做到那个地步。

magicnie 发表于 2018-9-11 22:49:01

只是个普通的宏命令而已,不要大惊小怪,对于这种的同学我都是赞一个,工作有方法

一毛 发表于 2018-9-11 23:00:27

经常大批量且有规范的时候,可以这么做,一劳永逸,正常是简单做个模板。难得出图的情况下,怎么玩都无所谓了

金卯刀-劉 发表于 2018-9-12 10:05:44

这个双引号显示的是“配置说明”,并非是前面几个大侠说的图号分离。从SW原则来说,零件名跟工程图文件名肯定是同样的。细看楼主的的截图就知道前面几位高手没说到点上。
关于图号分离问题,是很赞同楼上几位的。下面是图号分离宏(分离到自定义,备注:中间间隔符是空格号。可以根据自己需求改动)
'定义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("", "名称")
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, " 刘腾qq420221716")
End Sub

金卯刀-劉 发表于 2018-9-12 10:08:56

下面是分离到配置(备注:间隔符同样是空格号,并可以根据自己需求编辑)

'定义sw



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

Dim Part As Object

Dim swApp As SldWorks.SldWorks

Dim swModelDoc As SldWorks.ModelDoc2

Dim swConfig As SldWorks.Configuration

Dim CustPropMgr As SldWorks.CustomPropertyManager

Dim swModel As SldWorks.ModelDoc2



Sub main()

Set swApp = Application.SldWorks

Set swModelDoc = swApp.ActiveDoc

Set swConfig = swModelDoc.ConfigurationManager.ActiveConfiguration

Set swModel = swApp.ActiveDoc

Set CustPropMgr = swModel.Extension.CustomPropertyManager

(swModel.ConfigurationManager.ActiveConfiguration.Name) '配置特定延伸



'设定变量

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

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

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

'删除栏

CustPropMgr.Delete ("Number")

CustPropMgr.Delete ("作者")

CustPropMgr.Delete ("图样名称")






'新增

CustPropMgr.Add2 "Number", swCustomInfoText, e

CustPropMgr.Add2 "作者", swCustomInfoText, "刘腾qq420221716"

CustPropMgr.Add2 "图样名称", swCustomInfoText,m




End Sub

金卯刀-劉 发表于 2018-9-12 10:11:53

金卯刀-劉 发表于 2018-9-12 10:08
下面是分离到配置(备注:间隔符同样是空格号,并可以根据自己需求编辑)

'定义sw


当然这里截图显示是上面代码经过编译后的效果。

jiajiang951 发表于 2018-9-12 18:35:36

金卯刀-劉 发表于 2018-9-12 10:05
这个双引号显示的是“配置说明”,并非是前面几个大侠说的图号分离。从SW原则来说,零件名跟工程图文件名肯 ...

他这个 双引号 没有显示在配置说明的括号里啊 ?直接在 代号后面的

zero8337 发表于 2018-10-6 10:29:37

学习了,谢谢!

喂我袋盐 发表于 2018-10-6 11:05:22

进来学习!
页: [1]
查看完整版本: 看下这个是不是开了挂 搞的 图号 名称分离?