|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ s! F9 q3 M$ {NX二次开发源码分享: 在绝对坐标系和视图上点映射/ U2 p8 C! P4 P; v. w2 n; c
0 J) b" o$ Q, V- d* _
+ n- H9 A& {1 t- x' Z# N$ M6 |
[mw_shl_code=c,true]
! g( F6 Q0 Q1 G1 a* D. m Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)
, @, \9 v2 S1 ]' B, s7 u1 I Dim vmx As Matrix3x3 = aView.Matrix, z2 d9 i# h! t. Q o, y+ b! M
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
7 x& L$ q) Z, S" e1 z' C Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
1 ^ g! F5 R) `( ? Dim mx(11) As Double4 w s) ?* c# ?" ~6 E L' V" q' B
Dim irc As Integer6 y' B5 t$ V# C2 Y& v+ L
Dim c() As Double = {coords.X, coords.Y, coords.Z}
) `9 w' T9 a4 Q& Y4 H, J0 @! m
/ {5 I2 E6 I! \9 X6 J$ a3 T& L ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
! o+ A% L4 i* L. w) y5 Q1 v+ t ufs.Trns.MapPosition(c, mx)9 M7 Q( I9 O* V. T
: t* D: o( }9 u, \% {" E, O" D MapView2Abs = New Point3d(c(0), c(1), c(2)); H0 G5 T1 A. V, A; w
End Function
; ?: B7 X+ j4 n) `1 J% Q
( W; ^/ o3 _( K c) K4 V Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)* D+ ~& ^3 l' d! l; o( @
Dim vmx As Matrix3x3 = aView.Matrix j$ N. Z& f+ p
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
- X, v2 a4 W1 J& p5 ? Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
0 N8 _3 D: O! ] z1 p Dim mx(11) As Double& B* K, s2 k( B5 n9 E
Dim irc As Integer
$ Z. u/ a% }2 l5 p/ @( o5 \, i Dim c() As Double = {coords.X, coords.Y, coords.Z}! l1 N6 h% p6 l$ v& P1 s/ o
2 _3 E1 F) C8 u1 X7 F: R
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)3 b& z& _% t2 T1 P' S! `
ufs.Trns.MapPosition(c, mx)8 L0 S$ F8 l4 s* n5 h$ n
7 J) c* E; Q5 Q1 @* Y! l& h MapAbs2View = New Point3d(c(0), c(1), c(2))8 D- h. }7 T1 @' ]" @
End Function6 @# p! S4 E j4 N
[/mw_shl_code]0 ~9 X6 m$ f4 m( F% I6 j8 _
|
|