|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 Q9 W- s- ~. _: a6 Z, }5 ?NX二次开发源码分享: 在绝对坐标系和视图上点映射
$ c9 f5 [- @: P1 j1 h Z% }% x9 D0 g
* `0 i: O9 C5 Q$ l! Z) X
% r: A0 |' J* m& V2 o4 U[mw_shl_code=c,true]0 T) l% @; }5 v3 N+ T
Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)9 U9 {* R2 N( u0 G
Dim vmx As Matrix3x3 = aView.Matrix4 @2 M3 M4 n* w! [1 X
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
4 x+ K# ^* @8 a! y! A. z Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}, \$ X( e9 i3 K5 d7 F0 W
Dim mx(11) As Double
' V+ u( k3 J: e0 C+ l: @, n Dim irc As Integer( b0 K/ R7 j# i/ A
Dim c() As Double = {coords.X, coords.Y, coords.Z}
0 ?3 o9 k* E! d% O* @. w& H
/ X2 _, r% v/ ]9 K ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)( D2 N" ^0 I( F
ufs.Trns.MapPosition(c, mx), ^. M' w& j: f# X' J# F9 y
6 [ ]' t: O, F0 U5 `/ x! d( i MapView2Abs = New Point3d(c(0), c(1), c(2))
; X+ C" d& l( { End Function
7 M. k$ I6 T& H, q. b5 Y
+ T7 l4 }# ?. z2 w/ B. B$ _ Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)7 g; o' M" Z- O9 {) @& G n9 J
Dim vmx As Matrix3x3 = aView.Matrix! j7 ?+ j" g! X5 Y
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
6 a: g' Q' @6 M) j% K9 B' x Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}8 ?/ m' e( a" w( p0 k* t
Dim mx(11) As Double! s' Y' P/ q1 |+ n3 g: R
Dim irc As Integer& x6 R# i$ V: ]
Dim c() As Double = {coords.X, coords.Y, coords.Z}* j. d k( }( X" O5 A. F6 ~6 p
( L% V6 I. u0 ]3 X
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)$ I6 I: [0 g; S4 l' o
ufs.Trns.MapPosition(c, mx)
. \/ `) i3 ~# @/ D' g
' P" \+ w1 [5 S2 Z/ J% c MapAbs2View = New Point3d(c(0), c(1), c(2))
/ l8 s0 K7 z1 w6 A End Function
- l4 Q) q/ f* R" ~[/mw_shl_code]& m0 Z- a5 G( w, w
|
|