QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 6920|回复: 25
收起左侧

[求助] 跟随 重心 移动 的 草图

[复制链接]
发表于 2009-6-11 20:16:25 | 显示全部楼层 |阅读模式 来自: 中国河北唐山

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

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

x
  1. 一个可以运动的部件+ N) Y5 H9 x; J6 Z6 c

' w1 J4 B/ @9 c- s  2. 画一个3D草图点,点与该部件重心重合
5 ]' D6 g& o* ^8 h. i+ Q3 y
5 _  b' g# }* _. O  3. 该部件在运动过程中,要求 3D草图点始终与部件重心 重合。
6 ?; ]( h) Y% u/ b9 N# \, F9 N4 ], x
    应该怎么做呢?
 楼主| 发表于 2009-6-12 09:14:47 | 显示全部楼层 来自: 中国江苏徐州
如图,重心变化
重心005.gif
 楼主| 发表于 2009-6-13 09:51:57 | 显示全部楼层 来自: 中国江苏徐州
问题在第三步.
$ }- C: M4 y4 ^4 A" [. y- j3 l4 J: ?+ I 5 v0 K2 u  c+ r0 `
缺乏讨论的声音啊!!
% H4 S, m' l4 B) `) j) H
  ?$ Y% L; g! B+ O; T9 ~% u2 i不一定解决后再说话,可以探讨可能的做法。
发表于 2009-6-13 10:47:52 | 显示全部楼层 来自: 中国北京
我怎么第二步都搞不定啊?; F/ c' |5 I4 ?' z1 |7 p4 z, ~
如何搞定第二步?能搞定第二步,我觉得第三步问题不大的
 楼主| 发表于 2009-6-14 19:10:50 | 显示全部楼层 来自: 中国河北唐山
第二步,自动找重心位置,网上流行的程序也比较多的,就不要再说了吧?
 楼主| 发表于 2009-6-14 20:40:08 | 显示全部楼层 来自: 中国河北唐山
