QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1770|回复: 3
收起左侧

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

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

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

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

x
本帖最后由 ProeSky 于 2015-3-16 14:44 编辑
2 p' S( Q, |+ ^0 `- G. d, {' ^# {" C& D6 M5 ]" J
Solidwork里  要得出一个抽壳后零件 内部容积不能直接得出    只能用间接法% E6 u5 z1 ]  u$ g
. @5 O+ ]" X( F' I4 k/ e
先工具-质量属性 得出实体体积    然后同样此法得到抽壳后壳子体积   相减得到抽壳后零件内部容积
# |# _& @# |! f# X0 o' p8 Z2 t
/ S6 e. K8 m4 @- G3 {想做一个简单宏   直接得出抽壳后内部容积  以后搞成插件 主要是练练这方面 举一反三也许日后可以用来简化工作量- I" Z( j- h* O; M6 J' F/ f& J
/ a2 y1 u1 p# S3 G5 I3 e$ Y: Q
程序框架我也列好,具体细节要查资料,论坛哪位师傅有经验的 能帮我完善一下 或提点意见
0 k9 `) R2 T# G7 B/ G2 e- `6 S2 N1 K$ X7 X9 F- _% k, |
我用的是solidwork 2011  部分代码是录制宏后 抠出来的- c& B2 W7 B  W$ H/ l

: y2 x4 k. c- L( l* H1 `" N
  1. Dim swApp As Object1 U% X; O1 ~8 O
  2. Dim Part As Object
    ; _. s4 p3 A0 s! s
  3. Dim boolstatus As Boolean
    % t( L7 L* l+ `
  4. Dim longstatus As Long, longwarnings As Long! d2 S$ i% a. ]" a
  5. 2 q# Y+ ~0 G4 {) T
  6. Sub main()
    " t+ V4 Z1 B& U& g. f  O
  7. % r+ k: R! Y" r/ O8 A2 o
  8. Set swApp = Application.SldWorks" p) i1 f- I$ O( X3 L( z
  9. 3 L) m. d, N* k; e
  10. Set Part = swApp.ActiveDoc
    ' X0 C9 P" A- j4 h. a1 T- \" W

  11.   l5 e6 C+ Z1 d, m6 x$ F' T

  12. $ r3 }% k; o3 q' s9 B" ~3 {. _' X
  13. Part.ToolsMassProps                    '得到当前壳体质量属性
    # |& t/ G( T! ]$ B' k
  14. 9 B0 w/ V- V! d8 _: B2 y. `

  15. 9 @. u% u8 [1 j: k5 x$ @+ P
  16. A代码                                          '提取质量属性里体积信息给变量 KL?" u/ r1 O2 g# g& c" j
  17. ) L* v% I/ p' O6 G# i/ v  z  d
  18. B代码                                          '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)
    - d: a7 k; e7 ]* I9 {' _
  19. 9 X, k! t# ~: U$ ~9 y8 O: H
  20. 0 u  t/ Z% p/ q0 {
  21. boolstatus = Part.Extension.SelectByID2("抽壳9", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)    '遍历设计树,选到抽壳ID?此处假设为抽壳9
    6 V' T1 }7 Q5 V! Z) ]

  22. 2 v( }/ u/ `/ @; x
  23. Part.EditDelete                              '删除壳# `# l9 o% y; c3 X# S6 R
  24. ! l' M# I7 _9 B9 i& r" C1 t
  25. Part.ToolsMassProps                      '得到当前去壳后实体质量属性
    3 h- S% R) U# ?  B' `

  26. , f4 j# Q" Z/ O/ g$ j/ A
  27. A代码                                            '提取质量属性里体积信息给变量 SL?
    4 w' [0 P4 B3 Q# W& U
  28. 0 u% [$ K$ V) J( i, ?( n, w- ~
  29. B代码                                            '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)# \/ E. d* Z! B* c. v7 i

  30. : n3 R9 D! F2 {% ]5 x" v# ?
  31. 9 i/ X  R1 V, P- O; i% t7 n4 C2 L8 z
  32. Part.EditUndo2 1                            '撤销删除壳操作,还原壳3 f, s$ v2 ^2 D! C7 U1 i
  33. % x$ U* X  w' G& ?9 D
  34. QL = SL - KL                                  '计算腔体容积  ,messagebox显示出来
    * d% z3 z. ]% g- x& W$ J5 O
  35. / S- n6 e8 B/ W% c

  36. * t2 E# J* A: ?" q6 u* e9 u. M
  37. End Sub' Y0 v2 P9 ]' H2 K$ N6 O) F
复制代码
www.jpg
 楼主| 发表于 2015-3-16 14:42:59 | 显示全部楼层 来自: 中国江苏南通
其他的问题都已解决 调试通过 . Q  M3 d$ E, _& G% \

5 h" M: Y  r' n. q7 Q% F现在只剩下代码A部分    提取质量属性对话窗口里的   体积信息) `: e1 T( _$ R$ Z; {! [7 F
- q4 P; z7 c+ I& g2 `* I( f0 ^

; O- n" r6 o! }; a+ v% q9 c4 K1 ?' N  a0 V5 b
/ A( g. R, O, d
体积.png
发表于 2015-3-31 11:01:43 | 显示全部楼层 来自: 中国江苏无锡
不用宏也可以完成。楼主搞复杂了。论坛有相关主题
' L8 C& B# D6 g: k3 I+ v 体积.jpg / y* p) t5 b5 S% j' @( B
 楼主| 发表于 2015-4-1 12:06:59 | 显示全部楼层 来自: 中国江苏南通
本帖最后由 ProeSky 于 2015-4-1 12:48 编辑 ( E# R8 W7 N+ p+ T" y
wfwling12 发表于 2015-3-31 11:01 static/image/common/back.gif
% Z+ e* [: C5 F" e0 E不用宏也可以完成。楼主搞复杂了。论坛有相关主题

6 j: \% ~( c! }多谢提醒
3 q/ F& ~2 Y  I4 z. J. r4 B7 G' Y# `3 g0 c
我这个代码思路复杂了  我在qq群里 问提取体积属性时 发现可以直接得到体积信息,不用先调用质量弹窗提取再关闭。
  |& ^" f( n( m0 V/ |
$ s- h: I4 G0 O2 K- t0 a/ Q' A你的模型树里没有没有  Extrude3   可以直接得出容积吗   
0 C2 G# g- y7 e8 z8 L
: s4 ~4 F  O# a& @9 K9 r 这次搞了一天  主要想接触 二次开发
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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