QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
  1. 一个可以运动的部件
8 D/ @& Y3 {6 n/ z2 ~7 v+ @& ^
. V& T5 D; c1 y" m# L9 J  2. 画一个3D草图点,点与该部件重心重合
; H2 E* G' |" X
4 d; g3 e1 h: J8 e* B0 o  3. 该部件在运动过程中,要求 3D草图点始终与部件重心 重合。* A% g/ H- |1 N% j: p

$ v9 L1 \4 [0 R5 h4 t, z! {+ O    应该怎么做呢?
 楼主| 发表于 2009-6-12 09:14:47 | 显示全部楼层 来自: 中国江苏徐州
如图,重心变化
重心005.gif
 楼主| 发表于 2009-6-13 09:51:57 | 显示全部楼层 来自: 中国江苏徐州
问题在第三步.. g7 j9 H+ r5 t
$ v+ U0 c% ]; F# j" d% q3 Y
缺乏讨论的声音啊!!3 C) [0 I6 ^4 G8 {& ~
& p$ y  B4 ]( G5 m
不一定解决后再说话,可以探讨可能的做法。
发表于 2009-6-13 10:47:52 | 显示全部楼层 来自: 中国北京
我怎么第二步都搞不定啊?; @; ?, @7 @& F  r: _8 D- k
如何搞定第二步?能搞定第二步,我觉得第三步问题不大的
 楼主| 发表于 2009-6-14 19:10:50 | 显示全部楼层 来自: 中国河北唐山
第二步,自动找重心位置,网上流行的程序也比较多的,就不要再说了吧?
 楼主| 发表于 2009-6-14 20:40:08 | 显示全部楼层 来自: 中国河北唐山
利用此函数:/ p/ R$ S! m8 W( O* b
GetMassProperties ) n" k8 Q5 h6 f8 b# @$ M
可得到零部件重心坐标、体积、面积等参数,用重心坐标插入草图点即可。
发表于 2009-6-15 16:37:08 | 显示全部楼层 来自: 中国北京

回复 6# gan5969 的帖子

你是说先知道重心数值了,然后手动去添加一个点啊。: _6 R" W' T+ g! V9 d) O( o
GetMassProperties这个函数有啥用?能自动生成重心点的点吗?不能的话,这函数有必要吗:L 利用SW自带工具就可以得到坐标啊,但是这个坐标不能自动生成点,所以难办,好像也不能加到方程式里面,如果可以加到方程式里的话就可以搞定了
 楼主| 发表于 2009-6-15 20:38:44 | 显示全部楼层 来自: 中国河北唐山
当然可以插入草图点,如下:6 a* Y* a6 m& M3 B" Y( l" r
zhongxin = Part.GetMassProperties
' F  |5 [  u/ i( g% J; U* u- @5 n    Part.Insert3DSketch
: ]6 X) |' m) E5 g    Part.CreatePoint2 zhongxin(0), zhongxin(1), zhongxin(2)( J: ^, K) Y/ k" S
      
) Y' c, K" ]& @/ Q% x5 e6 R    Part.Insert3DSketch2 True    ' X% j- c) x0 l

