QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 ProeSky 于 2015-3-16 14:44 编辑 , M. ~, c8 W8 j& }$ @' K. ]! {

0 A& l" ~9 s  j9 P* ASolidwork里  要得出一个抽壳后零件 内部容积不能直接得出    只能用间接法) z  I% c7 _, A, A8 `

9 K$ K1 }3 C5 g2 Z先工具-质量属性 得出实体体积    然后同样此法得到抽壳后壳子体积   相减得到抽壳后零件内部容积
' t: U* v$ O9 u2 Y( D
( n. n: t, D' f0 g6 C- ]. [想做一个简单宏   直接得出抽壳后内部容积  以后搞成插件 主要是练练这方面 举一反三也许日后可以用来简化工作量8 D: `9 T4 y8 R+ u) \& Q
( i* f) X3 i9 b0 d+ ]
程序框架我也列好,具体细节要查资料,论坛哪位师傅有经验的 能帮我完善一下 或提点意见 2 D2 e* F2 e/ w% _1 ]. ?
7 Y3 m  S; q7 f* G
我用的是solidwork 2011  部分代码是录制宏后 抠出来的: |) T# F: K8 Y! `" k
% R/ ?$ B5 u# K( B3 Z  k3 J
  1. Dim swApp As Object4 f# i' S* ]. e5 P* w
  2. Dim Part As Object0 f# O( c; g. L  V" Q% b$ M
  3. Dim boolstatus As Boolean6 ^! I7 z/ l* F: g! E+ f6 m
  4. Dim longstatus As Long, longwarnings As Long
    : s% d4 y% H  |; `- |1 j1 [

  5. ( L1 z. _$ o2 I
  6. Sub main(). W5 f7 R$ }$ U2 j( ?7 p* [
  7. ' m6 V& |' x$ Z) o
  8. Set swApp = Application.SldWorks
    ; }4 U5 Z* ?/ b3 c7 y7 e) S
  9. ) u. F- t$ {3 |4 g- b
  10. Set Part = swApp.ActiveDoc
    - J- o- ~# }+ A1 U. E( t! D( e  }" {
  11. . t( E& O; @5 q9 z* e, e1 M: b& x. @

  12. 7 @( G, i: M6 ^  y' }
  13. Part.ToolsMassProps                    '得到当前壳体质量属性) }; _% R3 B: T1 h/ j' r* [0 c

  14. ) ?3 `) O6 w( k; S: R: e" _0 O& @

  15. 9 O% D7 I" t% G9 j$ n
  16. A代码                                          '提取质量属性里体积信息给变量 KL?
    ; a2 Y% b( G% k% @' n; C
  17. ( B, {4 w* q" u8 i
  18. B代码                                          '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)% }2 S+ f! o5 B5 X7 [4 Q1 X

  19. 4 s! J2 K" D0 i  {/ f- s0 V

  20. 0 I3 a: n3 e5 {7 s" J
  21. boolstatus = Part.Extension.SelectByID2("抽壳9", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)    '遍历设计树,选到抽壳ID?此处假设为抽壳9
    ' V+ p0 _3 j( s: M% m- B2 {% S

  22. ) O% W: Z' }/ ~, ~
  23. Part.EditDelete                              '删除壳
    9 A# J7 w  z' P: K2 O) M) J
  24. 7 e8 E, k+ {% p2 B: x$ u3 C' s
  25. Part.ToolsMassProps                      '得到当前去壳后实体质量属性
    % h0 L4 p$ R  u; r% l# k4 D

  26. / T( o3 C. x  l: p' N' r# g
  27. A代码                                            '提取质量属性里体积信息给变量 SL?, e: u' G+ v: S1 j" |

  28. / [4 u" u  y0 s9 Y- C; v
  29. B代码                                            '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)
    ) @7 n& R. Q/ l# Y4 \! C& L3 z1 z
  30. 2 S% u. r( Y8 \1 Y" K$ L9 k) ?/ ~3 ^
  31. 3 r3 t# z4 y5 F' E( {
  32. Part.EditUndo2 1                            '撤销删除壳操作,还原壳* p' ]7 r# T6 g: ~' W7 o5 g

  33. 8 h6 `( n, u4 A* C1 Q7 h+ j
  34. QL = SL - KL                                  '计算腔体容积  ,messagebox显示出来+ i9 J3 s( g4 y- `4 }4 A

  35. - e7 x: x' Q/ n; w8 ?# m7 \* i
  36. * k/ S; K6 Y6 z( N# ?3 l9 j
  37. End Sub2 Z) `3 _. D7 q! A6 f$ q& M
复制代码
www.jpg
 楼主| 发表于 2015-3-16 14:42:59 | 显示全部楼层 来自: 中国江苏南通
其他的问题都已解决 调试通过 7 S+ ]& G; l; D) {/ [

  d; `- p  Q/ C$ p6 b2 e现在只剩下代码A部分    提取质量属性对话窗口里的   体积信息
( V+ T3 l' Z8 R/ x/ N5 R
# P/ o8 d6 V; U& f- [# e0 Y1 Y, z

& g' ^% ~1 B% M
3 B9 K3 a% w" ?: R6 u0 h( H# }) V3 T, {/ M  k# l. t
体积.png
发表于 2015-3-31 11:01:43 | 显示全部楼层 来自: 中国江苏无锡
不用宏也可以完成。楼主搞复杂了。论坛有相关主题
2 j5 S6 b" W! Z5 _) `1 R$ {$ B+ i  v, @ 体积.jpg
7 X+ c1 l( h  v  \, }, T" _
 楼主| 发表于 2015-4-1 12:06:59 | 显示全部楼层 来自: 中国江苏南通
本帖最后由 ProeSky 于 2015-4-1 12:48 编辑 $ Z2 _2 \/ g% Z2 Y
wfwling12 发表于 2015-3-31 11:01 static/image/common/back.gif2 A% Y& z6 `5 ^  R7 Q* @3 Y1 R& ~
不用宏也可以完成。楼主搞复杂了。论坛有相关主题
5 P8 x" s+ t9 A( L
多谢提醒; h! z& |/ V; s$ r; `
3 y) ]+ v' r' k/ f: W/ Z% f
我这个代码思路复杂了  我在qq群里 问提取体积属性时 发现可以直接得到体积信息,不用先调用质量弹窗提取再关闭。
1 o! Y: z7 ?* ?; ^/ b% p- u  U  i6 ?9 E  s
你的模型树里没有没有  Extrude3   可以直接得出容积吗   
# A: i+ U0 E' m% z6 e/ w+ r' s: k: w+ e$ M# h
这次搞了一天  主要想接触 二次开发
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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