找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 2575|回复: 8

[求助] 求助 nxopen vb.net 做出面与线的交点 出错

[复制链接]

8

主题

26

回帖

805

积分

四级士官

积分
805
发表于 2019-1-31 18:49:32 | 显示全部楼层 |阅读模式
提示:System.NullReferenceException: 未将对象引用设置到对象的实例
getpt.CreateSurfaceCurveIntersection(fa, cv.Tag, helppt1, helppt2, outpt) 这一行出错

Public Function createpoint() As Integer
        Dim theSession As Session = Session.GetSession()
        Dim workPart As Part = theSession.Parts.Work
        Dim displayPart As Part = theSession.Parts.Display

        Dim getpt As UFPoint
        Dim fa As NXOpen.Tag
        Dim cv As NXOpen.Tag
        fa=intface.Tag    'intface是选的面
        cv=intcurve(0).Tag   'intcurve(0)是选的线

        Dim helppt1 As NXOpen.Tag
        Dim helppt2 As NXOpen.Tag
        Dim outpt As NXOpen.Tag = Tag.Null

        Dim c1 As Double() = {-640, -409.326198682, 23.052587025}
        Dim c2 As Double() = {-640.0, -824.876391165, -13.940597438}
        theufsession.Curve.CreatePoint(c1, helppt1)
        theufsession.Curve.CreatePoint(c2, helppt2)

        getpt.CreateSurfaceCurveIntersection(fa, cv.Tag, helppt1, helppt2, outpt)

    End Function

8

主题

26

回帖

805

积分

四级士官

积分
805
 楼主| 发表于 2019-1-31 18:55:48 | 显示全部楼层
用ug 录制的  操作记录 好长,也看不懂,ug录制交点用的是Section,好麻烦

4

主题

158

回帖

5940

积分

上尉

积分
5940
发表于 2019-2-1 09:07:59 | 显示全部楼层
Dim c1 As Double() = {-640, -409.326198682, 23.052587025}
        Dim c2 As Double() = {-640.0, -824.876391165, -13.940597438}
        theufsession.Curve.CreatePoint(c1, helppt1)
        theufsession.Curve.CreatePoint(c2, helppt2)

这些点位是不是录制的,你没改啊?

8

主题

26

回帖

805

积分

四级士官

积分
805
 楼主| 发表于 2019-2-1 09:43:46 | 显示全部楼层
蓝摩羯 发表于 2019-2-1 09:07
Dim c1 As Double() = {-640, -409.326198682, 23.052587025}
        Dim c2 As Double() = {-640.0, -8 ...

我这里不是录制的,求交线需要两个参考点,随手做的,我想做面与线的交点。参考点能不能用空值?

8

主题

26

回帖

805

积分

四级士官

积分
805
 楼主| 发表于 2019-2-1 09:46:10 | 显示全部楼层
UFPoint 是个 Class, 网上说要先实例化,我总是实例化不了。。。

4

主题

158

回帖

5940

积分

上尉

积分
5940
发表于 2019-2-1 10:23:42 | 显示全部楼层
VB不会啊,你可以参考一下 UF_MODL_intersect_curve_to_face

8

主题

26

回帖

805

积分

四级士官

积分
805
 楼主| 发表于 2019-2-1 10:50:05 | 显示全部楼层
Public Function createpoint() As Integer
        Dim theSession As Session = Session.GetSession()
        Dim workPart As Part = theSession.Parts.Work
        Dim displayPart As Part = theSession.Parts.Display
        dim theufsession as nxopen.uf.ufsession = nxopen.ug.ufsession.getufsession

        Dim fa As NXOpen.Tag
        Dim cv As NXOpen.Tag
        fa=intface.Tag    'intface是选的面
        cv=intcurve(0).Tag   'intcurve(0)是选的线

        Dim helppt1 As NXOpen.Tag= Tag.Null
        Dim helppt2 As NXOpen.Tag= Tag.Null
        Dim outpt As NXOpen.Tag = Tag.Null
       theufsession.point.CreateSurfaceCurveIntersection(fa, cv.Tag, helppt1, helppt2, outpt)

    End Function

原来不用定义,在uf.ufsession 里,花了两天才试出来。

8

主题

26

回帖

805

积分

四级士官

积分
805
 楼主| 发表于 2019-2-1 10:53:13 | 显示全部楼层
蓝摩羯 发表于 2019-2-1 10:23
VB不会啊,你可以参考一下 UF_MODL_intersect_curve_to_face

谢谢!了,VC 我也不会,上学时早,只学过C,C语言我看到指针就头痛,所以我就改成vb 了

3

主题

167

回帖

2134

积分

少尉

积分
2134
发表于 2019-11-1 14:22:04 | 显示全部楼层
{:tongue:}{:tongue:}niu就是牛啊,没看看东
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-1-18 20:26

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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