找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

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

[求助] 烦请闷大、丹大指教两个SWDM-API使用中的代码问题

[复制链接]
跳转到指定楼层
1
发表于 2016-11-4 14:34:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. Sub ReadModelPrpInSlddrw()
  2. Dim swModel As SwDMDocument10
  3. Dim dmSearchOpt As SwDMSearchOption
  4. Set objClassfac = CreateObject("SwDocumentMgr.SwDMClassFactory")
  5. SWDMLicenseKey = InputBox("輸入許可證密碼")
  6. If SWDMLicenseKey = "" Then Exit Sub
  7. Set swDM = objClassfac.GetApplication(SWDMLicenseKey) '啟動SWDM
  8. HeaderRoll = 2
  9. RollNumber = HeaderRoll + 1
  10. PathName = ActiveSheet.Cells(RollNumber, 1) '讀取第一個路徑的值
  11. While Not (PathName = "" Or PathName = 0 Or IsEmpty(PathName)) '直到讀完路徑欄
  12.     Filename = ActiveSheet.Cells(RollNumber, 2)
  13.     Set swDoc = swDM.GetDocument(PathName & Filename, 3, False, mOpenErrors) '開啟工程圖
  14.     If Not swDoc Is Nothing Then
  15.         RefModelNames = swDoc.GetAllExternalReferences(dmSearchOpt) '獲取參考檔案名稱
  16.         If Not TypeName(RefModelNames) = "Empty" Then '過濾沒有參考檔案
  17.             Cells(RollNumber, 2).Interior.ColorIndex = 8
  18.             RefModelName = RefModelNames(0) '獲取第一個參考檔案的名稱
  19.             If "SLDPRT" = UCase(Left(RefModelName, 6)) Then '分辨參考檔案的類型
  20.                 RefModelTYpe = 1 '這是零件
  21.             Else
  22.                 RefModelTYpe = 2 '這是組合件
  23.             End If
  24.             Set swModel = swDM.GetDocument(RefModelName, RefModelTYpe, False, mOpenErrors) '開啟
  25.             ColumnNumber = 3
  26.             PropName = Cells(HeaderRoll, ColumnNumber)
  27.             While Not (PropName = "" Or PropName = 0 Or IsEmpty(PropName)) '直到讀完表頭
  28.                 PropNames = swModel.GetCustomPropertyNames '獲取模型內所有屬性的名稱
  29.                 HasPropName = False
  30.                 If Not IsEmpty(PropNames) Then
  31.                     For i = 0 To UBound(PropNames) '核對書否存在表單上的屬性名稱
  32.                         If UCase(PropNames(i)) = UCase(PropName) Then HasPropName = True
  33.                     Next
  34.                 End If
  35.                 If HasPropName Then
  36.                     PropValue = swModel.GetCustomProperty(PropName, swDmCustomInfoText) '獲取參考檔案的屬性
  37.                     Cells(RollNumber, ColumnNumber) = PropValue '寫入屬性到表格
  38.                 Else
  39.                     Cells(RollNumber, ColumnNumber) = "-----" '寫入代表不存在屬性的字符
  40.                 End If
  41.                 ColumnNumber = ColumnNumber + 1 '下一欄
  42.                 PropName = ActiveSheet.Cells(HeaderRoll, ColumnNumber)
  43.             Wend '回到>直到讀完表頭
  44.             swModel.CloseDoc '關閉參考檔案
  45.             Cells(RollNumber, ColumnNumber) = RefModelName '寫入參考檔案名稱到表格到行末
  46.             End If
  47.         swDoc.CloseDoc '關閉工程圖
  48.     End If
  49.     RollNumber = RollNumber + 1 '下一列
  50.     PathName = ActiveSheet.Cells(RollNumber, 1)
  51. Wend '回到>直到讀完路徑欄
  52. End Sub
复制代码


闷大,以上代码为您在几何专门论坛 https://www.SOLIDWORKS.org.tw/forum.php?mod=viewthread&tid=26031&extra=page%3D1&page=2 这帖的51楼贴出来的一段代码。我现在想做一个EXCEL版的SWDM-API文件,在参考使用、修改这些代码,在此过程中碰到两个问题,百度求助没找到能解决我的问题的资料,SWDM-API帮助中又没有VBA的实例,有个VB.NET的实例,但复制到VBA里想看看原理时一运行就出错,可能是代码兼容性问题。没办法只能向闷大您求教了。问题的情况是:
一:在您51楼的读取工程图中参考的零部件的属性中,不知道怎样修改代码可以让获取得到的属性值是工程图中关联的零部件件的配置特定的属性而不是自定义属性选项卡上的属性?
二:SWDM-API打开工程图后,不知道用什么代码获取这个工程图的图纸格式的大小?不管获得的是类似A4 A3这样的结果还是类似于“297mm*210mm"这样的结果,当然最好是能输出A4 A3这种的,我需要输出的是这个值。(知识匮乏,不知道应该分别怎样称呼这两种格式,是否其一是“图纸格式”其一是“图幅”?)SW-API获取图页图幅属性的代码为            vsheetprops = swCurrentSheet.GetProperties
但是我不知道在SWDM-API中读取图页图幅属性的代码。
恳请闷大指点,谢谢。
也请大能 丹大以及梁大等一众高人指点。谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 赞一下!赞一下!
2
发表于 2016-11-4 18:53:05 | 只看该作者

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

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

x
3
 楼主| 发表于 2016-11-4 20:06:35 | 只看该作者

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

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

x
4
发表于 2016-11-4 20:18:52 | 只看该作者

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

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

x
5
 楼主| 发表于 2016-11-4 20:39:38 | 只看该作者

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

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

x
6
发表于 2016-11-4 20:55:33 | 只看该作者

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

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

x
7
 楼主| 发表于 2016-11-4 21:01:07 | 只看该作者

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

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

x
8
发表于 2016-11-4 21:05:47 | 只看该作者

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

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

x
9
发表于 2016-11-4 21:13:38 | 只看该作者

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

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

x
10
 楼主| 发表于 2016-11-4 22:07:32 | 只看该作者

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

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

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

本版积分规则

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

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-9-29 14:25 , Processed in 0.027478 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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