QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
  1. 一个可以运动的部件6 B" a& i! |) {+ z7 _9 z
$ F# R2 N: p5 f. Y  f  h: f& _4 j
  2. 画一个3D草图点,点与该部件重心重合
$ b- b" Z( l# N8 |+ L
8 U/ ]! e6 d1 U9 ~' H0 N  3. 该部件在运动过程中,要求 3D草图点始终与部件重心 重合。( ~( B3 n" c( o2 B9 t
5 `. }/ M  E5 s# L* m3 K# z7 y5 ?
    应该怎么做呢?
 楼主| 发表于 2009-6-12 09:14:47 | 显示全部楼层 来自: 中国江苏徐州
如图,重心变化
重心005.gif
 楼主| 发表于 2009-6-13 09:51:57 | 显示全部楼层 来自: 中国江苏徐州
问题在第三步.
3 y, g. W0 _# }
6 q3 e3 `3 C# j: \缺乏讨论的声音啊!!
; B8 K& w2 j0 ]. z
2 m! h/ U! u3 ^4 _不一定解决后再说话,可以探讨可能的做法。
发表于 2009-6-13 10:47:52 | 显示全部楼层 来自: 中国北京
我怎么第二步都搞不定啊?6 m- l! {" h% v. M
如何搞定第二步?能搞定第二步,我觉得第三步问题不大的
 楼主| 发表于 2009-6-14 19:10:50 | 显示全部楼层 来自: 中国河北唐山
第二步,自动找重心位置,网上流行的程序也比较多的,就不要再说了吧?
 楼主| 发表于 2009-6-14 20:40:08 | 显示全部楼层 来自: 中国河北唐山
利用此函数:: K5 P, h, e0 C9 H
GetMassProperties
; G4 ?4 Q: V) l2 M8 ]可得到零部件重心坐标、体积、面积等参数,用重心坐标插入草图点即可。
发表于 2009-6-15 16:37:08 | 显示全部楼层 来自: 中国北京

回复 6# gan5969 的帖子

你是说先知道重心数值了,然后手动去添加一个点啊。
' ^( o! N3 n( f8 Q$ n! m: kGetMassProperties这个函数有啥用?能自动生成重心点的点吗?不能的话,这函数有必要吗:L 利用SW自带工具就可以得到坐标啊,但是这个坐标不能自动生成点,所以难办,好像也不能加到方程式里面,如果可以加到方程式里的话就可以搞定了
 楼主| 发表于 2009-6-15 20:38:44 | 显示全部楼层 来自: 中国河北唐山
当然可以插入草图点,如下:
6 P5 Y$ B0 l7 ]' _% W- l7 _" B1 _5 Zzhongxin = Part.GetMassProperties
# N, E6 h) R6 @; D0 I% D# i    Part.Insert3DSketch) j2 p/ ?+ f! ^/ x- e* o
    Part.CreatePoint2 zhongxin(0), zhongxin(1), zhongxin(2)1 c- D, Q8 c7 A) |7 _8 z& `- l
      
4 E9 U! L( ]1 j. L6 S) ~' ?    Part.Insert3DSketch2 True      w' }9 P1 L( w! k, F& {

6 b8 m; e! }- U! i9 |$ Z9 c    Part.FeatureByPositionReverse(0).Name = "重心位置" 4 i* q2 _) k" x% V

- W, M% H0 R# K& p! S0 i" f以上插入了一个名为"重心位置" 的点
 楼主| 发表于 2009-6-15 21:45:39 | 显示全部楼层 来自: 中国河北唐山
还是发个图清楚:如下
重心获取.gif
发表于 2009-6-16 11:44:30 | 显示全部楼层 来自: 中国北京
看明白了,你那个自动生成和手动是没有区别的。手动生成的时候在创建点的时候也可以输入坐标点的。
' F% K3 X0 _9 E0 [关键是这个坐标点具体数值是不是可以利用SW的方程式自动提取过来。如果不行的话,实现动画基本上就不可能了。) k: C7 J( i9 u2 F$ v
除非你手动一步一步的来变化,一步一步的截图,然后再拼到一起也是动画
2009-6-16 11-39-58.jpg
 楼主| 发表于 2009-6-16 12:48:55 | 显示全部楼层 来自: 中国江苏徐州
晕!8楼程序不在那么?关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点. C7 O( Y" H( P& L& v* c  x6 G

; ?  d0 `6 L) D$ x实现动态连接
5 X6 k' V/ D& {2 \
7 @' p) b+ ^' |' I* H9 T[ 本帖最后由 gan5969 于 2009-6-16 12:50 编辑 ]
发表于 2009-6-16 13:02:38 | 显示全部楼层 来自: 中国北京

回复 11# gan5969 的帖子

