找回密码 注册 QQ登录
双11·3D打印优惠活动

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 32491|回复: 60
打印 上一主题 下一主题

[讨论] (宏) 重命名工程图图纸名称

[复制链接]
跳转到指定楼层
发表于 2014-9-5 15:52:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 wutong490 于 2014-9-5 20:44 编辑

前段时间发现SW的另存PDF很好用,于是现在一直把工程图另存为PDF。
为了查阅方便需要把图纸名称改为零件名称,很机械的动作。
这两天看到闷大的獨孤九劍-第二十式:《萬劍朝宗》,只有仰视
找遍资料写了个可以把图纸名称改为零件名称的宏。现在还有缺陷,多张图纸的时候,只有第一次执行才有效果。
还请大家帮忙改改。

  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim myDrawingSheet As Object
  4. Sub main()
  5. Set swApp = Application.SldWorks
  6. Set Part = swApp.ActiveDoc
  7. Set swModel = swApp.GetFirstDocument
  8. path_name = swModel.GetPathName
  9. Name = swModel.GetTitle()
  10. Set myDrawingSheet = Part.GetCurrentSheet()
  11. myDrawingSheet.SetName Name
  12. End Sub
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏17 分享淘帖 赞一下!赞一下!
推荐
发表于 2014-12-1 15:07:25 | 只看该作者
wutong490 发表于 2014-12-1 13:24
1. 纯手工输入的结果见下图

如果是宏修改的话,这个长度可以更长。但是修改就会遇到提示名称过长

配合“同一模型以多頁解說”的代碼如下:(還加上了8樓的渴求及避開一些默認字眼。)
  1. Dim PathName As String
  2. Dim SheetName() As String
  3. Dim ConfigName As String
  4. Dim SplittedPathName() As String
  5. Dim ModelName As String

  6. Sub main()
  7. Set swApp = Application.SldWorks
  8. Set drawing = swApp.ActiveDoc
  9. If drawing Is Nothing Then
  10.     MsgBox "阁下是一位小白!"
  11.     Exit Sub
  12. End If
  13. If drawing.GetType <> 3 Then Exit Sub
  14. SheetName = drawing.GetSheetNames
  15. SheetCount = drawing.GetSheetCount
  16. For i = 0 To SheetCount - 1
  17.     drawing.ActivateSheet SheetName(i)
  18.     Set swSheet = drawing.GetCurrentSheet
  19.     swSheet.SetName "$$" & i
  20. Next
  21. SheetName = drawing.GetSheetNames
  22. For i = 0 To SheetCount - 1
  23.     drawing.ActivateSheet SheetName(i)
  24.     Set swView = drawing.GetFirstView.GetNextView
  25.     PathName = swView.GetReferencedModelName
  26.     ConfigName = swView.ReferencedConfiguration
  27.     SplittedPathName = Split(PathName, "")
  28.     ModelName = SplittedPathName(UBound(SplittedPathName))
  29.     ModelName = Left(ModelName, Len(ModelName) - 7)
  30.     Set swSheet = drawing.GetCurrentSheet
  31.     If ConfigName = "Default" Or ConfigName = "默认" Or ConfigName = "預設" Then
  32.         ThisSheetName = ModelName
  33.     Else
  34.         ThisSheetName = ModelName & ">>" & ConfigName
  35.     End If
  36.     swSheet.SetName ThisSheetName
  37.     CurrentSheetName = swSheet.GetName
  38.     c = 1
  39.     While CurrentSheetName <> ThisSheetName
  40.         ThisSheetName = ThisSheetName & ":" & c
  41.         swSheet.SetName ThisSheetName
  42.         CurrentSheetName = swSheet.GetName
  43.         c = c + 1
  44.     Wend
  45. Next
  46. SheetName = drawing.GetSheetNames
  47. drawing.ActivateSheet SheetName(0)
  48. End Sub
复制代码

ps:同一模型的意思是:相同檔案名稱及相同的模型組態(配置)。

评分

参与人数 2技术 +3 贡献 +10 收起 理由
wutong490 + 10 强大的诙谐幽默
gt.adan + 3 很给力!

查看全部评分

44
发表于 2019-8-20 13:42:24 | 只看该作者
闷神真的要跪拜,跪舔 ,膜拜
43
发表于 2019-1-16 17:41:19 | 只看该作者
谢谢,很棒
42
发表于 2019-1-4 13:41:27 | 只看该作者
如果是多配制,把多配制里面的代号代替!
41
发表于 2018-11-25 21:44:49 | 只看该作者
谢谢楼主  复制代码
40
发表于 2018-10-19 19:55:22 | 只看该作者

版主你好,我用过你的宏设计的很好。如果能够把零件编号(属性里面的编号)同步到图纸页名称就更好了。304088847@qq.com
39
发表于 2018-10-18 08:00:03 | 只看该作者

这个宏程序很好用,我有个提议。零件属性里面把图纸编号确定。如何修改这个宏去读取属性里面的图纸编号来重命名图纸名称。
38
发表于 2018-10-11 07:29:37 | 只看该作者
那位大侠修改一下,把读取零件名称改为零件编号。
37
发表于 2018-7-31 16:30:52 | 只看该作者
智商不是一般的高
36
发表于 2018-3-1 12:40:48 | 只看该作者
真是神人!
35
发表于 2017-8-2 11:24:14 | 只看该作者
gdzsh 发表于 2017-8-1 16:18
哈哈  把这个符号直接改为图纸就可以了,不过排序是重0开始的,这么才能从1开始呢?

本來打算回答, 但回答內容可能讓提問者有負面感覺, 看到大大如此高興(哈哈), 那就不掃興了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网 ( 粤ICP备2025491344号-1

GMT+8, 2025-11-11 06:00 , Processed in 0.072217 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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