QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
2天前
查看: 6937|回复: 25
收起左侧

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

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

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

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

x
  1. 一个可以运动的部件2 D% z9 P) N' i" b2 e! ]
- ]6 _5 h' d9 x' H- S/ V
  2. 画一个3D草图点,点与该部件重心重合. a2 m8 ]+ b6 `3 ]- h6 \5 z0 `' S
$ V- }* j7 q7 O( V$ [4 X5 {; i0 G& W
  3. 该部件在运动过程中,要求 3D草图点始终与部件重心 重合。: J; U% z* }- w& _+ N7 r
' a: U5 B+ w8 v; o, d2 ^! q
    应该怎么做呢?
 楼主| 发表于 2009-6-12 09:14:47 | 显示全部楼层 来自: 中国江苏徐州
如图,重心变化
重心005.gif
 楼主| 发表于 2009-6-13 09:51:57 | 显示全部楼层 来自: 中国江苏徐州
问题在第三步.
9 S% {" o* r1 i, R' m
0 m7 G4 T# e, a缺乏讨论的声音啊!!# U& N& V) {( O+ _7 u  G

% y2 k" V0 ^# e" [" i不一定解决后再说话,可以探讨可能的做法。
发表于 2009-6-13 10:47:52 | 显示全部楼层 来自: 中国北京
我怎么第二步都搞不定啊?# {8 V/ k( b7 U5 g
如何搞定第二步?能搞定第二步,我觉得第三步问题不大的
 楼主| 发表于 2009-6-14 19:10:50 | 显示全部楼层 来自: 中国河北唐山
第二步,自动找重心位置,网上流行的程序也比较多的,就不要再说了吧?
 楼主| 发表于 2009-6-14 20:40:08 | 显示全部楼层 来自: 中国河北唐山
利用此函数:# K6 I8 y9 n' r1 |
GetMassProperties
! w9 I  N0 H/ _) L$ a可得到零部件重心坐标、体积、面积等参数,用重心坐标插入草图点即可。
发表于 2009-6-15 16:37:08 | 显示全部楼层 来自: 中国北京

回复 6# gan5969 的帖子

你是说先知道重心数值了,然后手动去添加一个点啊。
  D1 B6 i5 L& l5 iGetMassProperties这个函数有啥用?能自动生成重心点的点吗?不能的话,这函数有必要吗:L 利用SW自带工具就可以得到坐标啊,但是这个坐标不能自动生成点,所以难办,好像也不能加到方程式里面,如果可以加到方程式里的话就可以搞定了
 楼主| 发表于 2009-6-15 20:38:44 | 显示全部楼层 来自: 中国河北唐山
当然可以插入草图点,如下:9 [( z! l! T2 o# f7 O, g" f9 i" d
zhongxin = Part.GetMassProperties$ r5 b* S' |9 d5 W, D; c+ |8 c
    Part.Insert3DSketch  h; K' \4 y9 ~! M0 _* u* N8 U
    Part.CreatePoint2 zhongxin(0), zhongxin(1), zhongxin(2)
9 E: [3 x( E3 H8 W9 y      
7 M! r, U4 m0 B- T    Part.Insert3DSketch2 True   
: c! f$ {. j$ E' l  o% Q, |8 j7 ~8 ~5 I
    Part.FeatureByPositionReverse(0).Name = "重心位置" 3 B# z( L3 _/ Z$ ^4 e  j9 Y

, q/ _! Z$ z+ c; K6 E" E1 p( Q以上插入了一个名为"重心位置" 的点
 楼主| 发表于 2009-6-15 21:45:39 | 显示全部楼层 来自: 中国河北唐山
还是发个图清楚:如下
重心获取.gif
发表于 2009-6-16 11:44:30 | 显示全部楼层 来自: 中国北京
看明白了,你那个自动生成和手动是没有区别的。手动生成的时候在创建点的时候也可以输入坐标点的。3 e, r; q* |' O/ i
关键是这个坐标点具体数值是不是可以利用SW的方程式自动提取过来。如果不行的话,实现动画基本上就不可能了。/ e2 Y% A6 G. v7 l: ]
除非你手动一步一步的来变化,一步一步的截图,然后再拼到一起也是动画
2009-6-16 11-39-58.jpg
 楼主| 发表于 2009-6-16 12:48:55 | 显示全部楼层 来自: 中国江苏徐州
晕!8楼程序不在那么?关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点, `: H  K( A( a; E
* f; N: {* u5 O& q5 x
实现动态连接
+ c# B% M" }" `- s: d& v- ]
) l9 m' }; N  `$ o% f[ 本帖最后由 gan5969 于 2009-6-16 12:50 编辑 ]
发表于 2009-6-16 13:02:38 | 显示全部楼层 来自: 中国北京

回复 11# gan5969 的帖子

对啊,我知道那个程序的作用,和手动加是一个效果。$ E3 I5 c3 a6 D3 Q* l
就是说想实现动态的话,需要把这个值和方程式连接起来,有方程式了才可以自动的更新,要不然的话,还可以使用宏来做吧,前提是你对VBA比较熟悉。6 g$ `3 E8 }0 v6 d- t
我对VBA不懂,懂的话,完全可以做到这样的,不过需要自己写程序。
头像被屏蔽
发表于 2009-6-16 13:06:41 | 显示全部楼层 来自: 中国广西桂林
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-6-16 14:49:14 | 显示全部楼层 来自: 中国江苏徐州
说的不错,我正打算学习一下编程。没办法,要用啊!
, L& @$ N& {# Y. M5 @& O呵呵,一切皆有可能。8 d8 `- S6 ~" M9 R7 G; H) o' w
只是现在,一时找不到相应的命令。
发表于 2009-6-16 17:24:34 | 显示全部楼层 来自: 中国北京
还得自己写程序啊!!!
 楼主| 发表于 2009-6-16 22:03:52 | 显示全部楼层 来自: 中国河北唐山
呵呵,不劳无获啊!
  \; }7 M" C3 m' Z: Z有这方面的高手,请现身指点一二。
发表于 2009-6-17 00:38:02 | 显示全部楼层 来自: 中国重庆
我觉得这个不是问题呀。
, i+ T, [# V+ B3 V6 j1 L* `你把那个运动部分都做成一个部件,在这个部件环境中插入一个点。这个点的坐标是以本装配的坐标系来建立的。运动仿真的时候,这个点自然跟着运动部件走的。; k; x2 t; M1 o1 `4 b4 g
另外,你要重心那个点,是不是想用它添加力什么的?
 楼主| 发表于 2009-6-17 16:35:36 | 显示全部楼层 来自: 中国江苏徐州
其实最终要求是:(一个或几个)运动部件位置变化,或某些零件尺寸改变(各种可能的重心改变),始终要求 3D草图点与 装配体重心 重合。4 J% K# d1 v) n% V! e4 T
  如计算运动过程中某一位置翻转力矩,就需要知道重心位置,当然还有其他。
 楼主| 发表于 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
% x9 `1 I) y9 a0 b0 H" E关键是接下来:如何在 刷新 后把获得的新坐标  赋予 原  已生成 的 草图点
7 P( `% w7 L; N3 Y, R9 Q- r6 w. e- c+ q! s' O5 E
实现动态连接。
$ I9 I9 s% \# [6 z6 l% p, I

6 k# R& L, G' U( N- Q; @& @在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
pic01.jpg
发表于 2009-6-19 09:07:15 | 显示全部楼层 来自: 中国广东深圳
在API中相关的说明如下:; i% S) M+ |+ e5 i( J( K
# z1 l6 }& D- y" ^) M2 Z4 ~
ComponentMoveNotify2 - AssemblyDoc Event; A2 o* F; U- O( l7 C

7 n0 ]- [0 g: W8 n2 p  }% E3 wDescription
+ S' ?0 z) t- J! c4 i2 C1 C" I  e/ \# F
Post-notification that is sent when a user releases the mouse button indicating that the components have been moved to the desired destination. 2 X7 t5 M  H+ {
  N8 ]5 F& o1 A- K( F# t2 w' \- Q
NOTE: If developing a C++ application, use swAssemblyComponentMoveNotify to register for this notification.- D$ c9 r* r& Q8 ^0 Z# K
1 w$ g% C3 B1 R1 E- g; j
status = ComponentMoveNotify2 ( Components As VARIANT) As Long
! |0 `7 ~* J) b2 U5 a3 U2 `' w- Q# Q# }  d
Input:: U  D$ O- C9 B$ V& |6 @
(VARIANT) Components
( b: N5 I0 z2 z! @ SafeArray of the Component2 objects selected to be moved: _% T6 l8 e5 a( |3 g# b3 K

6 X+ w1 E3 P& {1 k7 R# @Return:. C! D7 h' p0 F8 d. Q8 y
(HRESULT) status
. t4 g" k* f* ^  Y$ o! g- q7 [$ w; u 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
+ G' N7 h6 R, ]# A7 d 追蹤雁兄而來到這里來了
6 E( v2 b6 I, {0 k. v6 E% N
7 |. `% }0 h8 C- F5 B  @

- \2 G7 ?# L$ ~9 G头一次见闷大积分“如此低”,比我还低。:lol: 0 X- G, T) t( R6 P" q# b
嗯,看看时间,2009年6月19日11时38分,等以后看到闷大是我N倍分的时候不要疑惑哦,上述说法仅此时此刻成立!
4 z7 i7 S8 P5 Y# {# l% x& L( X: z! \, r9 C" x
[ 本帖最后由 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
6 X* G3 F$ y3 m8 ~
6 b7 e. R/ |0 M' N7 b7 J# o0 N! Q: b9 P' _0 Y/ e2 `8 d
在SW的宏中,有些东西似乎可以达到你的目的,可惜没找到使用使用方法。
: F, A" Y; m2 W7 T3 R! ^
& \) D. a$ C; `6 N0 H' k
偶还没找出头绪,也许半自动更新比宏特征更有利于计算、使用(⊙o⊙)。
发表于 2009-8-8 19:45:18 | 显示全部楼层 来自: 中国上海
做了个简单的例子
% a# v* B$ a) Q
6 I% `' L& A/ c' K$ i, ^利用 swAssemblyComponentMoveNotify 事件,
( h* ^% ]* g. P9 e: }& g
9 ]3 X& t; U% [6 V* G/ m; A当装配体中有部件移动时,即重新计算圆球坐标
: l; P" ]3 l5 @) u" T+ Q
5 }. L+ k& ?; O1 v/ Q- W4 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 )

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