QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

[复制链接]
发表于 2017-8-3 14:20:00 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-3 15:00 编辑
+ m! J2 c! K2 i9 ~! e! w6 q  V. r0 K1 {' R. U( L
配置:
) @: e! B" v1 xsolidworks 2012   +  win7 64  +  32位office
. D, K. W# k: m宏拿过和与预想的一样     直接无法用     要么EXCEL 直接空白

; x3 x. N; y: X+ l" \
. [- d1 u: c. k$ s  l9 p. I调试之前 注释掉 容错语句   on error resume next    ) C7 n7 T9 N  m
/ Q0 l" z' a+ F6 X  _  Y' E; v; Z) c
问题:7 Z1 F  ]! F: {3 S0 [
          1.工程引用要改
/ m( |; X" D- [1 x" z# K
6 Z) G# `) J) p" B% F& r          2.去掉 PtrSafe  (见图片 PtrSafe,对照楼主源代码)    ,不去掉的话 那段代码直接  亮红
0 e  U5 C" T8 a- \" M4 \; j
% Q3 g# D0 ^; z3 O% i% S1 a4 u         3.类型声明符与声明对象不符,,改改改  在left 前加  VBA. (见图片 VBA)
1 I3 v) Y3 Y2 Y* B/ g  ~, G. a6 M# w/ ^0 N# Y) Q0 C- w: R( {
3 Q# z, t* l  r+ |  B$ z
结果:
; V% I5 y5 G( {/ g( z1 A9 m- f* _; z4 Y" E: E
       1. 缩略图的错误(见图片报错)没搞定     直接先屏蔽掉     去找资料或坛里高人指点0 T7 R4 Y8 z: D) a) _2 E

4 `) h: h8 e) {, p  C. U       2.可以顺利生成不带图的bom(见图bom表) 8 G) U; X  d. e" c) o
) C7 l5 _& o9 F6 M0 }

( N& L3 E, c; c+ Q
2 ~5 t4 d0 i. j5 \  s! c1 a$ R+ t+ q" P4 Q3 q8 ^5 K2 Q7 r

ptrsafe

ptrsafe

VBA

VBA

报错

报错

BOM表

BOM表
 楼主| 发表于 2017-8-3 17:45:51 | 显示全部楼层 来自: 中国陕西西安
ProeSky 发表于 2017-8-3 14:20: Z7 p" w4 S5 m) S1 P5 g* I  e
配置:
8 F4 q  _) d* [& D  P1 Lsolidworks 2012   +  win7 64  +  32位office3 N2 l+ j. [6 O/ k- k5 Q% ]
宏拿过和与预想的一样     直接无法用     要么EXC ...
6 X' V: G1 N7 }  H$ y" 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 编辑
( J7 b7 N& o8 ]' a; k
lhl2008 发表于 2017-8-3 17:45
! D" p+ W) s' z) qsolidworks2017的VBA是6.0,solidworks2013以后为7.0,程序需要做一些调整
* |3 m) f. D$ e9 N) n% W4 |7 D

+ F' G* X: }  ]+ x2 n8 d, k- S$ j
VBA确实不方便   
; m) b6 F) G( t1 i" I. O2 I6 B" Z; K
发表于 2017-8-4 11:08:37 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-4 11:11 编辑 9 d) W: j/ Q( Z: N; D! g; L5 U

; i" h, g  c5 t) B想知道 楼主   顺利提取出图片   是怎样的配置
0 d0 z7 z; r) v; a  o
; P# f- N& f' B5 I问过别人  GetPreviewBitmap  好像64位用不了
0 Y( b2 g" h0 R4 E  {
6 u0 `; P# f# x  A' j; B6 @要我用内存截图 法
! }4 ?) p; J' G. z
7 x0 r% q. q2 p. H) g, `+ h  t* \: V) `5 z( U5 M( E  i
7 @5 Y/ E, j8 U: `+ p( k! c

8 ?! P: I3 }% C) ?0 U
& F  k3 g6 L0 K2 C1 W1 X2 T7 m. J
wen.jpg
发表于 2017-8-4 11:46:42 | 显示全部楼层 来自: 中国广东佛山
ProeSky 发表于 2017-8-4 11:089 V* \" [  X  b9 B
想知道 楼主   顺利提取出图片   是怎样的配置
3 |0 N  n9 v0 |: C) T; B, a; X' v7 R1 |- J! n5 ]; c
问过别人  GetPreviewBitmap  好像64位用不了
) c" S1 L; @) A% e4 R7 M
大大问的高人,应该不清楚COM为何物!
发表于 2017-8-4 12:53:00 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-4 13:20 编辑
' J; O5 L" V/ G3 R6 v
bash 发表于 2017-8-4 11:46
* @2 j  Y8 V: h大大问的高人,应该不清楚COM为何物!

2 N/ D7 d9 `/ X, U& D
0 u# q! s# T' ~( M  q, N3 d8 a# {# }都不是专业的   思路可能不同  不到不得已 不打算用他的方法  有难度     不过那种方法 图片效果不错9 A$ F; U3 R9 o9 t' t' l
. [: M7 U/ V, B) A, c+ E
别卖关子了   有解决方法吗+ a9 q# p$ }) a
; T4 V  e! c9 F( b# D3 b2 R. u

/ s2 z% J4 `# w5 c* Q
发表于 2017-8-5 14:39:44 | 显示全部楼层 来自: 中国江苏
本帖最后由 ProeSky 于 2017-8-5 14:49 编辑 6 ]+ Q% C# r' k
. n/ S; E% ]# r) _/ c& X" ]
曲线救国 选了一种取巧的方法 哈哈哈
6 u- l+ d# A) ~& z* e6 C: J
% o9 n, B. q  ^6 K; k4 f! u+ i( G+ U* U# u1 `+ W0 Q! V7 ]
吐槽一下  SWDM-API& x( |. o( d! ]6 ?3 C4 \

4 {. x4 |: i* m( {程序还要调一下 (以后再说头大)主要是图片显示大小问题
. A! @; W4 G  U1 W1 p' r' w0 K) ?% N2 m/ U, v" x9 B$ f0 ?. y8 B$ G. O
+ o, |. x1 b7 M$ F9 Q2 w+ @! P  j

2 L: N) l& `6 i" w( S" U. _" q- @) f7 K
曲线救国.jpg
 楼主| 发表于 2017-8-5 18:26:26 | 显示全部楼层 来自: 中国陕西西安
ProeSky 发表于 2017-8-4 11:08# v/ n4 Y7 ~* |4 f8 h( s9 s! o; U
想知道 楼主   顺利提取出图片   是怎样的配置
' U! u9 b2 X$ n" C& B- U& @2 m. y2 C/ o" ?, S8 U5 m  B3 j3 r
问过别人  GetPreviewBitmap  好像64位用不了
0 D- Z7 Y2 e' p% M/ q4 D& [3 G2 z6 Y
在低版本中用GetPreviewBitmap提取图片没问题,我以前在SW2012用过,现在手头没有低版本,无法验证!
 楼主| 发表于 2017-8-5 22:27:24 | 显示全部楼层 来自: 中国陕西西安
打开装配体,批量输出零部件属性及缩略图5 t+ F! `' E$ Z/ ?, s  j7 L) I
(也可称之为零部件明细表统计)5 M: `( B! W/ y; N7 n! B

# `+ J9 ]4 n5 }( E '说明: 该宏可以批量输出打开的装配体中所有零部件属性及缩略图到excel文件中
5 \: V& o6 b' T- A4 B5 U ''前提条件: 1.当前所打开的文档必须是装配体;, H/ Q. I2 u2 x$ }+ S' z
'
+ q" E2 K2 _& y4 A4 ]2 f5 ]1 G6 z ''           2.运行该程序前要将装配体中的轻化零部件全部进行还原,否则对轻化的零部件不进行统计;
9 P6 ~( C6 [2 F8 d& d1 Q; M1 {2 Y '+ }) x, V/ ^; c
''           3.每个零部件的文档属性中必须要包含要提取的属性名称
5 w2 N4 J2 S0 x; S. M1 a" j '+ T9 i6 X' P7 e5 p* H' F
'最后结果: 该宏将批量输出打开的solidworks装配体所有零部件中所包含的零部件质量,密度,数量,所属装配号
' I9 a$ ]4 @) t2 f" H# C: p  [ '( P5 K% d; _  U& t( Q5 L
'          以及自定义属性和配置属性及缩略图到excel文件中并存储到桌面上。! B( y1 r- z5 \  q2 N* `) G( E
'" w/ j0 |0 G6 P+ T* `
'特点:2 U- j# q+ C2 r5 z- z! d# s+ L
'   1.该宏可同时输出零部件自定义属性以及配置属性4 s: v% P/ D# S0 {
'. g$ i5 s/ v2 S% m
'   2.该宏可统计输出零部件总数量以及总重
* ^) u- L' M* k0 \0 E '
% `4 g' M) ?( H' O4 Q8 t' @ '   3.该宏可统计输出零部件所属装配代号
7 E! {! k, F1 ]& |( P$ _3 U '
! G9 l1 }  ]! U, q1 q6 c5 P4 S8 B5 U '   4.该宏可输出所有零部件缩略图4 D4 f+ r& p* f) [
'8 N, `9 D5 E, Z
'   5.对于封套,Bom排除零部件,既可以统计进去,也可排除$ e2 u2 N4 w2 ~2 g
'
- w" ^* p+ R- l( X  v, q '作者:lhl,2017.08.05
  L) t$ v2 U# h" A7 O3 ~- | ': {0 ?$ M/ Q- j8 S
'版本:V1.0* L% J0 a* C/ c# T6 J
 楼主| 发表于 2017-8-5 22:28:01 | 显示全部楼层 来自: 中国陕西西安
2017-08-05_22-20-55.jpg
9 o4 a# y  d% ?! a7 j 2017-08-05_22-22-05.jpg
/ ]8 r- q( v7 @  y5 `3 \) k' I5 b8 g
发表于 2017-8-6 08:49:36 | 显示全部楼层 来自: 中国香港
谢谢专家,提供如此强大工具,坛友们有福了。: g; [0 b; O$ R2 D
% G, w8 L4 [6 F/ K$ |# c9 R
之前俺都是利用Excel内建工具插入图片和调整尺寸,# M9 k. W" O9 Q% o4 {( L- b, o) l) F
有了这工具就可以大大简化操作了,效率估计提高起码十倍。1 d2 W# P/ e6 p2 c9 N$ t1 y

# m0 _/ A. v" ^, {因审美观因人而异,涂彩缩图未能兼顾每个人的口味,
. D. Z/ u/ K2 v' J$ C' \4 [1 r1 [4 \后来俺都是使用黑白(仅看的到模型边线)缩图来解决的。
% e% Z. {' V. Q+ s$ m4 ~看看可否加上黑白缩图(如附图)的功能?(可能俺太贪心了吧) 捕获.PNG
# q# i5 z( n; t( E0 l$ z/ B
发表于 2017-8-6 09:46:58 | 显示全部楼层 来自: 中国广东肇庆

% Y# c5 g/ z3 H# |! J' Nlhl2008大师,这个是最新版本吗?
 楼主| 发表于 2017-8-6 09:54:15 | 显示全部楼层 来自: 中国陕西西安
谢谢鹿兄关注,生成线框缩略图是可以的,但这个不是SW文件中保存的,必须要另外保存成线框图片,这个应该不是难点。也许,鹿兄有更好的招法!
9 @3 v  V4 w0 \/ f# x8 M
发表于 2017-8-6 11:19:42 | 显示全部楼层 来自: 中国浙江嘉兴
是否如55#所提供的信息 64位元 無法享用,
1 @8 E# I  s) g4 W
) K! c- r* \. S3 g6 s! Q8 |) F而執行成功的都是 32位元 嗎?
 楼主| 发表于 2017-8-6 11:29:48 | 显示全部楼层 来自: 中国陕西西安
ryouss 发表于 2017-8-6 11:19
* h5 w, N4 y. |7 p. p1 [是否如55#所提供的信息 64位元 無法享用,/ \2 ]8 y, k$ m5 C/ i8 J, _$ d
/ ?8 e3 }3 {7 \, Q. H$ j
而執行成功的都是 32位元 嗎?

. O! H5 \% S; b# }. D5 @- f" c我的机子配置:
; ]2 E3 E# U% R) p5 J1 u- ^windows10,64位
% r' G& [: q% i5 \" F$ D+ b1 rSolidworks2017
6 m* a; w4 M, B7 `/ d; J9 I' WExcel2016
发表于 2017-8-6 11:37:30 | 显示全部楼层 来自: 中国浙江嘉兴
見鬼一直沒試出
5 Q7 _+ G/ ^7 D1 Z  U
; I" F9 _+ X% d5 S) Y# }0 r我是
; x" G8 h1 T6 D7 ~win7,64位元0 |7 }% A( g& f: b
solidworks2012,2017
! p2 c; N( _( s( x# e2 C6 M% [Excel 2010
发表于 2017-8-6 12:15:17 | 显示全部楼层 来自: 中国浙江嘉兴
進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.
* ^4 E- y& M: G5 d6 r6 _7 v8 ~' Y0 x
10.png 2 W2 ?' @! n- ]4 G. D% q* k
 楼主| 发表于 2017-8-6 14:30:18 | 显示全部楼层 来自: 中国陕西西安
本帖最后由 lhl2008 于 2017-8-6 14:35 编辑
# z5 X0 r! e; N4 V9 U0 A! R
ryouss 发表于 2017-8-6 12:15$ U! s2 z% o3 t4 i( O, L- X
進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.

/ a! u" q$ q0 l8 j- E( g2 `( x* D' f5 a% P浏览文件夹的过程你可以另换一个试试
发表于 2017-8-6 14:59:02 | 显示全部楼层 来自: 中国浙江嘉兴
lhl2008 发表于 2017-8-6 14:30; j! L1 a  F, }/ V6 U1 D
浏览文件夹的过程你可以另换一个试试
! J1 Y: Y& m. S/ F
改了沒用
$ T, q+ g8 ?2 m) J9 Q% N( {3 G3 T
0 J$ ?* }! f. G4 x另請教如下是正確的嗎?
! S9 @& s9 t" ^1 d  ^: ?
7 D0 k+ u. [" t; r  O4 c0 a6 L 11.png
" R0 T# B% x" a6 `) v. y
  u9 O- g; f# v, l# L! e
 楼主| 发表于 2017-8-6 21:46:40 | 显示全部楼层 来自: 中国陕西西安
大鹿 发表于 2017-8-6 08:49; W/ q  k/ h$ q8 [
谢谢专家,提供如此强大工具,坛友们有福了。
+ E" L% G" y$ k7 u; c; i* o6 _
2 e" n5 m" |7 Z之前俺都是利用Excel内建工具插入图片和调整尺寸,

: f7 Q- F6 a0 W0 h0 ~- y* A# G做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进) P) [/ t, }0 O$ R9 ]1 a
2017-08-06_21-38-09.jpg 2017-08-06_21-37-24.jpg ( ~" g) n. F8 k/ O$ b
发表于 2017-8-7 09:18:50 | 显示全部楼层 来自: 中国广东佛山
本帖最后由 bash 于 2017-8-7 09:42 编辑
/ ~9 A9 e; y' `- ~7 w, l# S; C
lhl2008 发表于 2017-8-6 21:46
) _6 Q, \2 s- ~做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进
, n* U) P3 [% V1 O/ q1 b/ s
楼主在插入图片后,可以用
* `0 _6 a2 @3 Z. y8 M4 }
5 m) D$ G* T9 {; W+ }$ e9 dPictureFormat.ColorType = msoPictureBlackAndWhite/ P) Z1 |# S2 U9 c$ B- a% I& A

( I$ e8 S9 y- [试试( }0 Y- v3 t* Q! D
如果图片是SW里面直接保存出来的话,可以用PNG格式,并且,要求用户自己在SW设置里面打勾“移除背景”, h1 N6 M& _5 ]5 h& Q; }
2 ~' \. R. S3 Z5 W% d
1 |( ?+ K6 n( j, y* M; L$ o) ^) x
 楼主| 发表于 2017-8-7 11:45:29 | 显示全部楼层 来自: 中国陕西西安
bash 发表于 2017-8-7 09:18
3 B8 |0 `, L! N7 `* e楼主在插入图片后,可以用
5 ?5 s* x; d- E! c/ O+ B" L
3 t, O$ A- w, @* s9 GPictureFormat.ColorType = msoPictureBlackAndWhite

  B  ]" t: p2 M9 D谢谢bash兄指导,我试试!
发表于 2017-8-8 16:25:30 | 显示全部楼层 来自: 中国香港
惊见某论坛出现的动画: i8 e/ d5 y/ C/ F* _
commentpreview.gif
发表于 2017-8-8 19:26:20 | 显示全部楼层 来自: 中国广东揭阳
SW2016 发表于 2017-7-29 16:28  C; B0 m5 v/ B' f& g
多谢分享!" H1 Q9 w: H$ b. R; Q$ {2 l
我在SW中点工具〉宏 〉运行,却没有反应,是Excel的版本不对吗?

; ?: ~: s. @7 {, M+ E8 W! s% l6 c我也是这情况,希望能解决
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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