PLM之家-上海点团信息科技有限公司(doteam.tech)工业4.0数字化软件官方知识管理平台

查看: 689|回复: 2

[二次开发源码] NX二次开发源码分享: 在绝对坐标系和视图上点映射

  [复制链接]

2102

主题

3304

帖子

6万

积分

管理员

PLM之家mildcat

Rank: 9Rank: 9Rank: 9

积分
61701
发表于 2018-3-4 09:36:09 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有帐号?发邮件注册

x
- `( [- r% l# |. @, |6 \6 ~
NX二次开发源码分享: 在绝对坐标系和视图上点映射
1 e' S8 A1 P: n' a
" b+ h4 T( u" s$ q+ r. J, I( |$ l# }! X; T$ h& t, b# l8 B
[C] 纯文本查看 复制代码
    Function MapView2Abs(ByVal aView As View, ByVal coords As Point3d)
        Dim vmx As Matrix3x3 = aView.Matrix
        Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
        Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
        Dim mx(11) As Double
        Dim irc As Integer
        Dim c() As Double = {coords.X, coords.Y, coords.Z}

        ufs.Trns.CreateCsysMappingMatrix(vw, abs, mx, irc)
        ufs.Trns.MapPosition(c, mx)

        MapView2Abs = New Point3d(c(0), c(1), c(2))
    End Function

    Function MapAbs2View(ByVal aView As View, ByVal coords As Point3d)
        Dim vmx As Matrix3x3 = aView.Matrix
        Dim vw() As Double = {0, 0, 0, vmx.Xx, vmx.Xy, vmx.Xz, vmx.Yx, vmx.Yy, vmx.Yz}
        Dim abs() As Double = {0, 0, 0, 1, 0, 0, 0, 1, 0}
        Dim mx(11) As Double
        Dim irc As Integer
        Dim c() As Double = {coords.X, coords.Y, coords.Z}

        ufs.Trns.CreateCsysMappingMatrix(abs, vw, mx, irc)
        ufs.Trns.MapPosition(c, mx)

        MapAbs2View = New Point3d(c(0), c(1), c(2))
    End Function
: Z4 g% R# q" ?/ m
上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 发邮件注册

本版积分规则


<

QQ|小黑屋|手机版|PLM之家-工业软件数字化驱动之家-国产自主软件推进者 ( 沪ICP备13003373-3

GMT+8, 2018-9-24 20:39 , Processed in 0.129946 second(s), 30 queries .

快速回复 返回顶部 返回列表