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

标题: 批量输出文件自定义属性及缩略图到Excel [打印本页]

作者: hling99    时间: 2017-12-13 04:04
标题: 批量输出文件自定义属性及缩略图到Excel
看了工程师的帖子,萌发了做一个实现类似效果的东西。
我搜索了下自己多年收藏和编制的代码库,将一些成熟的程序段落引用过来,并加以整理修改,编制了实现莱大所展示的功能。
在此重开新帖,便于大家讨论及程序修订
'说明: 该可以批量输出指定文件下SOLIDWORKS模型的自定义属性及缩略图到excel文件中
'前提条件: 通过浏览目录对话框,选择要处理的文件路径.
'最后结果: 该将批量输出指定文件夹及子目录下所有solidworks模型的自定义属性及缩略图到excel文件中并存储到桌面上。
'
' 1.该程序既可以批量处理包括子文件夹下的所有SolidWorks模型文件(零件及装配体
'
' 2.可对于属性值及属性评估值进行判断,有评估值的输出评估数值,否则输出属性值
'
’3.用户可根据实际需要对输出表格样式进行修改调整
'作者:lhl,2017.07.28
'
'版本:V1.0
' -------------------------------------------------------------------------------

作者: jjjwwwmmm    时间: 2017-12-13 05:32
沙发!
作者: pepsi1101    时间: 2017-12-13 07:56
这个好,要支持!
作者: test82    时间: 2017-12-13 09:29
留着慢慢用,先收藏了。
作者: onlyxi3333    时间: 2017-12-13 12:14
下載研究,謝謝lhl2008大大的分享
作者: abc9722103    时间: 2017-12-13 14:03
多谢分享!
我在SW中点工具〉 〉运行,却没有反应,是Excel的版本不对吗?
作者: shaozhen    时间: 2017-12-13 15:02
谢谢分享!下载学习!
作者: as65763360    时间: 2017-12-13 16:24
好东东,值得分享。
作者: liu8121    时间: 2017-12-13 16:43
谢谢分享,大无畏!
作者: henrylkf    时间: 2017-12-13 17:37
如果没有反应,注意在VBA编辑器中将引用修改成你当前计算机所安装的相关控件

作者: lzencn    时间: 2017-12-13 18:15
多谢指导,搞定了,真是个好用的工具,再次感谢分享。

作者: violet923    时间: 2017-12-13 19:46
執行main出錯,sw-2012   excel-2010版,不知是否可以修正?

作者: scj1227    时间: 2017-12-13 23:38
在文件夹中零件和总装都有缩略图,且显示完整清晰。

但在Excel中的缩略图,显示不完整,大小不一而且没文件夹中的缩略图清晰,缩略图的方向也和文件夹中的缩略图不一致。
请教lhl2008大师,这是不是我的操作不正确?
另外建议把Excel中的缩略图底色改为和Excel文档相同的底色(或白色)。
Excel中缩略图的方向最好能和文件夹中的缩略图一致。

作者: hbgcjjh    时间: 2017-12-14 03:53

复制代码
工程师,将这一段修改一下
作者: 30766815    时间: 2017-12-14 04:17
試試了,謝謝!
作者: gxs9834    时间: 2017-12-14 04:46
很好很实用,感谢 lhl2008 的无私奉献。
如果可以选择一个装配体产生带图片的表格就完美了。。。
再次感谢楼主的无私奉献!
作者: sswoyygy88    时间: 2017-12-14 07:32
如13#修正是可執行,
但在組件(零件沒叫出)上執行main后,跑出的是空的Excel表.
再請教是操作上的條件有問題嗎?

作者: caacman    时间: 2017-12-14 09:43
工程师,你引用文件调整过吗?要根据sw版本,以及Excel版本修改引用
作者: angie_lu    时间: 2017-12-14 09:52
引用文件调整过吗?
引用文件見11#
作者: kuaileshuishou    时间: 2017-12-14 14:38
1.你上面做的可以,下面的怎么有问题了?
2.如果缩略图带背景的话,应该是文件版本太老了!
3.提取出的缩略图与文件夹下的不一样问题
   我觉得可能是SW公司有所保留,文件内部保存的缩略图并不是用SW软件及其他工具所显示的,它可能是用了另一种机制。
作者: aimee001    时间: 2017-12-14 15:51
solidworks原2017改回2012也是依樣
另sw2017再不修改是可執行,但跑出的也是空的Excel

