iCAx开思网

标题: 求图号名称分离宏添加新代码 [打印本页]

作者: gdzsh    时间: 2018-2-24 16:12
标题: 求图号名称分离宏添加新代码
图号名称分离宏(配置属性内)在用到常驻宏时打开工程图会报错,盼能在以下代码中添加如果是工程图就退出的代码,谢谢。
  1. '定义变数名称

  2. Dim S1                 As Integer
  3. Dim S2                 As Integer
  4. Dim Path_Name          As String
  5. Dim Code_Name_C        As String
  6. Dim Code_              As String
  7. Dim Name_              As String
  8. Dim strmat             As String
  9. Dim Part               As Object
  10. Dim swApp              As SldWorks.SldWorks
  11. Dim swModelDoc         As SldWorks.ModelDoc2
  12. Dim swConfig           As SldWorks.Configuration
  13. Dim CustPropMgr      As SldWorks.CustomPropertyManager
  14. Dim swModel            As SldWorks.ModelDoc2

  15. Sub main()
  16. Set swApp = Application.SldWorks
  17. Set swModelDoc = swApp.ActiveDoc
  18. Set swConfig = swModelDoc.ConfigurationManager.ActiveConfiguration
  19. Set swModel = swApp.ActiveDoc
  20. Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguration.Name) '配置特定的延伸设定

  21. '设定变量
  22. Path_Name = swApp.ActiveDoc.GetPathName '取得"路径名称及扩展名",不管扩展名是否隐藏
  23. S1 = InStrRev(Path_Name, "") '\符号在路径的最后位置数
  24. Code_Name_C = Right(Path_Name, Len(Path_Name) - S1) '取得"件号 名称.扩展名"
  25. S2 = InStr(Code_Name_C, " ") '符号在"件号 名称 扩展名"的位置数
  26. Code_ = Left(Code_Name_C, S2 - 1) '取得"件号"
  27. Name_ = Mid(Code_Name_C, S2 + 1, Len(Code_Name_C) - S2 - 7) '取得“名称”
  28. strmat = Chr(34) + Trim("SW-Material" + "@@") + "@" + Code_Name_C + Chr(34) '材料属性

  29. '删除栏
  30. CustPropMgr.Delete ("代号")
  31. CustPropMgr.Delete ("名称")
  32. CustPropMgr.Delete ("材料")

  33. '新增
  34. CustPropMgr.Add2 "代号", swCustomInfoText, Code_
  35. CustPropMgr.Add2 "名称", swCustomInfoText, Name_
  36. CustPropMgr.Add2 "数量", swCustomInfoText, " "
  37. CustPropMgr.Add2 "材料", swCustomInfoText, strmat
  38. CustPropMgr.Add2 "单重", swCustomInfoText, " "
  39. CustPropMgr.Add2 "总重", swCustomInfoText, " "
  40. CustPropMgr.Add2 "备注", swCustomInfoText, " "

  41. End Sub
复制代码


作者: DaveChan    时间: 2018-2-24 16:52
在第19行后面插入以下代码
  1. If swModelDoc.GetType = 3 Then Exit Sub
复制代码



作者: qxzch    时间: 2018-2-24 18:54
2楼正解!
作者: gdzsh    时间: 2018-2-25 08:09
DaveChan 发表于 2018-2-24 16:52
在第19行后面插入以下代码

谢谢您了

作者: a8012024    时间: 2018-2-27 06:53
多谢分享
作者: onboy9    时间: 2018-5-13 16:17
第29行soliworks 提示无效代码Code_ = Left(Code_Name_C, S2 - 1) '取得"件号"
作者: gdzsh    时间: 2018-5-14 13:52
a8012024 发表于 2018-2-27 06:53
多谢分享

我是2017板的solidworks

作者: Learning_deng    时间: 2018-7-17 17:35
我的不会报错啊,直接就可以用。

作者: 285240263@qq.co    时间: 2020-12-23 22:27
多谢分享





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3