7 J3 E9 Z8 x: j% `    Part.FeatureByPositionReverse(0).Name = "重心位置" 4 Y3 g& k( I2 |$ W7 A

. W; e9 S) ?7 g/ c5 ?9 w以上插入了一个名为"重心位置" 的点
 楼主| 发表于 2009-6-15 21:45:39 | 显示全部楼层 来自: 中国河北唐山
还是发个图清楚:如下
重心获取.gif
发表于 2009-6-16 11:44:30 | 显示全部楼层 来自: 中国北京
看明白了,你那个自动生成和手动是没有区别的。手动生成的时候在创建点的时候也可以输入坐标点的。0 ]2 C" V+ e, S' V, p
关键是这个坐标点具体数值是不是可以利用SW的方程式自动提取过来。如果不行的话,实现动画基本上就不可能了。
; q: B0 n" x/ X除非你手动一步一步的来变化,一步一步的截图,然后再拼到一起也是动画
2009-6-16 11-39-58.jpg
 楼主| 发表于 2009-6-16 12:48:55 | 显示全部楼层 来自: 中国江苏徐州
晕!8楼程序不在那么?关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点
) u0 O' G5 G. d8 q7 d% ]0 x' P! m/ R% `. V9 l
实现动态连接
0 H  M  K: k, ?% _1 y
; [# r; b6 a. |4 d& _" r3 P[ 本帖最后由 gan5969 于 2009-6-16 12:50 编辑 ]
发表于 2009-6-16 13:02:38 | 显示全部楼层 来自: 中国北京

回复 11# gan5969 的帖子

对啊,我知道那个程序的作用,和手动加是一个效果。' J: ]9 m0 Z$ Q6 @3 O! ^$ c
就是说想实现动态的话,需要把这个值和方程式连接起来,有方程式了才可以自动的更新,要不然的话,还可以使用宏来做吧,前提是你对VBA比较熟悉。+ q. f0 u! E- E' j
我对VBA不懂,懂的话,完全可以做到这样的,不过需要自己写程序。
头像被屏蔽
发表于 2009-6-16 13:06:41 | 显示全部楼层 来自: 中国广西桂林
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-6-16 14:49:14 | 显示全部楼层 来自: 中国江苏徐州
说的不错,我正打算学习一下编程。没办法,要用啊!
& u# F  @6 i) S. Y呵呵,一切皆有可能。
9 F8 Z* w' z8 \/ i* {& j- `只是现在,一时找不到相应的命令。
发表于 2009-6-16 17:24:34 | 显示全部楼层 来自: 中国北京
还得自己写程序啊!!!
 楼主| 发表于 2009-6-16 22:03:52 | 显示全部楼层 来自: 中国河北唐山
呵呵,不劳无获啊!/ ?1 j0 j+ Q- T& Y8 f2 W9 X
有这方面的高手,请现身指点一二。
发表于 2009-6-17 00:38:02 | 显示全部楼层 来自: 中国重庆
我觉得这个不是问题呀。! ?( T0 B5 T1 I) f7 a( }
你把那个运动部分都做成一个部件,在这个部件环境中插入一个点。这个点的坐标是以本装配的坐标系来建立的。运动仿真的时候,这个点自然跟着运动部件走的。
2 G# |( _) i( x4 t3 T) n, [( s另外,你要重心那个点,是不是想用它添加力什么的?
 楼主| 发表于 2009-6-17 16:35:36 | 显示全部楼层 来自: 中国江苏徐州
其实最终要求是:(一个或几个)运动部件位置变化,或某些零件尺寸改变(各种可能的重心改变),始终要求 3D草图点与 装配体重心 重合。
0 h( Y; p" @/ t; M4 m  如计算运动过程中某一位置翻转力矩,就需要知道重心位置,当然还有其他。
 楼主| 发表于 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! A& l! F4 {1 K0 i; c
关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点  c/ H6 |+ X* ^( k# s

6 i( w- s" `8 H) u& u! a) ^实现动态连接。
& I% q- J1 }' A1 R/ s

  e; ]  T+ @1 C" r在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
pic01.jpg
发表于 2009-6-19 09:07:15 | 显示全部楼层 来自: 中国广东深圳
在API中相关的说明如下:
5 E$ e, P) d2 {, g' s7 r/ r, D" G, Q/ z2 z5 t* h- t2 X
ComponentMoveNotify2 - AssemblyDoc Event& X0 o" d; |% n2 C6 n- A

, n' k* B0 `: g) A$ ?Description
& r" f2 v' b  n1 ]5 X  b. p% w5 C4 W; V
3 }/ r7 _) ]5 bPost-notification that is sent when a user releases the mouse button indicating that the components have been moved to the desired destination. ! O5 C- R+ R2 @' Z( y: I
$ k" ]" p5 s9 b& y4 m0 c3 Z
NOTE: If developing a C++ application, use swAssemblyComponentMoveNotify to register for this notification.
$ z$ p( Q& v) b6 U1 C8 e' s  a6 B3 S# r2 G9 M
status = ComponentMoveNotify2 ( Components As VARIANT) As Long! e; ]) V, Y4 I
# y0 Z6 X3 U3 Y, A( o
Input:
! I! ~) l8 D" Q" K$ C (VARIANT) Components/ }2 }' ]6 I' c
SafeArray of the Component2 objects selected to be moved. r, B) S* ]: H' b! `" ]

: d$ A2 C$ l: z" mReturn:
  r- a/ G! G( I  i (HRESULT) status; d* r8 X! e4 d  E9 f( l+ F1 ?
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
9 U; P+ i% d% U  R  u 追蹤雁兄而來到這里來了
5 m7 }# i$ D9 k
) x- i$ \# P5 y5 W( `" o& Q+ t; G
' a' |' L" X( N4 I. N3 T9 L, D+ [' L
头一次见闷大积分“如此低”,比我还低。:lol:
- W$ H; z5 D  m; Z9 v# U0 _嗯,看看时间,2009年6月19日11时38分,等以后看到闷大是我N倍分的时候不要疑惑哦,上述说法仅此时此刻成立!7 J$ S: }- w/ K

& b4 c# A, J2 W6 W3 i[ 本帖最后由 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.gif2 H: ]7 A4 n7 c# g* D0 H
2 d4 B5 A' W, W. ^  m4 ]. v

" v+ X9 `+ T0 H! u1 d7 I3 a在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
( ^' S# A8 C" k9 q9 `1 ]

; N. q9 n; i) A* }2 l7 u偶还没找出头绪,也许半自动更新比宏特征更有利于计算、使用(⊙o⊙)。
发表于 2009-8-8 19:45:18 | 显示全部楼层 来自: 中国上海
做了个简单的例子8 {& N/ T- O/ S- B0 [9 l1 P

9 G5 j. D# r4 Z3 ~- Q# Y利用 swAssemblyComponentMoveNotify 事件,
+ r2 ]& w5 m& h* e) P3 H* [2 j! d
当装配体中有部件移动时,即重新计算圆球坐标  @$ g" ~) @6 T
* L, \5 k: D; W
打开装配体,运行宏,然后拖动零部件,就可以看到效果了
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 )

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