QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
楼主: lhl2008
收起左侧

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

[复制链接]
发表于 2017-8-3 14:20:00 | 显示全部楼层
本帖最后由 ProeSky 于 2017-8-3 15:00 编辑 & k2 ?* f5 O' ]6 P+ Q0 M) _' l
0 f# e# _: v* H) Q& Q2 S$ `
配置:
9 C% I8 ?9 E$ F; e3 d3 jsolidworks 2012   +  win7 64  +  32位office
" D5 b2 f! v5 T& ^3 s# c宏拿过和与预想的一样     直接无法用     要么EXCEL 直接空白

* T) Z0 g- |$ I; V
" k- n, |* B* F调试之前 注释掉 容错语句   on error resume next   
8 m) z; G; F+ v2 o2 t- c
* Z* M( M$ b' q" b+ N7 j$ q问题:
4 b2 P/ U& E% g' [- g          1.工程引用要改  R# f# D9 i2 s" P+ `, h$ X
( }6 K1 Z; J5 M) p
          2.去掉 PtrSafe  (见图片 PtrSafe,对照楼主源代码)    ,不去掉的话 那段代码直接  亮红# K  G" h6 }4 Q/ O

7 v5 x2 Y1 c2 c, Z4 H' s         3.类型声明符与声明对象不符,,改改改  在left 前加  VBA. (见图片 VBA)
8 v/ a/ E$ L/ `- ?! s& E
, @" N/ F2 T$ z( A1 _; @. V; A, ?% g2 c6 z- W6 F9 }( y
结果:
7 j! @: s; |6 G# Z7 @7 K0 A, J8 T, }8 A+ M
       1. 缩略图的错误(见图片报错)没搞定     直接先屏蔽掉     去找资料或坛里高人指点
. m7 I/ z/ J8 ^
- S$ S) T3 p7 I- r8 y       2.可以顺利生成不带图的bom(见图bom表) 9 N; Y, M6 i8 Z  `8 W
3 d" j" i( T1 J8 ?7 x6 V5 Y
' s4 h6 |* S, w3 {
8 F! J$ v& Z/ ~) r
9 X1 L* i$ j9 a  @, l# |

ptrsafe

ptrsafe

VBA

VBA

报错

报错

BOM表

BOM表
 楼主| 发表于 2017-8-3 17:45:51 | 显示全部楼层
ProeSky 发表于 2017-8-3 14:20
2 F5 Z. A; l% D8 y' ?配置:* V0 \6 k! ?5 x' w/ K1 o& o$ r0 }
solidworks 2012   +  win7 64  +  32位office  @3 H- M, c% A$ l
宏拿过和与预想的一样     直接无法用     要么EXC ...
' ?% v/ G  S* \* B0 |) J- W
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 编辑 % D) M1 k% P' c, b) B2 u9 o
lhl2008 发表于 2017-8-3 17:45
* R1 u! G' I) i+ H5 g2 H8 Asolidworks2017的VBA是6.0,solidworks2013以后为7.0,程序需要做一些调整

+ }; l* v: c; O3 h" U- V7 i
5 j3 B) `3 F' O2 X' B8 u2 Y+ g
/ C( G& X8 a  B; r4 xVBA确实不方便     J5 T8 f. _; b: |  W
发表于 2017-8-4 11:08:37 | 显示全部楼层
本帖最后由 ProeSky 于 2017-8-4 11:11 编辑 $ m! R! m8 d6 E( f: r$ J2 z

( F: A+ ~, `2 J/ `想知道 楼主   顺利提取出图片   是怎样的配置
; |6 a$ V" V2 m4 p) {! R$ M# p' J1 L6 g
问过别人  GetPreviewBitmap  好像64位用不了   L- g/ C6 u! ?# V1 P6 M) ?6 ^
3 U0 ~2 W0 I9 h3 x* X1 @( G
要我用内存截图 法
  Y/ s$ m! q3 y! c$ |" C0 }
& j5 A& p. Z. c3 w" u
- z# M9 ~3 e7 i5 G1 L% g8 i5 l% U0 m
% e/ K' H7 U9 W" N
0 y5 \  b% Q/ Y  d. A' t4 N/ |1 g3 [
wen.jpg
发表于 2017-8-4 11:46:42 | 显示全部楼层
ProeSky 发表于 2017-8-4 11:08
8 H: C5 S( B/ F- ~; M' A想知道 楼主   顺利提取出图片   是怎样的配置
' b+ C+ k( ?* E- v- |5 h0 o; b/ \$ e) _8 A& u2 m- D  F6 E
问过别人  GetPreviewBitmap  好像64位用不了

7 G' H+ s1 H" O大大问的高人,应该不清楚COM为何物!
发表于 2017-8-4 12:53:00 | 显示全部楼层
本帖最后由 ProeSky 于 2017-8-4 13:20 编辑
* ?( D4 N$ w) M) o: H
bash 发表于 2017-8-4 11:46
3 A% `% C7 V# u7 u# Z. F: F$ X大大问的高人,应该不清楚COM为何物!

