|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ H& y- ^ w g# t/ @NX二次开发源码分享: 在绝对坐标系和视图上点映射
/ g9 l! ]9 m9 v1 U" S! {; [& D& u: `7 B: ?, D4 p, Y+ U
) r% E* A: o- f' m0 C. ^
[mw_shl_code=c,true]
* P5 D" O, l2 h w Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)) S% [- n( t3 p, I
Dim vmx As Matrix3x3 = aView.Matrix
* ~$ x7 ]$ R$ s Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}/ D1 c* Z8 o& g S
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}$ c: u! n5 m" g9 i, e! {& l
Dim mx(11) As Double
6 q% {3 n0 y6 U' [7 z Dim irc As Integer3 z, @! _' ?0 p6 l1 U( \
Dim c() As Double = {coords.X, coords.Y, coords.Z}( |3 j( F1 J/ S) g. ~. s9 Q
. b: R1 U% I5 ?- l9 S- X+ o8 a ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
1 U# s$ ]! |6 @ ufs.Trns.MapPosition(c, mx)8 v: u" W3 g2 S6 J7 s: G. f G9 O
# W$ `) o3 K; B/ d: w& n" c; Q1 a MapView2Abs = New Point3d(c(0), c(1), c(2))# p8 E; \; n& z6 ~
End Function
) N( X9 A3 K9 ^0 d2 J
# y+ A" B8 }) \1 x0 e, q6 I2 _0 [ Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)4 o6 E2 B7 t' p* v
Dim vmx As Matrix3x3 = aView.Matrix* Y2 N5 c" P1 K- J5 G6 q& g
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}; k2 W& D. S" t' _# ]( P' t6 Z
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
& }9 p% g2 z* s3 q/ ` Dim mx(11) As Double" E$ F6 w" Z" e
Dim irc As Integer) l j- v" o9 A* t
Dim c() As Double = {coords.X, coords.Y, coords.Z}: B; R5 ~' |0 c% Z# \* N. K
* k7 O$ N' {3 O, Q- ?) V+ r( | ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)& C% E* M6 P9 s- m4 i# S3 {
ufs.Trns.MapPosition(c, mx)! h T+ B% f: r1 _0 c% o, {
$ m& @9 w$ F/ e
MapAbs2View = New Point3d(c(0), c(1), c(2))
- F6 m- v3 C0 h4 o4 l End Function5 T a9 n/ }7 n0 t1 Y. ~4 D
[/mw_shl_code]
3 f/ @% e' b3 l |
|