利用此函数:" L$ h- M4 |. @& t' t0 Q
GetMassProperties 3 U5 `4 M- \. x6 G# Y; i- _$ A! n
可得到零部件重心坐标、体积、面积等参数,用重心坐标插入草图点即可。
发表于 2009-6-15 16:37:08 | 显示全部楼层 来自: 中国北京

回复 6# gan5969 的帖子

你是说先知道重心数值了,然后手动去添加一个点啊。
0 d, }0 t; K+ J( H" g3 c4 v* vGetMassProperties这个函数有啥用?能自动生成重心点的点吗?不能的话,这函数有必要吗:L 利用SW自带工具就可以得到坐标啊,但是这个坐标不能自动生成点,所以难办,好像也不能加到方程式里面,如果可以加到方程式里的话就可以搞定了
 楼主| 发表于 2009-6-15 20:38:44 | 显示全部楼层 来自: 中国河北唐山
当然可以插入草图点,如下:* D. Z* j# N9 [
zhongxin = Part.GetMassProperties
& l: X, a, z( Z" M% J- C    Part.Insert3DSketch
% z' I6 H% Y- P1 u5 I, Z8 C- u3 B    Part.CreatePoint2 zhongxin(0), zhongxin(1), zhongxin(2)
! e! O* @: E0 R7 X7 \# H" o6 R      
) ?8 N4 A& C" c; Z) l$ r    Part.Insert3DSketch2 True   
* u) B) A3 C9 k% |; f) B
0 A+ V" m1 [8 u, d    Part.FeatureByPositionReverse(0).Name = "重心位置" ! p: \. p0 k3 p% Y

' j9 t% g4 i: f2 s/ D$ K以上插入了一个名为"重心位置" 的点
 楼主| 发表于 2009-6-15 21:45:39 | 显示全部楼层 来自: 中国河北唐山
还是发个图清楚:如下
重心获取.gif
发表于 2009-6-16 11:44:30 | 显示全部楼层 来自: 中国北京
看明白了,你那个自动生成和手动是没有区别的。手动生成的时候在创建点的时候也可以输入坐标点的。' [+ e  p3 f+ |( |6 N2 M) r: U
关键是这个坐标点具体数值是不是可以利用SW的方程式自动提取过来。如果不行的话,实现动画基本上就不可能了。1 C1 \4 J$ q% r. s
除非你手动一步一步的来变化,一步一步的截图,然后再拼到一起也是动画
2009-6-16 11-39-58.jpg
 楼主| 发表于 2009-6-16 12:48:55 | 显示全部楼层 来自: 中国江苏徐州
晕!8楼程序不在那么?关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点
9 C$ |) x( L" f- \  A5 S- B( E/ w/ x7 f
实现动态连接
6 f! E7 R" o. e( ^
9 m+ z' R, e: \1 ~[ 本帖最后由 gan5969 于 2009-6-16 12:50 编辑 ]
发表于 2009-6-16 13:02:38 | 显示全部楼层 来自: 中国北京

回复 11# gan5969 的帖子

对啊,我知道那个程序的作用,和手动加是一个效果。- U' F/ I- z% D5 o3 g! }7 n9 M
就是说想实现动态的话,需要把这个值和方程式连接起来,有方程式了才可以自动的更新,要不然的话,还可以使用宏来做吧,前提是你对VBA比较熟悉。
. u' T' v9 b7 }% p6 N3 L* n我对VBA不懂,懂的话,完全可以做到这样的,不过需要自己写程序。
头像被屏蔽
发表于 2009-6-16 13:06:41 | 显示全部楼层 来自: 中国广西桂林
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-6-16 14:49:14 | 显示全部楼层 来自: 中国江苏徐州
说的不错,我正打算学习一下编程。没办法,要用啊!  a0 o! H8 n4 Q# k7 A- m
呵呵,一切皆有可能。# h2 `0 T" h9 h) {/ Z/ u( w3 Q
只是现在,一时找不到相应的命令。
发表于 2009-6-16 17:24:34 | 显示全部楼层 来自: 中国北京
还得自己写程序啊!!!
 楼主| 发表于 2009-6-16 22:03:52 | 显示全部楼层 来自: 中国河北唐山
呵呵,不劳无获啊!
$ Y; L9 `0 w9 @, i有这方面的高手,请现身指点一二。
发表于 2009-6-17 00:38:02 | 显示全部楼层 来自: 中国重庆
我觉得这个不是问题呀。; e) f- U% i0 z; m# {  G
你把那个运动部分都做成一个部件,在这个部件环境中插入一个点。这个点的坐标是以本装配的坐标系来建立的。运动仿真的时候,这个点自然跟着运动部件走的。5 E, D7 g5 [/ `! v! J# ]( b
另外,你要重心那个点,是不是想用它添加力什么的?
 楼主| 发表于 2009-6-17 16:35:36 | 显示全部楼层 来自: 中国江苏徐州