* o1 J" N! J9 |
% J9 h3 v- ?1 W4 z9 n& `; S都不是专业的   思路可能不同  不到不得已 不打算用他的方法  有难度     不过那种方法 图片效果不错
! A: E; M* V5 ^' G# f# t0 f
% w  \9 R: p) Q7 d) l别卖关子了   有解决方法吗
* v' b/ }) S5 z& X
  U1 E4 D( [" h& C2 A: o! @6 }% ]6 e6 ^, o7 `* E) d- O) W0 m
发表于 2017-8-5 14:39:44 | 显示全部楼层
本帖最后由 ProeSky 于 2017-8-5 14:49 编辑 0 H+ b" m. [/ {* N

2 R6 V5 x  K9 _+ J曲线救国 选了一种取巧的方法 哈哈哈 , W: @! ]! u% g) u" m

; |& g! I+ \4 b* @3 ]! W8 m" J5 P' l' ~, X& j. z: @) N7 X0 p8 b) E
吐槽一下  SWDM-API
2 b% X- P6 k7 }9 P

6 C9 |9 g5 K! ~程序还要调一下 (以后再说头大)主要是图片显示大小问题; Y) J3 `- y  [9 ^: _: _$ E
/ K* I2 Y6 c3 x7 A
# C# T7 |8 Q5 {7 }
! Y4 G9 z; n* J7 K* K/ y8 e
' E5 e! L- O* A1 Y7 C8 }' k
曲线救国.jpg
 楼主| 发表于 2017-8-5 18:26:26 | 显示全部楼层
ProeSky 发表于 2017-8-4 11:08: h5 T; J$ }% U/ k4 r
想知道 楼主   顺利提取出图片   是怎样的配置
& F! X! {, B& U3 V3 J4 Y+ {, y! w  I) M* O8 ^0 t
问过别人  GetPreviewBitmap  好像64位用不了
+ j# l; t' M" b" h* Q& f- `
在低版本中用GetPreviewBitmap提取图片没问题,我以前在SW2012用过,现在手头没有低版本,无法验证!
 楼主| 发表于 2017-8-5 22:27:24 | 显示全部楼层
打开装配体,批量输出零部件属性及缩略图+ U. L. H4 s8 V7 a/ y, K1 K
(也可称之为零部件明细表统计)
  I6 ]" v* Z, a, j" V$ b. G/ A& z% b" m- x) Y* @: l! Q
