青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2010-9-26 11:37 | 显示全部楼层 |阅读模式
请看下面的子程序.& j( V( L7 v- F3 y) v+ e
目的是对全局变量arrCurves()内的曲线对象进行两次变换.
+ t# o7 A2 W* F! Z: N然后,建立回转体.
; s; c* m3 K: m1 I
# L! X! W9 v# U7 c  ?) Y问题是,建立第一次变换矩阵成功后(status1=0),不可建立第二次变换矩阵.$ z- P3 V8 ~: G4 }2 ]4 b% w* z! E7 t& p
否则就出错.奇怪?
8 ^& ?7 G( `( l# ^若将第二次变换代码删除,程序可顺利运行到下面的变换代码,但提示出错./ W: C' d2 N. h% v; W
看一下ug界面内的运行结果.是变换成功的.那为何还要提示错误呢?1 \2 D2 K* T. ~1 F' B3 n
建立回转体是不可能了.
( o' I5 a! S$ o5 s$ n! w& ~9 C! Y7 t0 h" G% l, d& F
请高手指点,不甚感激!' J1 f/ _, E, [1 O- c- G

( F1 c: i( _. J" R* o, iPrivate Sub CreateRevolveSolid(ByVal Ang As Double, ByVal sp As Point3d, ByVal ep As Point3d)7 ~& z% b! s+ P- k; ^9 s/ s1 R
        Dim objTags(100) As NXOpen.Tag
; y# F. Q, }4 I9 U1 x9 e2 N2 E        Dim i As Integer# r9 K% ]7 P# v5 ?
        For i = 0 To arrCurves.Length - 1
8 z4 H) b' O$ U' n7 c2 |" u            objTags(i) = arrCurves(i).Tag/ V' E+ y' k% W9 j& b9 X# f- y5 k
        Next$ Z* o  p8 T; L2 {' l
        Dim origin(2) As Double1 L" \8 q- E" \7 G* g& r1 F! l" c& O
        Dim origin1(2) As Double; `2 F, H. `# \( |" B
        Dim origin2(2) As Double7 w( P' y# ~3 C0 `# E2 C
        origin(0) = 0 : origin(1) = 0 : origin(2) = 0
; M1 H( k- S0 n. ^8 Z1 Q        origin1(0) = 0 : origin1(1) = 0 : origin1(2) = 0% c- U' g; O: O! \7 A
        origin2(0) = 0 : origin2(1) = 0 : origin2(2) = 0" D5 v( Q' U6 L/ [( G( X
        Dim direction(2) As Double
/ _( A8 l; H' j: @" S! Y        Dim direction1(2) As Double$ R5 D, H/ u# [& H' K  ~
        Dim direction2(2) As Double
- ^! i! [: _5 [3 N; z; w        Dim mat As Double
% W. J) r& M! X7 ]& w6 n3 W! v        Dim mat1 As Double
1 d8 R1 ]0 h: O% i! s, K        Dim mat2 As Double/ Z3 h2 y% O' A- G1 G3 q# m
        Dim status As Integer5 d& S1 \0 R# Q- Q. Q- T. X: ]
        Dim status1 As Integer5 v* M; Z+ Y7 a; p$ x$ V0 {: e
        Dim status2 As Integer" X7 }  G5 Q  f
        Dim Features(100) As NXOpen.Tag
8 c. b/ {; N$ ~        Dim copies(100) As NXOpen.Tag5 Y8 x( S2 _5 Y# \4 r* t3 G
        Dim ang1 As Double = 90
; e: t# b7 ]2 P9 h        Dim ang2 As Double = 90  l# K0 t9 S* S2 s- v' t2 E# `
        direction1(0) = 1 : direction1(1) = 0 : direction1(2) = 0
1 v# [- ?- J& R9 C1 j& l: S$ u        direction2(0) = 0 : direction2(1) = 0 : direction2(2) = 1
  F, a  j7 M8 Q4 G9 ^* p) N        '构建第一变换矩阵, r' E/ F) [; [# X' g5 O: u
        MsgBox("Matrix1" & status1.ToString)
6 }2 @% j) M" \        ufse.Trns.CreateRotationMatrix(origin1, direction1, ang1, mat1, status1)5 I1 V! l1 ^  M0 F; o4 _7 f
        MsgBox("Matrix1 status" & status1.ToString)2 L; |- F/ u) `
        '构建第二变换矩阵: y) [* }& Y$ [
        ufse.Trns.CreateRotationMatrix(origin2, direction2, ang2, mat2, status2)
  ^  b$ P' B& k7 {! f/ }- m        MsgBox("Matrix2 status" & status2.ToString)
: F$ A( j) C1 G* G9 h        ; [5 i: ~) t, ]) B0 k
        'ufse.Trns.MultiplyMatrices(mat1, mat2, mat)
( B8 s( U# e$ {, ]' g# \+ X        '变换
3 J$ z" V* U# ]& x5 Y7 y        MsgBox("transform1")
, K  }6 y  ^7 R9 e9 E        ufse.Trns.TransformObjects(mat1, objTags, arrCurves.Length, 2, 0, 2, copies, Nothing, status)
4 Z# {! |" |) K  k. d/ S        MsgBox("transform1 ok")
2 W" R# }& @1 L        Dim limit(1) As String
$ ?0 D4 l& M5 H        limit(0) = CStr(-Ang) : limit(1) = CStr(Ang)
! A- l. u: x3 c5 L3 `4 j  u& S        Dim offset(1) As String7 q) S+ B/ [2 i
        offset(0) = "0.0" : offset(1) = "0.0"
4 X7 w6 y3 O6 J4 l7 U6 c! e8 |        '生成回转体& c5 |3 s3 C" H5 I
        Dim cou As Integer, h) G( x1 d! N! s
        MsgBox("revolution")
1 i. v6 s; d  d: V5 x# A        direction(1) = 0 : direction(2) = 1 : direction(3) = 05 g9 D+ G* `+ F6 p8 ?3 n% l
        ufse.Modl.CreateRevolution(copies, arrCurves.Length, Nothing, limit, offset, origin, False, True, origin, direction, FeatureSigns.Nullsign, Features, cou)0 A) f$ b+ [+ p5 C- A+ ]& {
    End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 10:39 , Processed in 0.052124 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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