其实最终要求是:(一个或几个)运动部件位置变化,或某些零件尺寸改变(各种可能的重心改变),始终要求 3D草图点与 装配体重心 重合。0 j8 [" P0 b0 M/ E4 r% D9 F) R1 j
  如计算运动过程中某一位置翻转力矩,就需要知道重心位置,当然还有其他。
 楼主| 发表于 2009-6-18 22:13:18 | 显示全部楼层 来自: 中国河北唐山
经闷大指导了一番,还没成功,郁闷中...
发表于 2009-6-19 00:48:49 | 显示全部楼层 来自: 中国香港
追蹤雁兄而來到這里來了
发表于 2009-6-19 08:20:34 | 显示全部楼层 来自: 中国广东深圳
原帖由 gan5969 于 2009-6-16 12:48 发表 http://www.3dportal.cn/discuz/images/common/back.gif% z* B  h0 h. n/ c" |! w8 e" `
关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点
: K' g# ]; Q. w! `
8 v7 A0 [" d  `7 t5 [3 A* T实现动态连接。

& |* f8 p  I( s% V& ]
: y: h9 E" P5 [9 Q6 `; v# T在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
pic01.jpg
发表于 2009-6-19 09:07:15 | 显示全部楼层 来自: 中国广东深圳
在API中相关的说明如下:
* K. r: E+ y4 Q" x) @* ^. T( G. d8 G8 c- |
ComponentMoveNotify2 - AssemblyDoc Event! c9 x' u' c# H. g0 O3 H
7 o+ K9 ?" S0 G4 s0 A$ X6 G
Description: h0 e8 N$ T& s1 w7 R
# n% O5 k' h; P1 u
Post-notification that is sent when a user releases the mouse button indicating that the components have been moved to the desired destination. 7 }0 @: O; |3 Y  P3 _

& J+ y+ _8 x0 k7 h  i$ W. E$ F  E( cNOTE: If developing a C++ application, use swAssemblyComponentMoveNotify to register for this notification.
1 K, i! Z7 K4 B: a! w4 c, u- A5 E9 {7 X- ?8 r
status = ComponentMoveNotify2 ( Components As VARIANT) As Long
' W" i  c7 {& Y  [( l
$ P% Z/ R# i2 f0 _. E8 _; w( t6 ZInput:
0 e2 p/ g* f: ~, J (VARIANT) Components3 V. `8 T: f+ s
SafeArray of the Component2 objects selected to be moved
1 f. j6 X. d: a
, }# L4 A2 w4 {- NReturn:5 r" p9 Z+ Y6 x/ u
(HRESULT) status1 ]8 R. O7 j( }
S_OK if successful
 楼主| 发表于 2009-6-19 11:43:09 | 显示全部楼层 来自: 中国江苏徐州
原帖由 Francis 于 2009-6-19 00:48 发表 http://www.3dportal.cn/discuz/images/common/back.gif
* M$ [) Y4 f: G 追蹤雁兄而來到這里來了
# _1 V5 m0 v1 d4 H  N& ^

; m0 X6 \& e7 P" d% Y6 }9 _
! E/ I/ }" Y0 W5 I( L头一次见闷大积分“如此低”,比我还低。:lol: : R1 v0 G9 h: l5 D' a- Z9 ~! u
嗯,看看时间,2009年6月19日11时38分,等以后看到闷大是我N倍分的时候不要疑惑哦,上述说法仅此时此刻成立!+ J0 a) w: n: P! L2 U2 I% [: ^: a

* ~7 V/ H+ \: M# K) X1 ~[ 本帖最后由 gan5969 于 2009-6-19 11:45 编辑 ]
 楼主| 发表于 2009-6-19 20:40:18 | 显示全部楼层 来自: 中国河北唐山
原帖由 zzshuang 于 2009-6-19 08:20 发表 http://www.3dportal.cn/discuz/images/common/back.gif
7 o% k& ]$ g- A( f6 i& L' m
( i1 h! U) f' P7 a
+ @; a2 b" p3 H4 {8 y+ u, S( s* E( k$ o在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
- r& q. k$ b, f7 U4 P9 ]6 {3 @

* ]5 S# _* ^9 _) D偶还没找出头绪,也许半自动更新比宏特征更有利于计算、使用(⊙o⊙)。
发表于 2009-8-8 19:45:18 | 显示全部楼层 来自: 中国上海
做了个简单的例子
" {2 O3 t) t1 l3 f+ `+ L3 T+ E! a: |$ D" m+ ?! R6 }! l
利用 swAssemblyComponentMoveNotify 事件,# Q) [  ]! F7 t4 j$ [
  \$ i& F; K% c! |2 z* L
当装配体中有部件移动时,即重新计算圆球坐标
8 |  R% T$ l  d( ]7 O* Q3 l9 D
4 A2 X# K" x, k打开装配体,运行宏,然后拖动零部件,就可以看到效果了
1.gif

1.rar

193.27 KB, 下载次数: 37

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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