'说明: 该宏可以批量输出打开的装配体中所有零部件属性及缩略图到excel文件中
7 _; V1 D8 U( p ''前提条件: 1.当前所打开的文档必须是装配体;
2 }, q! U: j0 }1 [" O+ X' N '
0 R& F0 J6 p( i) F2 \ ''           2.运行该程序前要将装配体中的轻化零部件全部进行还原,否则对轻化的零部件不进行统计;* A) c4 F, V$ g3 w) n& I  n9 t
'
! B/ Z9 L* Q4 C: Z2 I' p6 u ''           3.每个零部件的文档属性中必须要包含要提取的属性名称
1 D' l" }+ u: e9 R '
, x) I( e* J6 q '最后结果: 该宏将批量输出打开的solidworks装配体所有零部件中所包含的零部件质量,密度,数量,所属装配号
0 _3 }; J  v8 Y* K '
. s; J, x3 T1 w3 I6 \) V '          以及自定义属性和配置属性及缩略图到excel文件中并存储到桌面上。
" C8 Z  W  Q0 s6 Z0 e1 M '+ i4 Z- D( ]7 J
'特点:7 ^) l- c8 }7 C- l4 a8 j
'   1.该宏可同时输出零部件自定义属性以及配置属性
1 V# `% q; f# `( G% p" q$ H+ f$ a '
! `2 R8 g8 F+ k3 F '   2.该宏可统计输出零部件总数量以及总重' U& j) q7 C' h$ F  u
'
7 w4 c: L* D6 V. ^5 l1 }3 C '   3.该宏可统计输出零部件所属装配代号
5 Q9 u: O4 \% p* A '
) Y  `( k, H' B' e; ~" O '   4.该宏可输出所有零部件缩略图
7 `$ w" o' ~" y; r  z '! Y$ l: g0 e' E2 h  i
'   5.对于封套,Bom排除零部件,既可以统计进去,也可排除
: E( D, m* E! [7 b6 [1 k '
$ j  R* O3 S) d% S2 y '作者:lhl,2017.08.05. J) e- w' Z- a, O
'
5 R6 f0 C; T6 {8 T% n '版本:V1.04 E2 e0 s" L; T$ A+ W2 A/ ~
 楼主| 发表于 2017-8-5 22:28:01 | 显示全部楼层
2017-08-05_22-20-55.jpg ( k3 u( }# u9 R/ _* m3 k
2017-08-05_22-22-05.jpg
4 d. A3 b; t$ b/ z* O. r# g; Y
发表于 2017-8-6 08:49:36 | 显示全部楼层
谢谢专家,提供如此强大工具,坛友们有福了。
9 r0 ~) i. C% w1 d9 y: u3 j
3 ~8 B5 L6 \) G6 R1 c- S1 C之前俺都是利用Excel内建工具插入图片和调整尺寸,: @9 k7 c0 l% E7 }: I! p/ R
有了这工具就可以大大简化操作了,效率估计提高起码十倍。1 h, Z4 D  d% ^8 R3 H) Z- g+ E
! G7 _& ?4 U7 N$ ]- C" D9 ~: T
因审美观因人而异,涂彩缩图未能兼顾每个人的口味,
- [  w" x; a+ N* s后来俺都是使用黑白(仅看的到模型边线)缩图来解决的。' X; r/ F  N0 q
看看可否加上黑白缩图(如附图)的功能?(可能俺太贪心了吧) 捕获.PNG
% V& l6 _$ n! Q% d  L
发表于 2017-8-6 09:46:58 | 显示全部楼层
* P, V: M) T7 r' [. b
lhl2008大师,这个是最新版本吗?
 楼主| 发表于 2017-8-6 09:54:15 | 显示全部楼层
谢谢鹿兄关注,生成线框缩略图是可以的,但这个不是SW文件中保存的,必须要另外保存成线框图片,这个应该不是难点。也许,鹿兄有更好的招法!
; m( W1 |# O1 M6 Y. L
发表于 2017-8-6 11:19:42 | 显示全部楼层
是否如55#所提供的信息 64位元 無法享用,5 n/ o% @6 @3 |5 T5 w

& B; T- L( r3 W5 r0 R, h5 V而執行成功的都是 32位元 嗎?
 楼主| 发表于 2017-8-6 11:29:48 | 显示全部楼层
ryouss 发表于 2017-8-6 11:19& R8 A- L% \" E
是否如55#所提供的信息 64位元 無法享用,
& b3 W% y+ _' \8 @* i6 n& P4 V* H0 S; C3 d% L$ e: `
而執行成功的都是 32位元 嗎?
( M! _2 Z5 z5 {- V! p$ `
我的机子配置:
0 t7 x5 A+ I, d9 }  P2 Bwindows10,64位
+ B$ q7 V# g- I) w3 [* W+ CSolidworks2017
( e, R8 u! a8 J( l4 vExcel2016
发表于 2017-8-6 11:37:30 | 显示全部楼层
見鬼一直沒試出: ~" C. f4 v5 c5 o) O

! k- v* l6 `/ F我是* @% Q# e; P1 p# k
win7,64位元# ?" d" f) L4 A% D0 ^- M
solidworks2012,2017* g9 s4 }9 _/ h
Excel 2010
发表于 2017-8-6 12:15:17 | 显示全部楼层
進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.& p' m% O2 ~8 D$ G$ l1 J, n
7 _. x" x  J5 T' `/ Z
10.png
5 C6 _- c  j+ }: N' w8 t( t" [
 楼主| 发表于 2017-8-6 14:30:18 | 显示全部楼层
本帖最后由 lhl2008 于 2017-8-6 14:35 编辑
. {1 _1 }7 U% R
ryouss 发表于 2017-8-6 12:152 u9 p0 q, e; @  B
進入 main 用逐步執行的話,如附图所示然後就自動關掉SW了.
" G, X) s9 }& O. o; ]: f
浏览文件夹的过程你可以另换一个试试
发表于 2017-8-6 14:59:02 | 显示全部楼层
lhl2008 发表于 2017-8-6 14:30/ }8 b9 L, w0 C) k; J
浏览文件夹的过程你可以另换一个试试
" s) e+ S* s2 G- T6 E
改了沒用
- l% L; t; Y$ s2 M+ F4 ^
4 a- h+ Q; S2 L! v4 a/ S3 h另請教如下是正確的嗎?
! z5 n$ z5 [; t; _, K" A$ s2 U" K: I$ Y
11.png * |* ~+ X" C2 W! G  n8 A
: E; D0 k" ?: c' ^  k* U
 楼主| 发表于 2017-8-6 21:46:40 | 显示全部楼层
大鹿 发表于 2017-8-6 08:49
5 ~% f) _* W9 f谢谢专家,提供如此强大工具,坛友们有福了。$ R  {6 b  r" ]9 O5 d6 X6 l3 L0 q6 [

* ^# N) V  O4 i" b之前俺都是利用Excel内建工具插入图片和调整尺寸,
# F3 X) `7 E/ M& y
做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进
4 e; U3 [. N( o- c+ A! ~ 2017-08-06_21-38-09.jpg 2017-08-06_21-37-24.jpg
9 n. X9 k( G, a/ f; n' |+ ~
发表于 2017-8-7 09:18:50 | 显示全部楼层
本帖最后由 bash 于 2017-8-7 09:42 编辑 $ |. I% W5 r0 Z' N+ @' @9 @
lhl2008 发表于 2017-8-6 21:46
3 ]. d7 |: \. `9 l; e做出了与鹿兄一样的线框缩略图,效果还不太好,还需改进
, {1 Z% {* d; h/ @
楼主在插入图片后,可以用
3 j$ S, X$ \8 I; j& }3 m
0 @: ?( |) R( N, P/ T* `PictureFormat.ColorType = msoPictureBlackAndWhite9 w+ y* n' X) l5 `

2 p" X! {( z5 a4 R: E8 g+ y5 J  E试试! P5 q3 b- g$ P
如果图片是SW里面直接保存出来的话,可以用PNG格式,并且,要求用户自己在SW设置里面打勾“移除背景”, o; c% T  H( }& o, S1 b: }

+ K! k: i/ X+ n" {  h* H* F. n3 X2 i2 N9 o0 G
 楼主| 发表于 2017-8-7 11:45:29 | 显示全部楼层
bash 发表于 2017-8-7 09:18
3 ]9 V/ J; H: c: i2 L7 w' e楼主在插入图片后,可以用6 s, Y$ x% t1 ?" _! `  |

  G, y9 n% e  L7 G4 nPictureFormat.ColorType = msoPictureBlackAndWhite

: N; G! |0 J% M4 l谢谢bash兄指导,我试试!
发表于 2017-8-8 16:25:30 | 显示全部楼层
惊见某论坛出现的动画6 i3 G: f0 E1 k6 @+ M" ?1 O) f
commentpreview.gif
发表于 2017-8-8 19:26:20 | 显示全部楼层
SW2016 发表于 2017-7-29 16:28( ~. g7 ?  C" V) k" C
多谢分享!
! `! r0 n1 W. K7 N我在SW中点工具〉宏 〉运行,却没有反应,是Excel的版本不对吗?

  c( G2 o- }( O: U1 x, d- n我也是这情况,希望能解决
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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