对啊,我知道那个程序的作用,和手动加是一个效果。
6 x/ @' d1 v' p3 d4 l- \就是说想实现动态的话,需要把这个值和方程式连接起来,有方程式了才可以自动的更新,要不然的话,还可以使用宏来做吧,前提是你对VBA比较熟悉。
4 ?8 t4 Z" m- o. z( |( P% w2 D/ R我对VBA不懂,懂的话,完全可以做到这样的,不过需要自己写程序。
头像被屏蔽
发表于 2009-6-16 13:06:41 | 显示全部楼层 来自: 中国广西桂林
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-6-16 14:49:14 | 显示全部楼层 来自: 中国江苏徐州
说的不错,我正打算学习一下编程。没办法,要用啊!
' W  h, e' E  }1 c$ o呵呵,一切皆有可能。
0 a% u1 l+ `" a# C/ ]8 {只是现在,一时找不到相应的命令。
发表于 2009-6-16 17:24:34 | 显示全部楼层 来自: 中国北京
还得自己写程序啊!!!
 楼主| 发表于 2009-6-16 22:03:52 | 显示全部楼层 来自: 中国河北唐山
呵呵,不劳无获啊!4 M( B& |/ H0 a, i, }1 ]6 H$ ~
有这方面的高手,请现身指点一二。
发表于 2009-6-17 00:38:02 | 显示全部楼层 来自: 中国重庆
我觉得这个不是问题呀。
# L6 x. o: v" H1 i! l4 c. L% S你把那个运动部分都做成一个部件,在这个部件环境中插入一个点。这个点的坐标是以本装配的坐标系来建立的。运动仿真的时候,这个点自然跟着运动部件走的。0 q* o0 R( P1 S& c
另外,你要重心那个点,是不是想用它添加力什么的?
 楼主| 发表于 2009-6-17 16:35:36 | 显示全部楼层 来自: 中国江苏徐州
其实最终要求是:(一个或几个)运动部件位置变化,或某些零件尺寸改变(各种可能的重心改变),始终要求 3D草图点与 装配体重心 重合。
" C. U: E0 ]& C& w1 y9 N& Z  如计算运动过程中某一位置翻转力矩,就需要知道重心位置,当然还有其他。
 楼主| 发表于 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
) ]9 y" \( R2 `0 a2 Q关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点
1 j* f+ C5 t& Z6 p
3 `; ]& h! N$ Y实现动态连接。

2 l! K" B$ q5 @# c7 n/ @+ J8 [: s* p+ r0 ]! O+ b* Y9 I
在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
pic01.jpg
发表于 2009-6-19 09:07:15 | 显示全部楼层 来自: 中国广东深圳
在API中相关的说明如下:6 x% F% J: J. T6 {, H
  e8 K4 }; V5 U5 b
ComponentMoveNotify2 - AssemblyDoc Event
0 |1 U( Y+ `# H! C* f 9 ?  v/ |( ?& f6 _5 n
Description- u) Y+ c8 f; }$ f7 J, W) s& @; O

1 b) a8 Y9 b1 ~! C: G  {% mPost-notification that is sent when a user releases the mouse button indicating that the components have been moved to the desired destination.
6 P# z6 q* e) T3 z/ Z7 S8 j6 S8 p
NOTE: If developing a C++ application, use swAssemblyComponentMoveNotify to register for this notification.
: M$ N9 Z& ~4 F7 I& @+ B1 j1 q$ R/ i# U+ n1 r+ d6 \3 {
status = ComponentMoveNotify2 ( Components As VARIANT) As Long
- U9 E, n1 t; j- h& B
5 V# j- o9 F6 o1 L4 MInput:
8 U- k3 b8 q% ]& e (VARIANT) Components
$ ]2 F+ `$ L5 h$ ~ SafeArray of the Component2 objects selected to be moved7 ^) e- ~' F5 c

; G1 f% r/ D( k, x" DReturn:- |7 ~2 a; N# B. U* Y' T
(HRESULT) status
) \3 t# A) u1 S  n$ @) _+ R! O$ v8 Y S_OK if successful
 楼主| 发表于 2009-6-19 11:43:09 | 显示全部楼层 来自: 中国江苏徐州
原帖由 Francis 于 2009-6-19 00:48 发表 http://www.3dportal.cn/discuz/images/common/back.gif4 s. P4 M6 S8 ?* l% U" j
追蹤雁兄而來到這里來了

: y9 {/ @% u) g& o& ^
+ s  v7 k# c; n5 p. g# v) u! x* @; D( S7 e: G! B2 N
头一次见闷大积分“如此低”,比我还低。:lol:
$ \! w4 o5 j3 A嗯,看看时间,2009年6月19日11时38分,等以后看到闷大是我N倍分的时候不要疑惑哦,上述说法仅此时此刻成立!" L, x0 [$ i2 @& h' u! l1 y% p

* @0 d' n8 Y$ Z) X- r% e& u* a[ 本帖最后由 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
% q" m) }! Y- Z- S8 A" w6 x- K8 C0 T* P/ _

. j$ i8 L# N/ f8 S在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。

5 o& e8 N6 a  t7 W( ~7 q$ |$ Z! c
' m, f! e' G5 j/ {; j$ A偶还没找出头绪,也许半自动更新比宏特征更有利于计算、使用(⊙o⊙)。
发表于 2009-8-8 19:45:18 | 显示全部楼层 来自: 中国上海
做了个简单的例子
1 A# V" b: J( o3 n
* I1 E+ U: e' J7 Q+ Z1 B利用 swAssemblyComponentMoveNotify 事件,
2 z7 ?/ J+ O/ F! |! y
6 L+ ?+ c6 Q0 }! _4 }+ |2 a" a当装配体中有部件移动时,即重新计算圆球坐标
0 t  M- Y  @$ T4 V
9 x$ q; e  {- b打开装配体,运行宏,然后拖动零部件,就可以看到效果了
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 )

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