|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
5 ~6 W; \* f; eNX二次开发源码分享: 在绝对坐标系和视图上点映射. D8 q4 h5 F G, a! O3 s4 q3 k
1 ]8 m0 _3 e! a/ l% R
8 g7 X: j$ k* Q3 _; m( G[mw_shl_code=c,true]5 f& v- A3 m/ V% R
Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)( Q( l$ b4 Q: C: n
Dim vmx As Matrix3x3 = aView.Matrix
4 L$ v, `! M' ]% g7 l2 W4 V2 f Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}* U& I2 ^+ [/ n1 l
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
8 j( `3 _! a% h; Z* @4 n Dim mx(11) As Double/ w7 U8 ^6 X/ u' K5 ^% d, z
Dim irc As Integer- @& A, k% ^* R. |+ e B
Dim c() As Double = {coords.X, coords.Y, coords.Z}( ?. |# g3 G& t" ?
# s3 G' O" W" a4 | ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
- V/ A7 T! |* @( J) f1 w Y ufs.Trns.MapPosition(c, mx)# n; v4 o2 V4 f# g4 |7 P
& s$ K1 u0 G1 W# e MapView2Abs = New Point3d(c(0), c(1), c(2))
2 ?' x! P2 a: ` End Function
, C4 ]/ c- f; \0 `7 e. V
$ {% |1 y% I- V2 Z) a+ J5 B Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d) S, U6 d; A1 A1 U
Dim vmx As Matrix3x3 = aView.Matrix, p9 a: S$ W# _
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}8 O8 h7 t9 ]1 y$ W; Y
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
/ e" X) U: H5 Y1 Y8 S5 a! O/ Q Dim mx(11) As Double
0 O _1 I' h. a, ` Dim irc As Integer; p+ V7 v7 e8 o" i
Dim c() As Double = {coords.X, coords.Y, coords.Z}
) L) v t7 e4 t" @7 z* R, _* `3 R- n. y1 n+ X. W4 e
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)$ P: M2 ?, H- z% b# h4 U1 d: P
ufs.Trns.MapPosition(c, mx)4 n7 z7 C) y$ ]$ [
2 L7 F" Q) F1 V8 b1 q* u& t
MapAbs2View = New Point3d(c(0), c(1), c(2))" y! \- N4 k6 O: u+ m+ O% I
End Function
4 l$ M) n! I% f+ x9 B$ F/ v# L[/mw_shl_code]
, V1 G/ P$ n+ x |
|