青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2406|回复: 3

[疑难] 如何设定一个实例或者事例绕着特定点旋转。

[复制链接]
发表于 2011-3-16 19:19 | 显示全部楼层 |阅读模式
对很多人可能很简单。 prt文件通过这个函数加载:UF_ASSEM_add_part_to_assembly (part, partg, refset_g, instance_g, opointg,   k" m- S' F# t
matrixg, layerg, &instancel, &error_statusg);
- M: `* G; T8 F4 t$ J8 U0 C
3 o) V7 D" A7 l% v然后希望这个实例能够绕着特定点及轴线旋转,
6 x& z& j8 g; m& Y0 }% S采用以下过程:
1 {/ T/ d) V2 Z0 t. [double csys_origin[3]={0,450,150};6 v2 e/ Y+ P2 k0 r3 ]& B
double
5 F8 a6 B3 [2 a) o# Y" dnew_origin[3];) R, Q8 `( }- _  {. @! A

5 Y0 t) u7 E/ @9 d- Q( Itheta[1] = 135;7 M# N) H& [+ U
% [  k* L3 |; D. x
UF_MTX4_rotation(csys_origin,rotateaxis[1],theta[1],matrix[1]);//获得旋转矩阵matrix[1]; t! m3 }  Z/ Z2 U5 W6 a* S9 Y

+ `( A  H5 Y6 a; v. a* v% a; |6 D# {然后matrix[1]中的16个元素(matrix是二维数组,16列)7 R- p4 l& m& x0 d- d( ?" X9 o
new_csys_matrix2[0]=matrix[1][0];& ]- I$ H% v% k
new_csys_matrix2[1]=matrix[1][1];
+ p  F6 W$ _4 Unew_csys_matrix2[2]=matrix[1][2];
; b' b( N2 s$ s  \- I7 V( Q! j3 fnew_csys_matrix2[3]=matrix[1][4];
. k  s- y' M5 k3 A" G" z9 r$ anew_csys_matrix2[4]=matrix[1][5];% [+ b& M4 Z8 H0 h# H4 U5 |( y9 M3 z
new_csys_matrix2[5]=matrix[1][6];
8 d! h* m, a9 n5 J$ ~+ h- D! Dnew_csys_matrix2[6]=matrix[1][8];5 L1 R) Z2 M0 o, G/ m: V+ K9 V
new_csys_matrix2[7]=matrix[1][9];" c7 I/ w5 n3 k$ h. S
new_csys_matrix2[8]=matrix[1][10];
1 O+ M4 {* r( k8 U" z3 N" _new_origin[0]=matrix[1][3];
( ?) i) J; ^  {3 [new_origin[1]=matrix[1][7];9 I: J) q  h% y* e
new_origin[2]=matrix[1][11];
/ X: y" w- g' l' `7 D
, ?) H+ A% D/ T% w% `9 b. {/ C  {1 H7 @  i# r

/ c4 P$ C  C% r6 j然后UF_ASSEM_reposition_instance(instancel,new_origin,new_csys_matrix2);
1 W' B4 i; \7 n+ D$ n% O本意是让构件以csys_origin[3]={0,450,150}为中心点旋转的
" t6 G1 |7 V$ Q! ^$ m但是结果是:部件的确转动了135°,但是却绕着WCS原点转的。+ I% o0 X; D2 U7 K6 l2 C8 D  ?
而{0,450,150}变成了沿着X/Y/Z轴的平移量。
+ c8 H, U: g, X% J' U如何才能使其绕着特定点旋转呢?
3 \4 V& x* }* H% d$ y4 s过程如何?8 u' c( ^1 e# I2 m
谢谢。
发表于 2011-3-18 13:35 | 显示全部楼层
服了你了,什么破问题。呵呵呵。一看就知道数学学得不怎么地。呵呵。好好学习一下齐次变换矩阵的知识把。me:@593939109
回复 支持 反对

使用道具 举报

发表于 2011-10-27 09:52 | 显示全部楼层
楼上 讲清楚啊
回复 支持 反对

使用道具 举报

发表于 2011-11-2 21:08 | 显示全部楼层
使用 UG OPEN API  旋转函数就搞定了。呵呵,好久没有上论坛了饿,今天过来瞄一眼,呵呵
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-7-3 07:27 , Processed in 0.099524 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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