QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
本帖最后由 ProeSky 于 2015-3-16 14:44 编辑 : i1 S1 u! N! F# Z/ @; }

4 A, \7 @- t+ Y/ R& d! ?Solidwork里  要得出一个抽壳后零件 内部容积不能直接得出    只能用间接法
0 l- Q4 N/ e8 t: u# B# G5 g1 r, T5 N; ^: b
先工具-质量属性 得出实体体积    然后同样此法得到抽壳后壳子体积   相减得到抽壳后零件内部容积- j- ^8 a; `: T/ d+ \6 t2 G$ `

7 [1 T1 ~% `2 ^4 M9 s想做一个简单宏   直接得出抽壳后内部容积  以后搞成插件 主要是练练这方面 举一反三也许日后可以用来简化工作量# p( J- E# u8 G
2 t. n  M; @+ z3 |" d6 `: W
程序框架我也列好,具体细节要查资料,论坛哪位师傅有经验的 能帮我完善一下 或提点意见 , A, U5 N/ }' y& e! v" b- ^

# w( p) l; e0 S/ S2 D
我用的是solidwork 2011  部分代码是录制宏后 抠出来的
+ f7 }/ {) l, `3 `7 s, i# g  Z/ y9 x! x: }) H
  1. Dim swApp As Object& W4 K3 M7 P5 Y
  2. Dim Part As Object' \# M+ Z0 f3 [
  3. Dim boolstatus As Boolean' |' U' u4 }/ R' d1 N
  4. Dim longstatus As Long, longwarnings As Long
    * A: Y' @  t! F7 D0 z

  5. 1 d% }" Y# Z4 ^# n1 E( U9 }$ ~& W; ]. {* K
  6. Sub main()
    ! _4 p1 |! F, g4 ?

  7. % @7 \/ `5 L& B" Y& G; ?
  8. Set swApp = Application.SldWorks; W, ?0 O$ K3 }4 z2 f8 U% W' G9 m
  9. 0 ?/ ?% ]. f; c9 t0 l9 |/ j
  10. Set Part = swApp.ActiveDoc
    * C, w$ _( p: p

  11. $ t* [7 z) V# t) C* n6 O

  12. 0 K, y9 E, d4 e" Y
  13. Part.ToolsMassProps                    '得到当前壳体质量属性
    9 \1 l& Q  Q8 I5 O) V

  14. 3 q7 D/ X0 L9 h8 ^+ L
  15. ' ?6 [) }0 Z/ a2 @4 l# q
  16. A代码                                          '提取质量属性里体积信息给变量 KL?  B- M0 F" p6 Y3 X' b4 x

  17. # u. I7 }5 l" \) y! C
  18. B代码                                          '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)6 G5 @* q6 C% L' E$ t

  19. * y" o# N, u* O( v- [1 y
  20.   Z0 H2 C2 D5 p
  21. boolstatus = Part.Extension.SelectByID2("抽壳9", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)    '遍历设计树,选到抽壳ID?此处假设为抽壳9  d6 w1 x$ M# q, w
  22. 7 e/ V( p( T; @# ^$ B8 _
  23. Part.EditDelete                              '删除壳
    " A6 z( I% ?, }4 n
  24. & l* K7 b1 B: j- I# g, d% J$ o, a; u
  25. Part.ToolsMassProps                      '得到当前去壳后实体质量属性  }$ E/ k7 O8 X. c* s
  26. ( f5 ^4 _! ^" K
  27. A代码                                            '提取质量属性里体积信息给变量 SL?
    ) u$ _  m. |8 n1 j! m

  28. / a) P3 S. I/ J* c8 c
  29. B代码                                            '关闭当前质量属性窗口(GetActiveWindow得到当前活动窗体句柄,及弹出的质量属性窗口,SendMessage WM_CLOSE关闭窗口)  E, M+ Q/ \4 G) m  N: e6 O9 Z

  30. 4 F4 y3 B4 m# U! e
  31. : _' s& Q; M: _
  32. Part.EditUndo2 1                            '撤销删除壳操作,还原壳
    : J$ K- R; A* o. c1 f

  33. 8 A# X6 q$ j7 {1 {9 u
  34. QL = SL - KL                                  '计算腔体容积  ,messagebox显示出来4 I& j+ z2 P9 C: |7 j
  35. + S& E! Z! I- B" F$ i$ _

  36. " Q  K% z9 U+ S/ u# `, H+ c
  37. End Sub3 W- n) j- A8 c1 w$ L# L
复制代码
www.jpg
 楼主| 发表于 2015-3-16 14:42:59 | 显示全部楼层 来自: 中国江苏南通
其他的问题都已解决 调试通过
  G  |, r3 G- Z. m: ~0 R  Q! C
  k& {6 z! t- ]9 F" E' W% \现在只剩下代码A部分    提取质量属性对话窗口里的   体积信息
7 I9 v+ Y* K1 Z0 u
% K3 ^( l4 f- c
4 A% E0 c" N% x; b5 O7 b6 k5 h
9 @% `2 l' m9 l) g

- S0 o, ?6 R( Q- |/ I
体积.png
发表于 2015-3-31 11:01:43 | 显示全部楼层 来自: 中国江苏无锡
不用宏也可以完成。楼主搞复杂了。论坛有相关主题1 h+ o# g; \$ y: s
体积.jpg
5 y! {7 c, K8 B* ], K
 楼主| 发表于 2015-4-1 12:06:59 | 显示全部楼层 来自: 中国江苏南通
本帖最后由 ProeSky 于 2015-4-1 12:48 编辑 + X) o  Z4 z# q( V# T1 B
wfwling12 发表于 2015-3-31 11:01 static/image/common/back.gif4 ~, g/ h7 n8 K9 x  ^# K
不用宏也可以完成。楼主搞复杂了。论坛有相关主题

2 `. X4 e  G4 j, F" w, }多谢提醒
0 y( @& E1 b5 _# e8 r* P$ ^; q1 ~: T* ]# U: B
我这个代码思路复杂了  我在qq群里 问提取体积属性时 发现可以直接得到体积信息,不用先调用质量弹窗提取再关闭。
, O3 j0 x3 H( t
5 J5 M# E1 t6 h: L; Y! n4 U你的模型树里没有没有  Extrude3   可以直接得出容积吗   
! L2 V0 O+ ?. i- @+ ~6 a+ q/ V, O! H$ v
这次搞了一天  主要想接触 二次开发
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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