QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 1744|回复: 3
收起左侧

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

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

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

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

x
本帖最后由 ProeSky 于 2015-3-16 14:44 编辑
/ p  N3 t5 K2 N- `# X4 d
- Z: q* t5 r/ V/ B9 SSolidwork里  要得出一个抽壳后零件 内部容积不能直接得出    只能用间接法1 Y! `9 e+ D, `4 q0 y0 u9 \

5 I" A/ C, ~. d& n4 \先工具-质量属性 得出实体体积    然后同样此法得到抽壳后壳子体积   相减得到抽壳后零件内部容积) o0 E3 _9 ~# V" a/ I
4 L# j1 s9 Z- I
想做一个简单宏   直接得出抽壳后内部容积  以后搞成插件 主要是练练这方面 举一反三也许日后可以用来简化工作量% a3 N9 i. U5 ^( ~$ K' u

% E$ V# f6 I7 x, Z+ u  m程序框架我也列好,具体细节要查资料,论坛哪位师傅有经验的 能帮我完善一下 或提点意见
$ c$ g* O$ v* T/ G( R. T7 }" q. @8 l+ \7 O- Y
我用的是solidwork 2011  部分代码是录制宏后 抠出来的9 X, ~- C  c2 [6 u) d$ Z  U& V% W
4 N2 j$ d- n/ `
  1. Dim swApp As Object
    ! q% @% {) v2 f2 f; ]" Z; Q$ `* b! F
  2. Dim Part As Object  u; f, c1 _' P! b5 u
  3. Dim boolstatus As Boolean
    ) o0 _- D! U% s
  4. Dim longstatus As Long, longwarnings As Long9 C( ]- [7 v* M% b  g
  5. 4 ~! e0 f5 P1 b  K# N7 m. i, D
  6. Sub main()6 b: s0 E$ i* v1 ^" f
  7. . _" l( U/ E9 C
  8. Set swApp = Application.SldWorks+ e: _4 X7 k) {* q% U
  9. 9 {; Q* j) g5 w: J8 r9 E0 y
  10. Set Part = swApp.ActiveDoc7 Q' [: y, M/ q2 I- Z

  11. ) ]! {/ Q8 O0 N9 N" B
  12. 5 b; s0 B+ c& W( n2 p
  13. Part.ToolsMassProps                    '得到当前壳体质量属性
    . R( y0 T- W" G  h1 i" Y' n

  14. ) h! w) z% l/ p4 \% w) A8 ~* F

  15. ! j+ U, S4 W2 O5 l# _2 ~8 |; B
  16. A代码                                          '提取质量属性里体积信息给变量 KL?+ o, ]& k3 y  j6 q
  17. 0 L$ Y- U, o2 w* `6 g9 T: t
  18. B代码                                          '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)
    2 ]/ g  X1 E, `7 K$ o
  19. 1 }* e6 \  N, a4 f; \: j

  20. 8 q* u3 k. j8 O
  21. boolstatus = Part.Extension.SelectByID2("抽壳9", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)    '遍历设计树,选到抽壳ID?此处假设为抽壳9. t! ?9 i* D3 R( t0 q

  22. " H  x" @7 s& v+ f& N- o
  23. Part.EditDelete                              '删除壳( B7 \1 s/ W" T0 j0 l
  24. 6 N9 O; U0 x5 Z) {4 }8 U9 y6 g7 ^
  25. Part.ToolsMassProps                      '得到当前去壳后实体质量属性- L4 y+ I( }* M* ]- {1 J  G
  26. 4 ?: V! L: A9 B9 m: _  D! N
  27. A代码                                            '提取质量属性里体积信息给变量 SL?* y$ R7 \& Q2 D8 J5 m7 x+ I
  28. " M/ \" z5 S* _7 T9 B
  29. B代码                                            '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)
    : ?) u  ?# t( X/ p/ ?9 k

  30. ( r; ?  G0 V$ a* K4 y0 A

  31. . r; I2 T! Y- r0 ]; `, {
  32. Part.EditUndo2 1                            '撤销删除壳操作,还原壳$ m, }0 _! s( ]" o# Q" K# }

  33. . {9 d, a3 [0 L. u
  34. QL = SL - KL                                  '计算腔体容积  ,messagebox显示出来, E) ~9 R  |: a2 }; [$ g" l! z
  35. # g8 `7 T. p/ w4 P) e8 g  ?1 h

  36. ' }) A: a0 |  W) k  `
  37. End Sub( X2 @5 d, }% X& ^; i+ `1 ]
复制代码
www.jpg
 楼主| 发表于 2015-3-16 14:42:59 | 显示全部楼层 来自: 中国江苏南通
其他的问题都已解决 调试通过 6 q1 R: `: \/ o( j& q$ T
! P: K0 L# R: Q
现在只剩下代码A部分    提取质量属性对话窗口里的   体积信息" Z) k9 B9 x9 B! c2 L2 }; q- D& u
6 B6 u3 e, E' p0 f+ b7 X0 y
/ V! r1 t2 O8 R8 Q* s
8 I) s' H1 M) D' _
5 H: b7 ^( g* ^- ], }9 D
体积.png
发表于 2015-3-31 11:01:43 | 显示全部楼层 来自: 中国江苏无锡
不用宏也可以完成。楼主搞复杂了。论坛有相关主题
9 g( l4 q4 N' T. p1 y 体积.jpg
  f/ R' _+ k/ r9 X. X: @, M
 楼主| 发表于 2015-4-1 12:06:59 | 显示全部楼层 来自: 中国江苏南通
本帖最后由 ProeSky 于 2015-4-1 12:48 编辑
' X' \' s! d1 [( }+ r" u: `
wfwling12 发表于 2015-3-31 11:01 static/image/common/back.gif; c9 A7 G7 t; {! f6 B* A
不用宏也可以完成。楼主搞复杂了。论坛有相关主题
& [/ P3 \  f& @" m* ?/ O7 s
多谢提醒* u, W* l2 B& Q; `
: C7 d* o, `4 T; b4 z
我这个代码思路复杂了  我在qq群里 问提取体积属性时 发现可以直接得到体积信息,不用先调用质量弹窗提取再关闭。; y$ y4 c3 Z( N
9 o& A6 o( g' Y! N% G* O! x
你的模型树里没有没有  Extrude3   可以直接得出容积吗    . r; a7 e0 W& `8 x
# y& e# L/ y. \# x' N- A
这次搞了一天  主要想接触 二次开发
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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