青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2010-9-26 11:37 | 显示全部楼层 |阅读模式
请看下面的子程序.
# w% |; ^7 ]# j4 C目的是对全局变量arrCurves()内的曲线对象进行两次变换." z6 n$ M$ A! ]
然后,建立回转体.( X- ?3 [! T) e3 E
. ]' D8 U8 Q# i) F% M& G. k
问题是,建立第一次变换矩阵成功后(status1=0),不可建立第二次变换矩阵.
1 R1 S& w! f! Y5 b5 _- _& p否则就出错.奇怪?8 u0 A1 h2 z' W( f: a" Z
若将第二次变换代码删除,程序可顺利运行到下面的变换代码,但提示出错.* W0 p% V' b3 T* t
看一下ug界面内的运行结果.是变换成功的.那为何还要提示错误呢?
- |& D& x. y% h+ P& h$ k9 k. C建立回转体是不可能了.+ h) U9 C; n4 C$ C' x

3 A- t- x0 S  z) j4 l3 j; q/ O" `请高手指点,不甚感激!# m% o. ?9 C! d

+ L6 w! v; r/ D7 M6 MPrivate Sub CreateRevolveSolid(ByVal Ang As Double, ByVal sp As Point3d, ByVal ep As Point3d)! y" p. D( l; T4 N) E4 E
        Dim objTags(100) As NXOpen.Tag
4 @: u* \  Z) X2 x, t        Dim i As Integer* p5 B5 S+ `3 c& m
        For i = 0 To arrCurves.Length - 19 F- K- {  d6 Q% w! J9 I+ o7 }, t
            objTags(i) = arrCurves(i).Tag2 u, b& d  l0 x' w4 p4 h6 d
        Next
9 }  |3 h9 O- P( R! {2 o  }2 F. I3 `        Dim origin(2) As Double, g8 v3 l, T( h
        Dim origin1(2) As Double
+ d9 Q* v6 w7 {+ r& h        Dim origin2(2) As Double8 j) g' x" _+ C5 J/ D; G8 Y& H
        origin(0) = 0 : origin(1) = 0 : origin(2) = 07 x4 i! z( _0 L, y% n
        origin1(0) = 0 : origin1(1) = 0 : origin1(2) = 0# w4 d9 [$ o* X- H. D4 u0 y
        origin2(0) = 0 : origin2(1) = 0 : origin2(2) = 0
% T$ Z9 M5 w3 S! W        Dim direction(2) As Double
! ?- V# |8 _6 `! I        Dim direction1(2) As Double# p& o$ I# Z/ K0 I0 Q  Q* y
        Dim direction2(2) As Double
! g7 Z% E6 d1 i" L        Dim mat As Double
, _: H5 y. ^; j2 R3 E5 m) J' u        Dim mat1 As Double* b- g. N. B+ H# ?- ^6 w9 ]
        Dim mat2 As Double2 {+ L1 O2 F1 y8 @* h
        Dim status As Integer& |) _+ r( i! Q' O$ v. D
        Dim status1 As Integer8 f. w9 d" L8 M! F+ w6 D' V1 U
        Dim status2 As Integer
5 u" K% V! q3 S- ~/ q0 F        Dim Features(100) As NXOpen.Tag
, @5 J/ @. Y& r+ [; ~        Dim copies(100) As NXOpen.Tag) q& a5 f* B3 A- Z8 |+ J
        Dim ang1 As Double = 90+ R( h3 l( C! c. Y. S! d7 @  z
        Dim ang2 As Double = 90( y: y" P- p; y# Q+ U7 y; I" Z7 z
        direction1(0) = 1 : direction1(1) = 0 : direction1(2) = 0
8 Y9 b9 I& e! Z        direction2(0) = 0 : direction2(1) = 0 : direction2(2) = 1
& `- U# h. X" }+ _4 U- `' _        '构建第一变换矩阵
1 J8 \6 B8 b* b% N# ^# W# z        MsgBox("Matrix1" & status1.ToString)
; \: l/ X2 |5 S1 |& }: o6 Z        ufse.Trns.CreateRotationMatrix(origin1, direction1, ang1, mat1, status1)
" c1 X8 i/ ]( `  J- p4 F        MsgBox("Matrix1 status" & status1.ToString)
6 w! }( k% C& e) i; z, r" u        '构建第二变换矩阵& c3 h4 I! m* Z% J' i6 @
        ufse.Trns.CreateRotationMatrix(origin2, direction2, ang2, mat2, status2)8 {7 u. l2 O5 E, n
        MsgBox("Matrix2 status" & status2.ToString)
+ @, p" b% j: K1 q        
  C0 X% L# q; J4 {* M        'ufse.Trns.MultiplyMatrices(mat1, mat2, mat)! w$ Q9 w, M6 Q( m* g2 D6 o
        '变换
% D- n/ U( v& o+ _4 Y4 i        MsgBox("transform1")
, E* ?3 z* U  g; {* j. P" a, m        ufse.Trns.TransformObjects(mat1, objTags, arrCurves.Length, 2, 0, 2, copies, Nothing, status)
( X: N* n  G% h* D1 ]' t6 `: _  R1 v        MsgBox("transform1 ok")
. i. G3 L% n& w. \- Z+ A1 B        Dim limit(1) As String
/ H, X8 u# A2 {- H6 k8 ]        limit(0) = CStr(-Ang) : limit(1) = CStr(Ang)6 q6 W" B. b4 @' d1 s
        Dim offset(1) As String$ D3 b, q  F4 B0 q2 @
        offset(0) = "0.0" : offset(1) = "0.0"
# }& o9 `0 k/ S! \' j% f" l  |: l        '生成回转体; K. M5 P5 M  \
        Dim cou As Integer
) r3 f6 A; C! i" z& k) Q0 J        MsgBox("revolution"), u/ e" J7 j  }; k: J/ m! \
        direction(1) = 0 : direction(2) = 1 : direction(3) = 0
+ o% N% I( q/ y+ D) Y  P" e8 Y. i        ufse.Modl.CreateRevolution(copies, arrCurves.Length, Nothing, limit, offset, origin, False, True, origin, direction, FeatureSigns.Nullsign, Features, cou)
7 y: ?8 L8 h: _; @  j/ ^0 y9 H    End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-19 06:58 , Processed in 0.065918 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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