QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
8天前
查看: 1771|回复: 3
收起左侧

[求助] DIY solidwork 计算一次抽壳腔体容积宏,哪位出一份力

[复制链接]
发表于 2015-3-16 10:07:09 | 显示全部楼层 |阅读模式 来自: 中国江苏南通

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 ProeSky 于 2015-3-16 14:44 编辑
4 Y* e9 \3 b. N1 S
) R0 }- Q6 l4 {  B0 ZSolidwork里  要得出一个抽壳后零件 内部容积不能直接得出    只能用间接法9 T' v" V3 A1 \) ?- r" v  M% @
# G1 H" h4 k; O% ~6 M9 B  I
先工具-质量属性 得出实体体积    然后同样此法得到抽壳后壳子体积   相减得到抽壳后零件内部容积& d1 ^: L* r' o! K$ j8 r
( \: z" |4 Z2 v8 \3 J
想做一个简单宏   直接得出抽壳后内部容积  以后搞成插件 主要是练练这方面 举一反三也许日后可以用来简化工作量
" b" B; ?* u: M2 E# I( G0 o; n3 M3 a6 g. `+ y
程序框架我也列好,具体细节要查资料,论坛哪位师傅有经验的 能帮我完善一下 或提点意见 " {; `6 [4 L; U$ Z
0 b6 s( ?2 L6 V- F: K9 F
我用的是solidwork 2011  部分代码是录制宏后 抠出来的# B( c9 v, T8 P7 o3 s6 v
7 y) u' O$ U' b4 ]: m
  1. Dim swApp As Object. l. f1 c) G( K# W
  2. Dim Part As Object# L9 A6 \1 t: q% P6 x/ }' L
  3. Dim boolstatus As Boolean
    $ y2 C0 N3 ^4 n" O8 {8 k
  4. Dim longstatus As Long, longwarnings As Long
    ! V0 C5 W9 W; v6 G

  5. . q( W, V  W8 r# t( T" G
  6. Sub main(): Y# |: x# L+ ^' \+ s/ w. f

  7. " B: C" Z% e- z1 M
  8. Set swApp = Application.SldWorks& `/ H1 I! ^1 ]9 {, |8 l8 {

  9. 8 R2 `+ S* X- m5 l2 u2 ^5 ]
  10. Set Part = swApp.ActiveDoc
    # v, B: ]6 Q* W+ t0 r5 |
  11.   B! P2 z$ H* m4 L" n8 j

  12. $ J0 k$ O9 X; }3 q  S1 ^
  13. Part.ToolsMassProps                    '得到当前壳体质量属性
    % K& k- R8 C+ u

  14. 7 w/ A4 O' [& A

  15. 2 Q& h: l& H' `. @+ `' K
  16. A代码                                          '提取质量属性里体积信息给变量 KL?! a% H5 E' [  q+ Z/ F. M3 V

  17. 2 j* b4 O  G. D2 l; l. w
  18. B代码                                          '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)6 X; o0 u; P! _
  19. % N! Q6 w& Z+ x" p% z- f

  20. % w) ^# L9 W0 Z6 S* B4 y
  21. boolstatus = Part.Extension.SelectByID2("抽壳9", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)    '遍历设计树,选到抽壳ID?此处假设为抽壳9
    3 C, |  I" C) A3 T! w" H% m% h

  22. ! u: x8 t# `9 Q) r
  23. Part.EditDelete                              '删除壳
    5 l8 A" @( \) o

  24. 4 T8 l4 S! W- u& {0 E) w3 k
  25. Part.ToolsMassProps                      '得到当前去壳后实体质量属性
    . }! x7 W1 b2 W8 I; z
  26. ; m4 Z4 C* y& A( Y$ G
  27. A代码                                            '提取质量属性里体积信息给变量 SL?
    8 U  z; y7 @- r5 u$ F7 O/ _

  28. ; w9 U& m$ k# g4 a5 v
  29. B代码                                            '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)  Z+ n+ A' L* ~7 n
  30. . J' @: Y$ {) o; e' D, W

  31. " n2 {2 F( V# G- l( ]- ~! b
  32. Part.EditUndo2 1                            '撤销删除壳操作,还原壳
    * u2 k+ e7 t2 K- x
  33. 6 @6 R" z7 b! ]
  34. QL = SL - KL                                  '计算腔体容积  ,messagebox显示出来
    % b/ k8 a$ `2 N$ ^0 _  P, G! `
  35. $ E  R4 G- v& ^, I9 C  L* Q0 i

  36. . U1 N( c" X$ Y) ^$ p8 O) b4 w
  37. End Sub$ X  ~" A1 P5 p- F: T
复制代码
www.jpg
 楼主| 发表于 2015-3-16 14:42:59 | 显示全部楼层 来自: 中国江苏南通
其他的问题都已解决 调试通过
* K1 o# I. R! f6 W6 v
& y$ g, Q/ |( g( M$ r现在只剩下代码A部分    提取质量属性对话窗口里的   体积信息5 n/ d: z- |' J0 W2 D5 k
& S- j' b7 C  Y3 D6 e# w
  |% A6 s5 Z: L0 k# i% V

6 B% e% _: {+ }
0 O- ?( h+ P# b/ v+ [  X
体积.png
发表于 2015-3-31 11:01:43 | 显示全部楼层 来自: 中国江苏无锡
不用宏也可以完成。楼主搞复杂了。论坛有相关主题
- q6 t! F# H& K9 m, ~' p- t, a 体积.jpg
; u  A! [0 N# c# f( d9 _" U& u2 @
 楼主| 发表于 2015-4-1 12:06:59 | 显示全部楼层 来自: 中国江苏南通
本帖最后由 ProeSky 于 2015-4-1 12:48 编辑 9 A- A6 }9 N. H2 S8 D0 U
wfwling12 发表于 2015-3-31 11:01 static/image/common/back.gif
  B$ |1 |" a' |1 l不用宏也可以完成。楼主搞复杂了。论坛有相关主题
# @, l3 J- t& m; M
多谢提醒
* Z1 D0 x$ k( ]4 Y
, k' V: f4 y. _. j. _我这个代码思路复杂了  我在qq群里 问提取体积属性时 发现可以直接得到体积信息,不用先调用质量弹窗提取再关闭。
, l: T( }- n' j+ `* V1 y' J% T1 [+ d& ~4 c) O! F! N
你的模型树里没有没有  Extrude3   可以直接得出容积吗   
9 z* `7 l  R! ^5 i' J& {4 q* N: _8 s3 d$ _, S6 ~
这次搞了一天  主要想接触 二次开发
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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