作者: competent    时间: 2017-12-14 16:25
你用sw2012,引用应该为sw2012类型库及常数库;excel类型库也相应改动
作者: jiamiaohx    时间: 2017-12-15 00:05
工程师,你设置断点,调试一下,看那不对!我这没有低版本,无法判断!
作者: restrest    时间: 2017-12-15 00:37
下载了备用  谢谢分享
作者: boweiwong    时间: 2017-12-15 03:49
多谢lhl2008大师回复。
经过测试,发现大师的提取的缩略图是文件保存时零件和装配体的位置,
也就是说文件保存时零件的方位视图是什么样子缩略图就是什么样子,缩略图背景也是如此。
我重新修改了文档的背景为白色并把所有零件和装配体都摆到等轴测视图位置,就正常了。
由此可见,保存时把零件和装配体设置为合适的视图也是很重要的。

作者: heroxch    时间: 2017-12-15 04:08
如圖

作者: czq888-01    时间: 2017-12-15 05:26
請教SW2016大大是開組件,執行main就行嗎?
作者: shuaixiaoliu    时间: 2017-12-15 07:41
运行时,无需打开任何模型
作者: masanxi    时间: 2017-12-15 07:45
回ryouss大师,不用打开任何装配体或零件,打开SW后直接点工具→→运行。

运行后会出现浏览文件夹的对话框,选择文件保存的文件夹就自动生成。

作者: rechuli12345    时间: 2017-12-15 21:05
謝謝回覆,還沒搞定!
也有可能是沒支援繁体版??
作者: gelianghao    时间: 2017-12-15 22:21
谢谢分享经验!
作者: lvbuzhong    时间: 2017-12-16 00:10
ryouss大师是否装了两个SW版本?
作者: ginkgo9    时间: 2017-12-16 00:38
為了方便眾友,自用筆電三個 2012,2015,2017
針對本主題會有影響嗎?
作者: wind001    时间: 2017-12-16 08:37
肯定有影响,大师不妨用2017试试。
只是不清楚2017支持哪个Excel版本,也不知lhl2008大师的对Excel版本是否有要求。
作者: wuweisky    时间: 2017-12-16 09:12
2017試了,一樣是空白Excel
作者: 110902358    时间: 2017-12-16 09:46
试过,运行后,无反应。
用的是SW2015,Excel2010。是Excel版本的关系吗?
作者: sxgwww    时间: 2017-12-16 12:59
巧遇28大
作者: hublhy    时间: 2017-12-16 13:00
Sw2012 64bit office 2007
运行后,选择文件夹,excel中只能显示一个零件的相关内容
其实文件夹中有多个SW的模型文件,不知哪出了问题?
作者: lwgsyk    时间: 2017-12-16 13:48
下载学习一下
作者: angelzx100    时间: 2017-12-16 14:00
无法试用,崩溃 怎么都解决不了。
作者: jimiyoung    时间: 2017-12-16 14:01
大神自定义属性可以增加么
作者: ttllhebei    时间: 2017-12-16 14:19
另外读取的属性如果在EXCEL中修改可以返回去修改模型中的属性么
作者: chensq85    时间: 2017-12-16 14:27
SW2015   EXCEL2013试过,无反应,优先级别全部统统设置一次,还是无反应,求解!

作者: shooter4587    时间: 2017-12-16 16:33
大大,弄了N久,没成功,提示:用户定义类型未定义(Dim PrevBmp As stdole.StdPicture),见下图,求解!

作者: 85776845    时间: 2017-12-16 17:43
良大是怎麽把vba的注解轉換成繁體中文的?
我這邊日文系統打開全都是無法閲讀的文字,很多表格名的引用全都變成不可讀,完全沒得測試。。。
作者: suqingqing    时间: 2017-12-16 18:03
建议遍历装配体,再获取属性,因为在设计中,文件夹内有许多设计中放弃的垃圾零配件不好清理。  这个哪位高手改编一下  哈哈那就完美了
作者: renzhejun    时间: 2017-12-16 19:31
是用這軟件 ConvertZ.exe 簡繁複製切換就是.
作者: zhouhancheng    时间: 2017-12-17 02:34
只能羨慕了,流量不夠,
作者: 553681251    时间: 2017-12-17 04:25
感謝。,,,
切換ok,貼囘去還是亂成一團。。vba編輯器依舊這麽神奇。。
不逐條修正成英文是沒辦法繼續下去了。。。
作者: redbro    时间: 2017-12-17 14:00
流量不足 如何兑换呀?
作者: terry_chen    时间: 2017-12-17 14:40
配置
solidworks 2012   +  win7 64  +  32位office
拿过和与预想的一样     直接无法用     要么EXCEL 直接空白

