|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 R9 h- o; E$ P; p! w( t' q
NX二次开发源码分享: 在绝对坐标系和视图上点映射
& }, k; U' D" E2 i0 u' O) B) I' e+ L! J" L! ]1 ~3 M
6 R# j3 b. o' `
[mw_shl_code=c,true]) A5 V# W9 u) \6 D+ U* ]) }. s5 l
Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)
1 Y+ V: x: Q; J/ V+ ~3 d Dim vmx As Matrix3x3 = aView.Matrix9 k( y1 a7 l, ]9 h5 r
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}3 q4 J; G9 _& I, w1 `
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}. x& t: |; Q B
Dim mx(11) As Double9 w3 T& S) h A- ]3 p8 |7 E
Dim irc As Integer
+ n5 [3 }7 o) X% [- ^) v; | q) B! _8 M Dim c() As Double = {coords.X, coords.Y, coords.Z}
( Y0 k6 A4 f5 U; t
: H+ e N9 J, R j ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
c, @- O+ g& O [! U9 K& P% v( ] ufs.Trns.MapPosition(c, mx)
0 ]% }1 p& u" z0 ~7 m2 I# {+ p7 ^% C$ r/ {
MapView2Abs = New Point3d(c(0), c(1), c(2))
- R- z! ^3 i! l5 i End Function$ \% B( Y" o0 m6 c! d g
) j) k% y' C: @) @: d' {' p
Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)2 j1 C% B) S& n, i9 A0 z( n
Dim vmx As Matrix3x3 = aView.Matrix
6 R2 a& }: H7 E4 }( U6 p Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
7 h6 O" y+ E1 }+ Y8 `; ^$ P9 R( k3 @ Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
/ n+ M: b+ J" E# @7 e7 C' c Dim mx(11) As Double& ], ?3 e2 v6 w2 O
Dim irc As Integer
Y5 u2 I( n" a+ H8 L7 c Dim c() As Double = {coords.X, coords.Y, coords.Z}
5 x/ H, Q. d Q: p1 Y% N0 [0 p( g4 y5 B0 B |( A
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)* N+ y/ ?, F8 b/ F. R
ufs.Trns.MapPosition(c, mx)
/ s7 B) R1 N( ]( u7 a0 _4 ^" w& b# T r
MapAbs2View = New Point3d(c(0), c(1), c(2))
; `: s" P( S. k3 {4 | End Function- h ]' a- T5 d1 {* u' `. U
[/mw_shl_code]
; W) _$ A U. G& g# ^ |
|