找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

[已解决] 关于Solidworks 二次开发中打包问题

[复制链接]
跳转到指定楼层
1
发表于 2018-12-26 10:01:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 wenmk 于 2018-12-27 11:32 编辑

本人在学习SOLIDWORKS 二次开发,有很多不懂的地方,想请教一下论坛前辈关于打包一些问题。
在API帮助中有关于 Pack And Go 章节我已经仔细阅读过,现在已经能获取到打包文件的原始路径、数量及文件名,也可以设置要保存的路径。但在设置要打包保存的路径、数量及文件名时遇到了困难,在swPackAndGo.SetDocumentSaveToNames(PathNameList)方法中,要求(PathNameList数组中要保存的文档的数量、顺序和类型必须与 swPackAndGo.GetDocumentNames(PathNameList所返回的数组匹配,请高手帮忙看一下,如何获取PathNameList)数组中的参数,并修改文件名、路径及删除不要打包的文件,并返回给(PathNameList),谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
推荐
发表于 2018-12-26 13:14:40 | 只看该作者
本帖最后由 wenmk 于 2018-12-26 13:43 编辑

贴上vb.net 代码:
  1.         Dim Swapp As SldWorks.SldWorks
  2.         Dim Prat As SldWorks.ModelDoc2
  3.         Dim swModelDocExt As SldWorks.ModelDocExtension
  4.         Dim swPackAndGo As SldWorks.PackAndGo
  5.         Dim namesCount As Integer
  6.         Dim status As Boolean
  7.         Dim pgFileNames As Object = Nothing
  8.         Dim Kei As String
  9.         Dim myPath As String
  10.         Dim Qianz As Boolean
  11.         Dim Hoz As Boolean
  12.         'Dim pgGetFileNames As Object
  13.         'Dim pgDocumentStatus As Object
  14.         Dim statuses As Object
  15.         Dim i As Integer
  16.         Dim tempArray As String
  17.         'Dim Dabao() As String
  18.         Dim pgFileStatus As Object = Nothing


  19.         tempArray = RichTextBox1.Text
  20.         Swapp = CreateObject("Sldworks.application")
  21.         Prat = Swapp.ActiveDoc
  22.         swModelDocExt = Prat.Extension

  23.         '准备打包
  24.         'Debug.Print("Pack and Go")
  25.         swPackAndGo = swModelDocExt.GetPackAndGo

  26.         '获得获取装配中的文档数量
  27.         namesCount = swPackAndGo.GetDocumentNamesCount
  28.         Debug.Print("  Number of model documents: " & namesCount)

  29.         '是否打包工程图
  30.         swPackAndGo.IncludeDrawings = RadioButton1.Checked
  31.         Debug.Print("  Include drawings: " & swPackAndGo.IncludeDrawings)
  32.         Debug.Print(RadioButton1.Checked)

  33.         ''是否打包标准件
  34.         'swPackAndGo.IncludeToolboxComponents = RadioButton3.Checked
  35.         'Debug.Print(RadioButton3.Checked)

  36.         '获取打开模型路径和文件名
  37.         status = swPackAndGo.GetDocumentNames(pgFileNames)
  38.         If Not pgFileNames Is Nothing Then
  39.             For i = 0 To UBound(pgFileNames)
  40.                 pgFileNames(i) = pgFileNames(i).Toupper()
  41.                 Kei = pgFileNames(i)
  42.                 RichTextBox1.Text &= Kei & vbNewLine
  43.                 Debug.Print(Kei)
  44.             Next i
  45.         End If

  46.         '设置保存模型的文件夹
  47.         myPath = TextBox1.Text
  48.         status = swPackAndGo.SetSaveToName(True, myPath)

  49.         '获取用于打包的模型文档路径和名称
  50.         status = swPackAndGo.GetDocumentSaveToNames(pgFileNames, 0)
  51.         If Not pgFileNames Is Nothing Then
  52.             For i = 0 To UBound(pgFileNames)
  53.                 pgFileNames(i) = pgFileNames(i).Toupper()
  54.             Next i
  55.         End If

  56.         '设置更改打包的文档的路径和文件名
  57.         Dim FavetoNames As Boolean
  58.         FavetoNames = swPackAndGo.SetDocumentSaveToNames(pgFileNames)

  59.         '向文件名添加前辍和后辍
  60.         Qianz = CheckBox1.Checked
  61.         Hoz = CheckBox2.Checked
  62.         If Qianz = True Then
  63.             swPackAndGo.AddPrefix = TextBox3.Text
  64.         ElseIf Hoz = True Then
  65.             swPackAndGo.AddSuffix = TextBox4.Text
  66.         End If

  67.         ''如果向文件名添加前辍和后辍,则验证文件名和文件路径
  68.         'ReDim pgGetFileNames(namesCount - 1)
  69.         'ReDim pgDocumentStatus(namesCount - 1)
  70.         'status = swPackAndGo.GetDocumentSaveToNames(pgGetFileNames, pgDocumentStatus)
  71.         'For i = 0 To (namesCount - 1)
  72.         '    Debug.Print("    My path and filename is: " & pgGetFileNames(i))
  73.         'Next i

  74.         '平展到单一文件夹,将所有文件保存到根目录
  75.         swPackAndGo.FlattenToSingleFolder = True

  76.         '打包
  77.         statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
复制代码


3
发表于 2018-12-27 09:34:06 | 只看该作者
好东西,谢谢分享!!
4
发表于 2018-12-27 11:33:51 | 只看该作者
已解决,谢谢大家关心!!
5
发表于 2019-4-14 11:18:48 | 只看该作者
好东西,谢谢分享,本人是个VB白痴不会用,可否上传你的宏谢谢!!!
6
发表于 2019-4-15 09:48:56 | 只看该作者
来学习学习
7
发表于 2019-4-16 09:20:22 | 只看该作者
二次开发好难啊
8
发表于 2019-4-16 15:45:14 | 只看该作者
我复制进去,代码还是显示出错
9
发表于 2020-2-17 12:32:16 | 只看该作者
735057167 发表于 2019-4-16 15:45
我复制进去,代码还是显示出错

这个代码是VB.NET的,不是VBA,VBA我也不会!
10
发表于 2020-4-2 18:58:18 | 只看该作者
学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-18 19:03 , Processed in 0.030698 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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