找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?在线3D打印服务,一键上传,自动报价 
查看: 16722|回复: 0
打印 上一主题 下一主题

[求助] vb.net调用ufun函数遇到的问题,求解!

[复制链接]
跳转到指定楼层
1
发表于 2010-8-13 11:14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
请看下面的子程序.
目的是对全局变量arrCurves()内的曲线对象进行两次变换.
然后,建立回转体.

问题是,建立第一次变换矩阵成功后(status1=0),不可建立第二次变换矩阵.
否则就出错.奇怪?
若将第二次变换代码删除,程序可顺利运行到下面的变换代码,但提示出错.
看一下UG界面内的运行结果.是变换成功的.那为何还要提示错误呢?
建立回转体是不可能了.

请高手指点,不甚感激!

Private Sub CreateRevolveSolid(ByVal Ang As Double, ByVal sp As Point3d, ByVal ep As Point3d)
        Dim objTags(100) As NXOpen.Tag
        Dim i As Integer
        For i = 0 To arrCurves.Length - 1
            objTags(i) = arrCurves(i).Tag
        Next
        Dim origin(2) As Double
        Dim origin1(2) As Double
        Dim origin2(2) As Double
        origin(0) = 0 : origin(1) = 0 : origin(2) = 0
        origin1(0) = 0 : origin1(1) = 0 : origin1(2) = 0
        origin2(0) = 0 : origin2(1) = 0 : origin2(2) = 0
        Dim direction(2) As Double
        Dim direction1(2) As Double
        Dim direction2(2) As Double
        Dim mat As Double
        Dim mat1 As Double
        Dim mat2 As Double
        Dim status As Integer
        Dim status1 As Integer
        Dim status2 As Integer
        Dim Features(100) As NXOpen.Tag
        Dim copies(100) As NXOpen.Tag
        Dim ang1 As Double = 90
        Dim ang2 As Double = 90
        direction1(0) = 1 : direction1(1) = 0 : direction1(2) = 0
        direction2(0) = 0 : direction2(1) = 0 : direction2(2) = 1
        '构建第一变换矩阵
        MsgBox("Matrix1" & status1.ToString)
        ufse.Trns.CreateRotationMatrix(origin1, direction1, ang1, mat1, status1)
        MsgBox("Matrix1 status" & status1.ToString)
        '构建第二变换矩阵
        ufse.Trns.CreateRotationMatrix(origin2, direction2, ang2, mat2, status2)
        MsgBox("Matrix2 status" & status2.ToString)
        
        'ufse.Trns.MultiplyMatrices(mat1, mat2, mat)
        '变换
        MsgBox("transform1")
        ufse.Trns.TransformObjects(mat1, objTags, arrCurves.Length, 2, 0, 2, copies, Nothing, status)
        MsgBox("transform1 ok")
        Dim limit(1) As String
        limit(0) = CStr(-Ang) : limit(1) = CStr(Ang)
        Dim offset(1) As String
        offset(0) = "0.0" : offset(1) = "0.0"
        '生成回转体
        Dim cou As Integer
        MsgBox("revolution")
        direction(1) = 0 : direction(2) = 1 : direction(3) = 0
        ufse.Modl.CreateRevolution(copies, arrCurves.Length, Nothing, limit, offset, origin, False, True, origin, direction, FeatureSigns.Nullsign, Features, cou)
    End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-9-20 18:38 , Processed in 0.022754 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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