|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
; Z! D6 e4 j, w' m/ U& l
NX二次开发源码分享: 在绝对坐标系和视图上点映射
# U; e0 I4 j0 `0 R
; I* D3 E; Y/ m: a2 \4 [
# p; J5 p% J- t1 m, T3 a[mw_shl_code=c,true]5 j) s, f, U" l _: R% b1 N
Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)8 t* W! P! w. C$ U5 ]
Dim vmx As Matrix3x3 = aView.Matrix
$ S% i) o+ |% v/ c, X Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
6 x1 W- _# ]0 l* F; C4 X* c Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}6 C3 C' q3 c! P5 N6 w6 o" v* Y
Dim mx(11) As Double
; `. M; C$ d5 V5 V Dim irc As Integer* w* V1 R# C/ {) _3 z- N. C
Dim c() As Double = {coords.X, coords.Y, coords.Z}
& B6 Z' t' F; [! {* w1 v- O+ s* x2 K, e0 n" U0 d: S6 a
ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)& r6 l- T% V% z' N" o0 `; Z
ufs.Trns.MapPosition(c, mx)
1 P& Q. _* {* \# L& U5 F% Z1 s% }! r [! ?8 o" q% x3 X
MapView2Abs = New Point3d(c(0), c(1), c(2))( A/ {/ h2 H& S: W' w
End Function5 K3 s1 V$ {/ c* y3 [7 q& L
) c: c6 p/ `7 T4 g5 k
Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)
) V) W4 X0 V1 z2 R6 T Dim vmx As Matrix3x3 = aView.Matrix, p6 H! J( J* R3 g
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}# i/ Q" Q2 B" F
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}. ]' ]: ?. g$ _2 ^: n
Dim mx(11) As Double
D/ t' o; w4 |' d% L/ f( b Dim irc As Integer& {- K0 q0 }* e( {% S& `
Dim c() As Double = {coords.X, coords.Y, coords.Z}: l. b" j" o4 C" p5 ~
' O" z7 X0 Z# F4 l% Z& f3 \
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)
. k; T! `, b) [+ k/ K( u ufs.Trns.MapPosition(c, mx)# z( X1 e4 m+ R3 k9 k
3 ]9 B$ a# C7 E$ F6 ^$ M MapAbs2View = New Point3d(c(0), c(1), c(2)): G$ g$ O y* s' g" E2 o8 N
End Function3 {; U* y& N; b: V. ^8 o
[/mw_shl_code]' X, _. g' a8 j# g# Q
|
|