调试之前 注释掉 容错语句   on error resume next   
问题:
          1.工程引用要改
          2.去掉 PtrSafe  (见图片 PtrSafe,对照楼主源代码)    ,不去掉的话 那段代码直接  亮红
         3.类型声明符与声明对象不符,,改改改  在left 前加  VBA. (见图片 VBA
结果:
       1. 缩略图的错误(见图片报错)没搞定     直接先屏蔽掉     去找资料或坛里高人指点
       2.可以顺利生成不带图的bom(见图bom表)
ptrsafe

VBA

报错

BOM表

作者: tt456tt    时间: 2017-12-17 17:09
solidworks2017的VBA是6.0,solidworks2013以后为7.0,程序需要做一些调整
作者: shanquan    时间: 2017-12-17 17:42
果如楼主所说2013以后版本上使用效果不错!
作者: dxp008    时间: 2017-12-17 18:49

VBA确实不方便   

作者: 1234567890402    时间: 2017-12-17 19:27
想知道 楼主   顺利提取出图片   是怎样的配置
问过别人  GetPreviewBitmap  好像64位用不了
要我用内存截图 法

作者: wangbaoyue    时间: 2017-12-17 20:06
大大问的高人,应该不清楚COM为何物!
作者: 洞庭波兮    时间: 2017-12-17 20:47
都不是专业的   思路可能不同  不到不得已 不打算用他的方法  有难度     不过那种方法 图片效果不错
别卖关子了   有解决方法吗
作者: rosesea    时间: 2017-12-17 21:08
曲线救国 选了一种取巧的方法 哈哈哈

吐槽一下  SWDM-API

程序还要调一下 (以后再说头大)主要是图片显示大小问题


作者: krissjericho    时间: 2017-12-17 22:51
在低版本中用GetPreviewBitmap提取图片没问题,我以前在SW2012用过,现在手头没有低版本,无法验证!
作者: 我的情人    时间: 2017-12-18 02:26
打开装配体,批量输出零部件属性及缩略图
(也可称之为零部件明细表统计)
'说明: 该可以批量输出打开的装配体中所有零部件属性及缩略图到excel文件中
''前提条件: 1.当前所打开的文档必须是装配体
'
''           2.运行该程序前要将装配体中的轻化零部件全部进行还原,否则对轻化的零部件不进行统计;
'
''           3.每个零部件的文档属性中必须要包含要提取的属性名称
'
'最后结果: 该将批量输出打开的solidworks装配体所有零部件中所包含的零部件质量,密度,数量,所属装配号
'
'          以及自定义属性和配置属性及缩略图到excel文件中并存储到桌面上。
'
'特点:
'   1.该可同时输出零部件自定义属性以及配置属性
'
'   2.该可统计输出零部件总数量以及总重
'
'   3.该可统计输出零部件所属装配代号
'
'   4.该可输出所有零部件缩略图
'
'   5.对于封套,Bom排除零部件,既可以统计进去,也可排除
'
'作者:lhl,2017.08.05
'
'版本:V1.0
作者: cheng63533    时间: 2017-12-18 03:33



作者: ZHONGXIANG    时间: 2017-12-18 04:15
谢谢专家,提供如此强大工具,坛友们有福了。
之前俺都是利用Excel内建工具插入图片和调整尺寸,
有了这工具就可以大大简化操作了,效率估计提高起码十倍。
因审美观因人而异,涂彩缩图未能兼顾每个人的口味,
后来俺都是使用黑白(仅看的到模型边线)缩图来解决的。
看看可否加上黑白缩图(如附图)的功能?(可能俺太贪心了吧)

作者: keyuwu007    时间: 2017-12-18 08:52
lhl2008大师,这个是最新版本吗?
作者: dirteer    时间: 2017-12-18 09:39
谢谢鹿兄关注,生成线框缩略图是可以的,但这个不是SW文件中保存的,必须要另外保存成线框图片,这个应该不是难点。也许,鹿兄有更好的招法!
作者: 朱骧龙    时间: 2017-12-18 10:30
是否如55#所提供的信息 64位元 無法享用,
而執行成功的都是 32位元 嗎?
作者: vigor36    时间: 2017-12-18 10:50
我的机子配置
windows10,64位
Solidworks2017
Excel2016
作者: cilery    时间: 2017-12-18 11:28
見鬼一直沒試出
我是
win7,64位元
solidworks2012,2017
Excel 2010
作者: wpeirh    时间: 2017-12-18 16:06
進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.

作者: mmkj123    时间: 2017-12-18 21:42
浏览文件夹的过程你可以另换一个试试
作者: wy1991219    时间: 2017-12-19 00:42
改了沒用
另請教如下是正確的嗎?

作者: klrsym    时间: 2017-12-19 03:17
做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进


作者: zhengch001    时间: 2017-12-19 10:23
楼主在插入图片后,可以用
PictureFormat.ColorType = msoPictureBlackAndWhite
试试
如果图片是SW里面直接保存出来的话,可以用PNG格式,并且,要求用户自己在SW设置里面打勾“移除背景”
作者: nishishuia    时间: 2017-12-19 10:52
谢谢bash兄指导,我试试!
作者: wenwei11    时间: 2017-12-19 10:56
惊见某论坛出现的动画

作者: jacksonrhb1    时间: 2017-12-19 11:01
我也是这情况,希望能解决
作者: suli100f    时间: 2017-12-19 11:17
某论坛有人做出来共享了?
作者: 199800    时间: 2017-12-19 12:59
越来越强了!
作者: yuwu789    时间: 2017-12-19 14:37
我是这样做的:
打开SW,点工具>>编辑,然后在编辑界面中点工具>引用,
在引用中把对应自己版本的solidworks和excel版本选中,然后保存。


作者: chch168    时间: 2017-12-19 15:47
谢谢hl2008跟SW2016两位大师,之前因office2013版本原因使用不了现在可以打开了
作者: qwww101    时间: 2017-12-19 18:35
谢谢鹿兄提醒,这些功能都已实现


作者: gilloney    时间: 2017-12-19 19:26
請教m大是用哪個office版本才可以打开的?
作者: zb0461    时间: 2017-12-19 20:29
给lhl2008大师提个建议:
栏宽不够啊,能不能把【文件名称】栏中文件名的后缀去掉?
作者: gbs360    时间: 2017-12-19 22:19
win8.1 64位 sw2016 sp4 64位  Office 2013  32位( excel 15...)   可以运行。。而 Office 2010 64位,
Office 2007  32位 没有试成。 sw2012 64位   Office 2013  32位( excel 15...) 也没有试成。
作者: gary112    时间: 2017-12-19 22:48
office2016
作者: 6680554    时间: 2017-12-20 02:21
开始我也是office2013不行后来改用office2016正常打开了
作者: eagend    时间: 2017-12-20 05:00
感谢分享。学习下!!
作者: real-tz_wang    时间: 2017-12-20 07:10
能不能改成读取配置特定属性。谢谢。
作者: lifezaq    时间: 2017-12-20 08:40
我正好在那個死棋
作者: happy780124    时间: 2017-12-20 12:41
謝謝m大回覆!
作者: yangzhiga    时间: 2017-12-20 16:45
谢谢分享!下载学习!
作者: xngyun    时间: 2017-12-20 17:14
谢谢分享
作者: zhangyincll    时间: 2017-12-20 17:43
在实际工作中,这样的表格可以对现有的工作有什么改善?
作者: edijoe    时间: 2017-12-20 17:53
留个记号,后续有钱了再来下载
作者: wkafei    时间: 2017-12-20 18:29
试用,谢谢分享!
作者: wlnucm    时间: 2017-12-20 19:32
学习一下
作者: xiaoyaok789    时间: 2017-12-20 22:18
是工程师分享的 ISWXL(SolidWorks and Excel Interactive tools),
目前有22個功能(縮图顯示,零件属姓,文件更名,工程图...),
如附图(有22個按鈕尚未齊全)個人也是正在學習摸索中.

作者: yujiaqing    时间: 2017-12-21 01:22
学习了
作者: 5431547773    时间: 2017-12-21 04:02
厉害了,各位大神!
作者: kobeli3720758    时间: 2019-6-27 09:52
谢谢分享,大无畏!
作者: view21cy    时间: 2020-7-5 12:45
xiaoyaok789 发表于 2017-12-20 22:18
是工程师分享的 ISWXL(SolidWorks and Excel Interactive tools),
目前有22個功能(縮图顯示,零件属姓,文件 ...

这个工具有没有代码分享下啊?




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2