SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: KEMIRWU
打印 上一主题 下一主题

求助!工程图转PDF档的时候增加,PDF文件名增加版本属性。

  [复制链接]

32

主题

259

帖子

59

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1784

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

21#
 楼主| 发表于 2021-8-10 17:30:19 | 只看该作者

   经典图书
可以从配置特定里面读到属性,不能从自定义里面读到属性。  

补充内容 (2021-8-10 20:45):
3D文件如果是打开的状态下,宏失效了。
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

40

主题

389

帖子

4393

金币

传奇

Rank: 8Rank: 8

积分
10200

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

22#
发表于 2021-8-10 17:34:20 | 只看该作者
KEMIRWU 发表于 2021-8-10 16:58
卡到这个步骤了。

检查一下上一句配置名称“默认”,对应的模型有没有此配置。因为这一句报错应该只有配置名对不上才会出现,如果不是这个情况,我就不知道了!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

40

主题

389

帖子

4393

金币

传奇

Rank: 8Rank: 8

积分
10200

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

23#
发表于 2021-8-11 10:43:25 | 只看该作者

   经典图书
KEMIRWU 发表于 2021-8-10 17:30
可以从配置特定里面读到属性,不能从自定义里面读到属性。  

补充内容 (2021-8-10 20:45):

如果是自定义的配置用“”,这个逻辑我也不明白是为什么,然后3D文件打开宏失效,那么关闭3D文件宏就可以正常运行吗?我觉得还是检查一下是不是其他的原因。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

32

主题

259

帖子

59

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1784

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

24#
 楼主| 发表于 2021-8-25 15:18:34 | 只看该作者

  1. Public swApp As SldWorks.SldWorks
  2. Public swModel As SldWorks.ModelDoc2
  3. Public Filepath, NewFilepath  As String
  4. Public A1, A2, A3, oldName As String


  5. Sub main()
  6.      Set swApp = Application.SldWorks
  7.      Set swModel = swApp.ActiveDoc
  8.      Filepath = swModel.GetPathName()
  9.      Set swDraw = swModel
  10.      Get_P


  11. oldName = Left(Filepath, Len(Filepath) - 7) + "-" + "*" + ".pdf"
  12. If Dir(oldName) <> "" Then Kill oldName      '删除原文件
  13.      
  14.      NewFilepath = Left(Filepath, Len(Filepath) - 7) + "-" + A1 + "-" + A2 + ".pdf"
  15.      
  16.      swDraw.SaveAs3 NewFilepath, 0, 0
  17. End Sub


  18. Public Function Get_P()             '获取零件属性

  19. Dim PathName As String
  20. Dim swNameA As String

  21. PathName = Left(Filepath, Len(Filepath) - 6)        '文件路径去后缀
  22. PathName = PathName + "sldprt"
  23. swNameA = Dir(PathName, vbDirectory)

  24. If Not swNameA = Empty Then
  25.    Set swModel = swApp.OpenDoc6(PathName, 1, 1, "", 0, 0)     '静默打开文件
  26.    GoTo ss
  27. End If

  28. PName = Left(Filepath, Len(Filepath) - 6)        '文件路径去后缀
  29. PName = PathName + "SLDASM"
  30. swNameA = Dir(PathName, vbDirectory)
  31. If Not swNameA = Empty Then
  32.    Set swModel = swApp.OpenDoc6(PathName, 2, 1, "", 0, 0)     '静默打开文件
  33. Else
  34.    Exit Function
  35. End If

  36. ss:
  37. A1 = Get_Property_value(swModel, "Material")
  38. A2 = Get_Property_value(swModel, "Description")

  39.   
  40. End Function
  41. Public Function Get_Property_value(swDoc As ModelDoc2, Property_Name As String) As String
  42.     Dim swModelDocExt As ModelDocExtension
  43.     Dim swCustProp As CustomPropertyManager
  44.     Dim val As String                                                       '属性值
  45.     Dim valout As String                                                    '属性评估值
  46.     Dim bool As Boolean

  47.     Set swModelDocExt = swDoc.Extension
  48.     Set swCustProp = swModelDocExt.CustomPropertyManager("")
  49.     bool = swCustProp.Get4(Property_Name, False, val, valout)
  50.                                                                            
  51.     If InStr(1, val, Chr(168), vbTextCompare) = 0 Then          '如果属性值中含有引号,则取属性评估值
  52.         Get_Property_value = valout
  53.     Else
  54.        Get_Property_value = val
  55.     End If
  56.    
  57. End Function

复制代码
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

32

主题

259

帖子

59

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1784

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

25#
 楼主| 发表于 2021-8-25 15:19:52 | 只看该作者

   经典案例图书

总体这个是对的,但是宏有BUG,如果你的属性是空值,输出的是属性参数名。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

32

主题

259

帖子

59

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1784

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

26#
 楼主| 发表于 2021-8-25 16:43:51 | 只看该作者
KEMIRWU 发表于 2021-8-25 15:19
总体这个是对的,但是宏有BUG,如果你的属性是空值,输出的是属性参数名。

只读2D文件不能有作用。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

546

帖子

794

金币

传奇

Rank: 8Rank: 8

积分
3309

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

27#
发表于 2023-2-17 11:37:11 | 只看该作者

   经典案例图书
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

83

帖子

69

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
331

最佳新人活跃会员热心会员宣传达人

28#
发表于 2023-5-30 13:53:53 | 只看该作者
Allate 发表于 2020-11-27 11:07
我来献个丑,不知道行不行,先试试吧。
Option Explicit
Dim swApp As SldWorks.SldWorks

这个真不错,思路可以借用到 转存其他格式上,
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2025-7-1 19:37 , Processed in 0.463789 second(s), 16 queries , Memcache On.

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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