|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& a3 \* _* ]! X5 t: N3 |NX二次开发源码分享: 在绝对坐标系和视图上点映射3 p0 z1 @; M/ u) b. ~3 o
& w3 k; ^6 ?* [
$ E# Y, y2 `$ i6 ^& k+ C7 [
[mw_shl_code=c,true]
' [4 h- R6 ^% d! h6 G( ~7 q* Z Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)
7 Q1 s W4 H- t$ c: d8 D+ P Dim vmx As Matrix3x3 = aView.Matrix" w0 M- ?' W" t
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
( j( m! n& ]$ g2 k5 ? Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}; h. |, j) Z& Q& G& T) `
Dim mx(11) As Double
1 z! ^7 Y9 S! l: g0 m% b* n Dim irc As Integer
# S$ @( h. P6 N. V8 y Dim c() As Double = {coords.X, coords.Y, coords.Z}8 y( l! w- h9 B' l8 {
# r- `4 Z$ u. Y# D2 r, c ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
* f1 k8 V, |# }# q$ Q- _ ufs.Trns.MapPosition(c, mx)
: \0 J' ^# {3 M8 I/ n( U
- W5 V. A, T1 j0 p* |' t) n5 T MapView2Abs = New Point3d(c(0), c(1), c(2))6 f: S+ K9 s, ]* _( K( d* ` v
End Function
' K# g6 {% F( {# F6 g! }( a p0 x' r, e( Q6 \& F
Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)
% w2 o7 d7 ~* p' p p6 O! U Dim vmx As Matrix3x3 = aView.Matrix! u# o) T, F- x
Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}( y" u( r( g! F4 @
Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}( T7 @3 u; X/ g- e. {; E* X4 s1 u1 C
Dim mx(11) As Double$ v( P$ H' B( j! n* F
Dim irc As Integer
, `( j" o- |. q0 X5 Y' T! X) v Dim c() As Double = {coords.X, coords.Y, coords.Z}, V ^3 @4 q. H$ P. F9 C$ D5 \
+ Y8 l6 |5 R( `! N
ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)
8 O# D/ L! v5 ]' \3 v ufs.Trns.MapPosition(c, mx)8 b$ `) M+ l0 X$ @" N; g- g
) J+ Q3 S! D: E2 Z( \6 n) A
MapAbs2View = New Point3d(c(0), c(1), c(2))
1 J8 s! `8 |: @& N; C4 z End Function
2 U" q" f, }- s[/mw_shl_code]: [" _1 C' }3 `5 v! H: l' A* o
|
|