iCAx开思网
标题:
关于Solidworks 二次开发中打包问题
[打印本页]
作者:
wenmk
时间:
2018-12-26 10:01
标题:
关于Solidworks 二次开发中打包问题
本帖最后由 wenmk 于 2018-12-27 11:32 编辑
本人在学习Solidworks 二次开发,有很多不懂的地方,想请教一下论坛前辈关于打包一些问题。
在API帮助中有关于 Pack And Go 章节我已经仔细阅读过,现在已经能获取到打包文件的原始路径、数量及文件名,也可以设置要保存的路径。
但在设置要打包保存的路径、数量及文件名时遇到了困难,在swPackAndGo.SetDocumentSaveToNames(
PathNameList
)方法中,要求(
PathNameList
)
数组中
要保存的文档的数量、顺序和类型必须与
swPackAndGo.GetDocumentNames(
PathNameList
)
所返回的数组匹配,请高手帮忙看一下,如何获取
(
PathNameList
)数组中的参数,并修改文件名、路径及删除不要打包的文件,并返回给(
PathNameList
),谢谢!
作者:
wenmk
时间:
2018-12-26 13:14
本帖最后由 wenmk 于 2018-12-26 13:43 编辑
贴上vb.net 代码:
Dim Swapp As SldWorks.SldWorks
Dim Prat As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim namesCount As Integer
Dim status As Boolean
Dim pgFileNames As Object = Nothing
Dim Kei As String
Dim myPath As String
Dim Qianz As Boolean
Dim Hoz As Boolean
'Dim pgGetFileNames As Object
'Dim pgDocumentStatus As Object
Dim statuses As Object
Dim i As Integer
Dim tempArray As String
'Dim Dabao() As String
Dim pgFileStatus As Object = Nothing
tempArray = RichTextBox1.Text
Swapp = CreateObject("Sldworks.application")
Prat = Swapp.ActiveDoc
swModelDocExt = Prat.Extension
'准备打包
'Debug.Print("Pack and Go")
swPackAndGo = swModelDocExt.GetPackAndGo
'获得获取装配中的文档数量
namesCount = swPackAndGo.GetDocumentNamesCount
Debug.Print(" Number of model documents: " & namesCount)
'是否打包工程图
swPackAndGo.IncludeDrawings = RadioButton1.Checked
Debug.Print(" Include drawings: " & swPackAndGo.IncludeDrawings)
Debug.Print(RadioButton1.Checked)
''是否打包标准件
'swPackAndGo.IncludeToolboxComponents = RadioButton3.Checked
'Debug.Print(RadioButton3.Checked)
'获取打开模型路径和文件名
status = swPackAndGo.GetDocumentNames(pgFileNames)
If Not pgFileNames Is Nothing Then
For i = 0 To UBound(pgFileNames)
pgFileNames(i) = pgFileNames(i).Toupper()
Kei = pgFileNames(i)
RichTextBox1.Text &= Kei & vbNewLine
Debug.Print(Kei)
Next i
End If
'设置保存模型的文件夹
myPath = TextBox1.Text
status = swPackAndGo.SetSaveToName(True, myPath)
'获取用于打包的模型文档路径和名称
status = swPackAndGo.GetDocumentSaveToNames(pgFileNames, 0)
If Not pgFileNames Is Nothing Then
For i = 0 To UBound(pgFileNames)
pgFileNames(i) = pgFileNames(i).Toupper()
Next i
End If
'设置更改打包的文档的路径和文件名
Dim FavetoNames As Boolean
FavetoNames = swPackAndGo.SetDocumentSaveToNames(pgFileNames)
'向文件名添加前辍和后辍
Qianz = CheckBox1.Checked
Hoz = CheckBox2.Checked
If Qianz = True Then
swPackAndGo.AddPrefix = TextBox3.Text
ElseIf Hoz = True Then
swPackAndGo.AddSuffix = TextBox4.Text
End If
''如果向文件名添加前辍和后辍,则验证文件名和文件路径
'ReDim pgGetFileNames(namesCount - 1)
'ReDim pgDocumentStatus(namesCount - 1)
'status = swPackAndGo.GetDocumentSaveToNames(pgGetFileNames, pgDocumentStatus)
'For i = 0 To (namesCount - 1)
' Debug.Print(" My path and filename is: " & pgGetFileNames(i))
'Next i
'平展到单一文件夹,将所有文件保存到根目录
swPackAndGo.FlattenToSingleFolder = True
'打包
statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
复制代码
作者:
scattie
时间:
2018-12-27 09:34
好东西,谢谢分享!!
作者:
wenmk
时间:
2018-12-27 11:33
已解决,谢谢大家关心!!
作者:
风中de沙
时间:
2019-4-14 11:18
好东西,谢谢分享,本人是个VB白痴不会用,可否上传你的宏
谢谢!!!
作者:
scattie
时间:
2019-4-15 09:48
来学习学习
作者:
Gary.H
时间:
2019-4-16 09:20
二次开发好难啊
作者:
735057167
时间:
2019-4-16 15:45
我复制进去,代码还是显示出错
作者:
wenmk
时间:
2020-2-17 12:32
735057167 发表于 2019-4-16 15:45
我复制进去,代码还是显示出错
这个代码是VB.NET的,不是VBA,VBA我也不会!
作者:
a8012024
时间:
2020-4-2 18:58
学习学习
作者:
nbxhywsb
时间:
2020-12-24 11:35
学习le
作者:
snycef
时间:
2022-5-14 16:15
楼猪太神了,学习了
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3