青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 1794|回复: 0

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

[复制链接]
发表于 2010-9-26 11:37 | 显示全部楼层 |阅读模式
请看下面的子程序.$ R4 j; ~6 s$ L, c" E/ {
目的是对全局变量arrCurves()内的曲线对象进行两次变换.) L" u; V) z, T" C" R" \
然后,建立回转体., h" T4 V( W- h' I4 |* }) w
9 b) D- |. D+ ~! Y+ }+ C& E
问题是,建立第一次变换矩阵成功后(status1=0),不可建立第二次变换矩阵.2 q& q9 l4 o" b8 i: r
否则就出错.奇怪?7 f" o3 D" E4 D6 V* x: }" ^0 |
若将第二次变换代码删除,程序可顺利运行到下面的变换代码,但提示出错.: Z0 r! v0 l! \$ s& t3 l- X; E& ^6 k9 r
看一下ug界面内的运行结果.是变换成功的.那为何还要提示错误呢?
  }7 s, m2 u5 {' Y建立回转体是不可能了." @1 D. r% n7 \5 \9 s

7 c4 \% c4 B4 |& q2 [请高手指点,不甚感激!7 ~( w! ?# k" Y+ p7 l& h" D

9 F6 N9 ]3 C! B( S; gPrivate Sub CreateRevolveSolid(ByVal Ang As Double, ByVal sp As Point3d, ByVal ep As Point3d)
' y% M( v% \# ^% k; y6 }2 h        Dim objTags(100) As NXOpen.Tag* e5 S0 A  I& _3 m0 q
        Dim i As Integer
8 _2 |. t* e( x2 l4 c2 t/ o        For i = 0 To arrCurves.Length - 1
( F* E2 T, Z+ x            objTags(i) = arrCurves(i).Tag% B( ~7 N0 M" v; G+ f7 p7 H) r
        Next
1 }: N& u( b- g& o! B$ O        Dim origin(2) As Double
" i. a" D2 }( G$ W- N        Dim origin1(2) As Double
- c) t6 _! x  B4 L0 j* h        Dim origin2(2) As Double+ d* C( r9 |+ B5 F% q
        origin(0) = 0 : origin(1) = 0 : origin(2) = 0
  l- k; R6 I& ^% Y. `        origin1(0) = 0 : origin1(1) = 0 : origin1(2) = 03 j0 a# |2 A) U1 H
        origin2(0) = 0 : origin2(1) = 0 : origin2(2) = 0
  f6 [" d% V: h! Z) o( A        Dim direction(2) As Double
0 {* h8 h' S& @6 e# z' M9 E        Dim direction1(2) As Double" [! R' h- d0 E( W' J
        Dim direction2(2) As Double
0 `/ |; a3 q, V% \  |- p, s        Dim mat As Double
  C9 X4 J( e: v; Q        Dim mat1 As Double: y) c* O) L/ q# z- j* K% |2 m% N
        Dim mat2 As Double, X8 {! e# c* K6 x) x
        Dim status As Integer
' O1 z; z* a' h1 Y3 u& H( I& Y        Dim status1 As Integer- ~: n5 ]" L, {. ]. T
        Dim status2 As Integer. r0 J2 m. D* C( w! |
        Dim Features(100) As NXOpen.Tag9 U# x2 |, q) D: F4 |8 q
        Dim copies(100) As NXOpen.Tag
- d% |2 K  m% m# D7 E3 _' F        Dim ang1 As Double = 90
$ N+ S( w0 g/ C: [) h        Dim ang2 As Double = 90
$ w0 d5 A% p6 c( D+ U* S& H        direction1(0) = 1 : direction1(1) = 0 : direction1(2) = 0
. S3 c/ g; I: c  o# W  h        direction2(0) = 0 : direction2(1) = 0 : direction2(2) = 1
# N- H- t' c! \7 X        '构建第一变换矩阵
5 J. h! t  _6 G& m" _$ O' D        MsgBox("Matrix1" & status1.ToString)- t% u% ^0 Q4 Y% R
        ufse.Trns.CreateRotationMatrix(origin1, direction1, ang1, mat1, status1)
! V# J3 R- [9 |# ]- h: h3 {        MsgBox("Matrix1 status" & status1.ToString)# h6 l! c9 p$ g8 v% @7 ?# {0 D
        '构建第二变换矩阵
2 P/ T* P. s& ^/ l# I* d1 ^        ufse.Trns.CreateRotationMatrix(origin2, direction2, ang2, mat2, status2)
  {. ~7 Z* t; Z  ~# F% q0 |: c        MsgBox("Matrix2 status" & status2.ToString)& T$ n6 {& C& r
        
7 t% m1 {2 @. ^1 P        'ufse.Trns.MultiplyMatrices(mat1, mat2, mat)
% m- P7 J: Q# {5 J5 T# S+ c        '变换: u& _, @0 G* ^, A# _  j) B
        MsgBox("transform1")6 N2 G% i  k, t. N
        ufse.Trns.TransformObjects(mat1, objTags, arrCurves.Length, 2, 0, 2, copies, Nothing, status)* J  x' n1 M. }: G% G* X5 \
        MsgBox("transform1 ok"): A) u% J4 X- B" [. Q
        Dim limit(1) As String0 [9 O. |3 |  n, L0 ~
        limit(0) = CStr(-Ang) : limit(1) = CStr(Ang)- x# I; n. R1 w! g) Y, A
        Dim offset(1) As String
; @  t+ [1 N, S$ O- {0 I3 K& F        offset(0) = "0.0" : offset(1) = "0.0"( L" r4 T( Y" g
        '生成回转体7 J2 i! K( {6 c/ h8 |: v9 h0 [
        Dim cou As Integer
7 `% Q; Q8 [8 w2 Z: y        MsgBox("revolution")+ ?- D5 A# I; W  f4 S
        direction(1) = 0 : direction(2) = 1 : direction(3) = 02 ^% T7 E+ z* o
        ufse.Modl.CreateRevolution(copies, arrCurves.Length, Nothing, limit, offset, origin, False, True, origin, direction, FeatureSigns.Nullsign, Features, cou)8 O, p2 f% v5 }  f6 q
    End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-2-19 07:03 , Processed in 0.049753 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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