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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 883|回复: 10
打印 上一主题 下一主题

求part打包的VB代码

  [复制链接]

11

主题

53

帖子

612

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1719

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

跳转到指定楼层
楼主
 楼主| 发表于 2022-7-30 14:49:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
30金币
本人在做一个宏,宏是在Excel表中的, 最后一步打包的宏搞不定了,寻求帮助。  目前零件已经打开(是part),现在需要打包存储在当前Excel表所在文件夹下(工程图也要打包),然后文件名和Excel表中Range("A" & N)单元格一致。  不要用SolidWorks的宏给我,我们公司软件加密的,代码不能辅助,给我个word或者TXT都行。  

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

1

主题

24

帖子

159

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
296
QQ
沙发
发表于 2022-8-1 16:38:25 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

11

主题

53

帖子

612

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1719

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

板凳
 楼主| 发表于 2022-8-3 12:35:59 | 只看该作者
SolidWorks机械工程师网
回复

使用道具 举报

11

主题

223

帖子

2362

金币

实习版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
9475

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

地板
发表于 2022-8-3 13:31:36 | 只看该作者
楼主你最好把你Excel宏发出来,大家看了才好补充成你需要的。

SolidWorks机械工程师网
回复

使用道具 举报

11

主题

53

帖子

612

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1719

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

5#
 楼主| 发表于 2022-8-3 14:00:47 | 只看该作者

   经典案例图书
wetiuer 发表于 2022-8-3 13:31
楼主你最好把你Excel宏发出来,大家看了才好补充成你需要的。

Sub 打包()
Dim Swapp As Object
Dim Part As Object
Dim Gtol As Object
Dim longstatus As Long
Dim longwarbings As Long
Dim boolstatus As Boolean
N = 1
Do Until ThisWorkbook.Sheets(1).Range("A" & N) = ""
WLBM = ThisWorkbook.Sheets(1).Range("A" & N)     
Set Swapp = CreateObject("SldWorks.Application")
Set Part = Swapp.OpenDoc6(ThisWorkbook.Path & "\" & "零件.SLDPRT", 1, 0, "", longstatus, longwarbings)
Set Part = Swapp.ActiveDoc     
bRet = Part.AddCustomInfo3("", "物料编码", 30, WLBM)


这里把打开的零件在当前文件夹下打包,文件名称改成和Range("A" & N) 一致         



            
Swapp.CloseDoc  "零件.SLDPRT"
N = N + 1
Loop
End Sub
SolidWorks机械工程师网
回复

使用道具 举报

11

主题

223

帖子

2362

金币

实习版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
9475

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

6#
发表于 2022-8-3 14:42:25 | 只看该作者
belibe 发表于 2022-8-3 14:00
Sub 打包()
Dim Swapp As Object
Dim Part As Object



参考SolidWorks官方API帮助示例如图一所示,在使用SavePackAndGo方法执行打包前,调用SetDocumentSaveToNames方法修改打包后的文件路径即可实现。












SolidWorks机械工程师网
回复

使用道具 举报

11

主题

53

帖子

612

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1719

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

7#
 楼主| 发表于 2022-8-3 17:30:01 | 只看该作者

   经典案例图书
wetiuer 发表于 2022-8-3 14:42
参考SolidWorks官方API帮助示例如图一所示,在使用SavePackAndGo方法执行打包前,调用SetDocumentSav ...

就是没搞明白,所以求助
SolidWorks机械工程师网
回复

使用道具 举报

11

主题

53

帖子

612

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1719

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

8#
 楼主| 发表于 2022-8-5 11:32:03 | 只看该作者
换了个方法,大致解决了目前的问题。  但发现打包加前缀或者后缀,文件名会变成小写,怎么解决,有知道的没
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

990

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19514

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

9#
发表于 2022-8-9 10:11:25 | 只看该作者
belibe 发表于 2022-8-5 11:32
换了个方法,大致解决了目前的问题。  但发现打包加前缀或者后缀,文件名会变成小写,怎么解决,有知道的没

使用笨一点的办法解决吧,代码见链接13楼
https://www.swbbsc.com/thread-342679-1-1.html
SolidWorks机械工程师网
回复

使用道具 举报

11

主题

53

帖子

612

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1719

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

10#
 楼主| 发表于 2022-8-11 09:55:48 | 只看该作者
Allate 发表于 2022-8-9 10:11
使用笨一点的办法解决吧,代码见链接13楼
https://www.swbbsc.com/thread-342679-1-1.html

大神,这是我现在的代码,帮忙看看怎么能改成大写
Sub 打包()

Dim swApp As Object
Dim Part As Object
Dim Gtol As Object
Dim longstatus As Long
Dim longwarbings As Long
Dim boolstatus As Boolean
Dim swModelDoc As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim status As Boolean
Dim statuses As Variant
Dim fullpath, myPath As String
N = 1
Do Until ThisWorkbook.Sheets(1).Range("A" & N) = ""
TH = Left(ThisWorkbook.Sheets(1).Range("A" & N), 6)
Name1 = ThisWorkbook.Sheets(1).Range("A" & N)         
Name2 = Right(Name1, Len(Name1) - 6)
.....中间省略

Set swModelDoc = swApp.ActiveDoc
swModelDoc.Save
Set swModelDocExt = swModelDoc.Extension
Set swPackAndGo = swModelDocExt.GetPackAndGo
swPackAndGo.IncludeDrawings = True
swPackAndGo.IncludeToolboxComponents = True
fullpath = swModelDoc.GetPathName()
myPath = UCase(Left(fullpath, Len(fullpath) - 7))
swPackAndGo.AddSuffix = Name2

status = swPackAndGo.SetSaveToName(True, UCase(myPath))
myPath = UCase(myPath)
statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
            
              

swApp.CloseDoc (ThisWorkbook.Path & "\" & TH & ".SLDPRT")
N = N + 1
Loop

End Sub
SolidWorks机械工程师网
回复

使用道具 举报

0

主题

125

帖子

256

金币

堂主

Rank: 4

积分
524

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

11#
发表于 2023-3-11 09:45:36 | 只看该作者
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-28 22:05 , Processed in 0.270453 second(s), 35 queries .

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

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

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