QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
楼主: lhl2008
收起左侧

[原创] 批量输出文件自定义属性及缩略图到Excel

[复制链接]
发表于 2017-8-3 14:20:00 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-3 15:00 编辑   O/ x/ t) Y! q6 o. p% d

, S' r+ ^  E6 O: f/ L配置:
7 ~! N. x  X5 c2 |" @, r, e! C. hsolidworks 2012   +  win7 64  +  32位office% f( M6 W7 M' M
宏拿过和与预想的一样     直接无法用     要么EXCEL 直接空白
8 z# F  F# t" H! z
# ^) b7 n7 ^, Z1 X: f
调试之前 注释掉 容错语句   on error resume next    ) K9 @; p+ t/ ^+ ~# k0 V7 f

8 z, F2 N8 l5 [2 Z3 s( n; E问题:! \' ?  W; Q% J8 [- @
          1.工程引用要改' p4 |3 Y- [" J3 l- X: m$ |! u9 _
8 n( a1 E3 Q% o$ z4 E4 _
          2.去掉 PtrSafe  (见图片 PtrSafe,对照楼主源代码)    ,不去掉的话 那段代码直接  亮红
0 W% ^' ^0 f# q) o  q) q1 u* @. n% k5 D; ^# X5 Y- _0 d  ~+ @
         3.类型声明符与声明对象不符,,改改改  在left 前加  VBA. (见图片 VBA)& ^# M. o0 r; y

0 L4 ^1 M$ }  n3 q" p1 L. |6 B3 e  l" N+ O0 C7 Q3 Y
结果:
" D  A$ \6 T1 ?7 h& {2 e. c* ~
9 }% b3 h8 h1 x- H% J" @       1. 缩略图的错误(见图片报错)没搞定     直接先屏蔽掉     去找资料或坛里高人指点! i6 x# S0 s3 ~3 N4 A
4 w4 C- q7 @7 Y4 |! \
       2.可以顺利生成不带图的bom(见图bom表) : T2 a- |9 z: }) {- c% P

+ g2 m% l0 ^3 a7 a) o- e; ]. y! `& [
# P% H/ Z' N% Z! T" Z* n9 F

+ ~0 c' s" C& e# j! @" K- ~  J8 P; Z

ptrsafe

ptrsafe

VBA

VBA

报错

报错

BOM表

BOM表
 楼主| 发表于 2017-8-3 17:45:51 | 显示全部楼层 来自: 中国陕西西安
ProeSky 发表于 2017-8-3 14:207 T- I, ]# {/ E& G5 P& @' x0 L
配置:: I# t) E: _1 j' ?
solidworks 2012   +  win7 64  +  32位office. n7 L9 m- I- N' W6 R% p8 r5 ?
宏拿过和与预想的一样     直接无法用     要么EXC ...
" |7 H2 e0 c- N) q* |* x
solidworks2017的VBA是6.0,solidworks2013以后为7.0,程序需要做一些调整
发表于 2017-8-3 20:11:08 | 显示全部楼层 来自: 中国湖北武汉
果如楼主所说2013以后版本上使用效果不错!
发表于 2017-8-4 08:09:02 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-5 14:59 编辑 ' e* K, N# x2 q- \$ N5 e0 J/ I
lhl2008 发表于 2017-8-3 17:45
/ d. f0 O4 g) j" N3 I9 zsolidworks2017的VBA是6.0,solidworks2013以后为7.0,程序需要做一些调整
3 K& `( [2 Y- }! F+ P
- O& [2 q; _' K7 @. U" U7 ~
: C# ~/ x- d' h3 A3 B
VBA确实不方便   3 ]- C9 Y4 N$ b$ C
发表于 2017-8-4 11:08:37 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-4 11:11 编辑
5 H' A3 T( j" ]1 w$ I
4 C8 f3 E% F  z2 f想知道 楼主   顺利提取出图片   是怎样的配置 ( J1 {" Q+ P: ^+ G+ |/ G* A
  E) K3 Q( f3 I* ~9 L! W  {9 v
问过别人  GetPreviewBitmap  好像64位用不了
: u2 X$ _* E! n& a' C  r8 s- {% U. h
要我用内存截图 法9 @" N: G4 O& M" C, ^- w% [4 k7 g
7 z/ w; `6 Q, W. d3 W9 i1 D' D

4 m( v5 G8 G6 Z+ Q2 ~* y& j; _9 Q/ _2 u2 T: i2 [
. V( {1 _3 h+ |+ t+ U) w
/ {8 W' E8 B: F" h
wen.jpg
发表于 2017-8-4 11:46:42 | 显示全部楼层 来自: 中国广东佛山
ProeSky 发表于 2017-8-4 11:08
2 M6 X; Z1 o6 J3 G# ]/ a想知道 楼主   顺利提取出图片   是怎样的配置
0 [4 |( ^; R! x
1 w( b9 G- M( t, B问过别人  GetPreviewBitmap  好像64位用不了

: y1 R4 Z. L$ n2 n* F5 I# b大大问的高人,应该不清楚COM为何物!
发表于 2017-8-4 12:53:00 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-4 13:20 编辑
3 I5 h; n) a# j
bash 发表于 2017-8-4 11:463 Q; E( I# P: E3 f$ \2 o: B6 K. x
大大问的高人,应该不清楚COM为何物!

" w. m' a! V  e5 g3 V! `/ ~* K- r. g) ?  s# x: i
都不是专业的   思路可能不同  不到不得已 不打算用他的方法  有难度     不过那种方法 图片效果不错
7 x+ r; p" G' {6 J. t
  F% F2 Y! B. i, p2 Z别卖关子了   有解决方法吗. t3 ~2 T: B! A/ u- T+ h

! U( y5 e+ Q/ X' C- o) z* s% D8 L/ D6 y1 U1 o; @7 a
发表于 2017-8-5 14:39:44 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-5 14:49 编辑 - F8 G  H3 n+ r

/ A$ w; [0 O3 h) E3 h% Q9 S+ f2 \曲线救国 选了一种取巧的方法 哈哈哈
. Y$ `) |9 [: U3 ~  j0 G6 D9 L, v+ ~
# U* {: g) w  q6 r) t* t7 t: F6 L, N4 E9 ~5 l4 i; v7 u3 h
吐槽一下  SWDM-API3 S6 L3 c* s1 S; N" [- Z) l0 c
1 T9 Q5 F$ \% ?5 ~5 u1 i' `% W
程序还要调一下 (以后再说头大)主要是图片显示大小问题
9 F/ |! R9 G; J! l5 J9 V5 r$ g( v
9 b% I4 q6 e" T1 _1 p, r! Q1 i+ |' q/ w  l% i* z2 S0 O

4 Z$ L* E6 W1 `7 L2 ^/ ?: O- ^2 g) `. ?. `1 a1 @
曲线救国.jpg
 楼主| 发表于 2017-8-5 18:26:26 | 显示全部楼层 来自: 中国陕西西安
ProeSky 发表于 2017-8-4 11:08/ Z9 s  r: V/ Z6 t& J5 j5 i+ ]- e$ J
想知道 楼主   顺利提取出图片   是怎样的配置
. o# }& h. a* C( S( k4 ^
; p3 @/ e( o, L问过别人  GetPreviewBitmap  好像64位用不了

7 R# @! _; g2 H) p- n" U' B在低版本中用GetPreviewBitmap提取图片没问题,我以前在SW2012用过,现在手头没有低版本,无法验证!
 楼主| 发表于 2017-8-5 22:27:24 | 显示全部楼层 来自: 中国陕西西安
打开装配体,批量输出零部件属性及缩略图
" e$ o- P' U2 R (也可称之为零部件明细表统计)
. u$ t& R7 L) M/ z: M
: [" j0 w) A. n) I: I; [$ z '说明: 该宏可以批量输出打开的装配体中所有零部件属性及缩略图到excel文件中
. U* z% a7 Y# Z4 b2 x$ r! t ''前提条件: 1.当前所打开的文档必须是装配体;1 D2 o/ M8 G! s( d1 N9 i! v
'
7 ?, t. a0 ^' }- k) E' V ''           2.运行该程序前要将装配体中的轻化零部件全部进行还原,否则对轻化的零部件不进行统计;
* ^1 r2 A9 q% M$ ]/ [ '2 Q3 ]1 n9 S2 G% M
''           3.每个零部件的文档属性中必须要包含要提取的属性名称
- V+ V/ F2 @8 }" f- q# D '7 e( I! J0 T4 s
'最后结果: 该宏将批量输出打开的solidworks装配体所有零部件中所包含的零部件质量,密度,数量,所属装配号+ g2 @; h: A( \7 M7 Q3 a
'
; {$ e* z6 r3 @% k+ Y/ \ '          以及自定义属性和配置属性及缩略图到excel文件中并存储到桌面上。9 {. N) S) J( X# v* n1 x
'
2 \7 H9 @% E/ d' J '特点:
4 c$ U! s2 P3 F, { '   1.该宏可同时输出零部件自定义属性以及配置属性5 O% S! J! O& T+ t/ M/ p+ N
': x# \2 c( o6 f( N- i, s
'   2.该宏可统计输出零部件总数量以及总重
0 ^- t: N% e$ [& @  u8 l' Y3 ~ '* f6 [* o: N- d' J5 D3 ^7 G  n/ U
'   3.该宏可统计输出零部件所属装配代号8 q( X9 j0 A; o2 U9 ]
'
1 H7 P( k# V; | '   4.该宏可输出所有零部件缩略图0 D7 i% {- v5 A( U) c% I4 Z" q
'
& R- q3 D8 {3 v$ s6 v! h '   5.对于封套,Bom排除零部件,既可以统计进去,也可排除
! Z: C" t; `$ J. }9 h/ v1 { '. o0 c7 w* e9 j! y
'作者:lhl,2017.08.055 n2 {) e1 A% i6 u
'
3 L0 |( s6 v; Z, b. I '版本:V1.0
* W. ~1 O! M: S/ _' Y5 A0 O- C
 楼主| 发表于 2017-8-5 22:28:01 | 显示全部楼层 来自: 中国陕西西安
2017-08-05_22-20-55.jpg
% G4 J  n3 ^  V/ K. J) i( V" u& i 2017-08-05_22-22-05.jpg 3 ~' N" m! G6 Z4 z8 b& V+ F; \
发表于 2017-8-6 08:49:36 | 显示全部楼层 来自: 中国香港
谢谢专家,提供如此强大工具,坛友们有福了。
0 O0 ?+ c# j5 I5 }: M; ]
! p1 X* e  u& t  Y之前俺都是利用Excel内建工具插入图片和调整尺寸,
( Z* g5 ]! \" F/ Q* k" t& S+ Y有了这工具就可以大大简化操作了,效率估计提高起码十倍。, l3 J+ ]9 K) X! \  F5 m: D# M

+ K$ k0 w6 N" A( ]  a- h: g) n因审美观因人而异,涂彩缩图未能兼顾每个人的口味,
) Z) j+ n5 y/ F. w3 V8 Z, T后来俺都是使用黑白(仅看的到模型边线)缩图来解决的。
/ `1 Q3 b4 H" K) W3 B% m& s看看可否加上黑白缩图(如附图)的功能?(可能俺太贪心了吧) 捕获.PNG
5 J2 K" G, r+ i
发表于 2017-8-6 09:46:58 | 显示全部楼层 来自: 中国广东肇庆

5 X6 G+ M, z5 clhl2008大师,这个是最新版本吗?
 楼主| 发表于 2017-8-6 09:54:15 | 显示全部楼层 来自: 中国陕西西安
谢谢鹿兄关注,生成线框缩略图是可以的,但这个不是SW文件中保存的,必须要另外保存成线框图片,这个应该不是难点。也许,鹿兄有更好的招法!7 B7 r4 E7 I" ?" D2 \5 Y, y
发表于 2017-8-6 11:19:42 | 显示全部楼层 来自: 中国浙江嘉兴
是否如55#所提供的信息 64位元 無法享用,
; [9 z: j/ t# X  R2 c. L/ c/ h( N2 F; M0 ~. F( y) O
而執行成功的都是 32位元 嗎?
 楼主| 发表于 2017-8-6 11:29:48 | 显示全部楼层 来自: 中国陕西西安
ryouss 发表于 2017-8-6 11:19
( P2 a& B2 I' ^; z  W是否如55#所提供的信息 64位元 無法享用,
0 E/ |- x, G5 M% ^! H1 y
! O$ j8 p/ C# q9 ]0 d- s& c而執行成功的都是 32位元 嗎?
5 ?+ i) v$ S9 Z  e$ \* X( S/ K# N
我的机子配置:' q: z& ?. y% ~7 e8 s' V% \
windows10,64位; O/ |" \) w9 u4 M. s
Solidworks2017" U  K2 S7 C6 x. J7 b
Excel2016
发表于 2017-8-6 11:37:30 | 显示全部楼层 来自: 中国浙江嘉兴
見鬼一直沒試出0 h" @* p9 P/ b+ I
/ @) U( {( y  C+ T
我是
! R: M$ M* ^5 p+ N* L  uwin7,64位元
$ |* Q# U- ~2 I  S$ _  r3 i4 gsolidworks2012,20174 i) _) B) Z. ]; a5 j. E6 T
Excel 2010
发表于 2017-8-6 12:15:17 | 显示全部楼层 来自: 中国浙江嘉兴
進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.8 |7 ~+ |4 y+ t6 v# L3 H) r
& Q2 w# y! N" v  v( B3 \. e1 Z
10.png
4 q. L. E7 h1 @) o4 T( u" G* c
 楼主| 发表于 2017-8-6 14:30:18 | 显示全部楼层 来自: 中国陕西西安
本帖最后由 lhl2008 于 2017-8-6 14:35 编辑
0 _  [/ y! q( R, S; ^
ryouss 发表于 2017-8-6 12:15
! U+ E! ~) |; k. f! P進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.
1 f( ^) v( [# e, F  W( W" a# y3 v( h
浏览文件夹的过程你可以另换一个试试
发表于 2017-8-6 14:59:02 | 显示全部楼层 来自: 中国浙江嘉兴
lhl2008 发表于 2017-8-6 14:30
3 N( W% _5 u6 }$ M* _浏览文件夹的过程你可以另换一个试试

/ K5 y3 K- A- l  [! I/ W改了沒用2 ~# s9 ?3 E- u# `  _2 x& e, W% W5 K
# |! s& x" {" w* Y: z7 F* Q! b+ ?
另請教如下是正確的嗎?+ O: e; m9 X! Z( e
* J5 m4 P* r0 S; D1 v& V
11.png , U/ X& v' }- V9 Z
  p' v. T1 K0 @# H$ c+ c  x# X
 楼主| 发表于 2017-8-6 21:46:40 | 显示全部楼层 来自: 中国陕西西安
大鹿 发表于 2017-8-6 08:49% Y/ E7 L, k& ^- L% S( i3 c6 I  a
谢谢专家,提供如此强大工具,坛友们有福了。% }$ ]  r6 Z' M$ H3 S
5 r4 I8 T. G* l+ k4 I3 B
之前俺都是利用Excel内建工具插入图片和调整尺寸,

: ^' Z: I* o' T4 u, D' a7 U做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进; W! Z, h. Z* D/ R' }3 [/ t
2017-08-06_21-38-09.jpg 2017-08-06_21-37-24.jpg
- w1 ?3 b6 x# G2 N# i5 E
发表于 2017-8-7 09:18:50 | 显示全部楼层 来自: 中国广东佛山
本帖最后由 bash 于 2017-8-7 09:42 编辑
! B' ^* u- V" _' B. R1 D
lhl2008 发表于 2017-8-6 21:46
2 D1 v/ m3 I# m+ d  y7 l% d做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进

; d$ G9 r) v& k" l# @4 q5 B( Q  n楼主在插入图片后,可以用' l8 D+ X- O2 c8 U
" Q/ G/ k" a. O; E
PictureFormat.ColorType = msoPictureBlackAndWhite
) T- v+ M2 `. G% G. W9 b+ @  F* C
( Y$ _; H. h! c; H试试( g9 C8 \; B7 v! d( M7 ?; V+ E
如果图片是SW里面直接保存出来的话,可以用PNG格式,并且,要求用户自己在SW设置里面打勾“移除背景”6 J/ h, r, Y8 S2 a

; r4 K+ m4 }+ J- M% K' m+ H2 L- u+ C1 S7 _/ r. z5 Y, D% r3 \
 楼主| 发表于 2017-8-7 11:45:29 | 显示全部楼层 来自: 中国陕西西安
bash 发表于 2017-8-7 09:18
% Q0 W6 R8 C" k8 R( N楼主在插入图片后,可以用
9 Y, h$ e) H* Q% Z$ I4 G7 L) m, e
( {* F! L3 K! }) `9 G, L9 UPictureFormat.ColorType = msoPictureBlackAndWhite
0 w$ B& p* g, U
谢谢bash兄指导,我试试!
发表于 2017-8-8 16:25:30 | 显示全部楼层 来自: 中国香港
惊见某论坛出现的动画2 _  _* Z& G6 N- g7 y" h
commentpreview.gif
发表于 2017-8-8 19:26:20 | 显示全部楼层 来自: 中国广东揭阳
SW2016 发表于 2017-7-29 16:28' m  F' E5 [' ^+ d
多谢分享!7 _. S- {% x' {/ ~+ t3 S
我在SW中点工具〉宏 〉运行,却没有反应,是Excel的版本不对吗?
7 }" c1 p& v7 W$ D) s
我也是这情况,希望能解决
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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