|
在vb.net里面开发的一个函数
& v) v6 {' X: oOption Strict Off
6 C9 L4 y' ^2 g8 EImports System. g/ n( e% M7 R( Q X. Q
Imports NXOpen
' o" x$ H0 @4 g( H5 t RImports NXOpen.UF$ \4 U3 _& a! _$ k' H
Imports NXOpen.Utilities {) ^1 M# M8 B+ @$ U5 W
$ W6 ?" L+ m0 x( e
Module NXJournal
2 T7 _5 S8 R2 ZSub Main' G+ U! @6 \7 ]7 K2 R$ b
: D! ?1 p; e# p- S H
Dim s As Session = Session.GetSession()6 O/ w! ?6 K2 t- I+ t
Dim ufs As UFSession = UFSession.GetUFSession()1 R+ K0 D' K& E! j- J
; t0 s) q# ^+ y# T w7 W
Dim wp As Part = s.Parts.Work()" x4 Y. A& _" k" \: C* N) R- ]* z5 U
9 l/ P9 l/ y7 A) y" E/ n Dim cyl_feat_tag As NXOpen.Tag
7 @* l1 [; j3 |# D4 v& f; E Dim orig() As Double = {1, 1, 0}
" K7 i/ M; Y( c u- K/ u' f7 s+ T Dim dir() As Double = {1, 1, 1}
8 E/ w- E5 l7 k3 Y0 I, u
3 s$ y& I4 U) K5 j }7 H( E4 }, S ufs.Modl.CreateCylinder(FeatureSigns.Nullsign, Nothing, orig, "50","25", dir, cyl_feat_tag)
+ C* Z6 \$ O7 J1 p1 M
3 e7 ?. l0 m1 i" _ Dim cyl_body_tag As Tag2 V6 I+ o: P3 R# d+ E* k+ _
0 Y; b* Z1 L' S2 D ufs.Modl.AskFeatBody(cyl_feat_tag, cyl_body_tag)5 R9 j* H! F- M1 l, c7 d
Dim cyl_body As Body = CType(NXObjectManager.Get(cyl_body_tag), Body)
! A0 H. C4 L: _$ @) x/ Y3 s 1 t$ s. C1 u6 M7 ?
cyl_body.Color = 3 ‘ //更改颜色
* i# _# v/ q; Q. V: S* X cyl_body.RedisplayObject()- d9 k! j7 M5 `
End Sub S% B6 S- {7 c `
End Module
1 I- ?' E* k- E+ _. q我把它转换到c#里面遇到问题了! ?$ N9 ?( J/ ?
Session s = Session.GetSession();& t, s/ C* X7 Q, B/ P7 i
UFSession ufs = UFSession.GetUFSession();% r+ b! s9 t' t1 G" `' [7 E
/ i3 k8 g1 B* e+ ~7 r6 x Part wp = s.Parts.Work;6 g L* G6 M% n+ l6 m6 _
! W/ f+ l' i0 X+ t! b( | NXOpen.Tag cyl_feat_tag;
0 r4 l" R u, X4 ~: [7 ~, P" W NXOpen.Tag cyl_feat_tag2;
3 {' V# y L8 }% i) t. F Double[] orig = new double[3] {1, 1, 0};
8 N( T) G& o5 Y H1 _: R, y Double[] dir = new double[3]{1, 1, 1};
! i( P# a2 l6 F! F; X8 ?3 _9 M0 O try
! g- P" f! `( ^# t" D0 B* U$ X9 V {
0 N- b: \' K/ @0 x5 H" ] ufs.Modl.CreateCylinder(FeatureSigns.Nullsign,cyl_feat_tag2,orig, "50","25", dir,out cyl_feat_tag);
' k) C- T8 s* t$ J }0 i P, B, v$ o- \0 y4 l
catch(NXException pp)" U) T1 W+ v/ J4 d: l
{
/ x$ O g- v' E MessageBox.Show(pp.Message);$ ^; i7 K# P; v& R5 m7 t5 U
}4 k% S) d( A! t: f5 b
- b8 U* T( _' Y4 n
Tag cyl_body_tag;
3 q. U+ }; h6 Q4 r/ b4 E1 L0 f
& l) j5 K1 K$ w ufs.Modl.AskFeatBody( cyl_feat_tag,out cyl_body_tag);
8 q6 d) F$ b2 w2 I Body cyl_body = CType(NXObjectManager.Get(cyl_body_tag), Body);
2 t* e* i6 g$ w R- c" s
& K, O9 k6 J5 c cyl_body.Color = 3;
6 w7 l) j6 A: V7 g$ X5 h. s cyl_body.RedisplayObject();
( A2 ]% z' Z2 w5 ?2 Z; ~因为我查看了CreateCylinder函数在c#里面的api,第二个和最后一个参数均为tag枚举,我定义了两个tag,但是程序出现异常,我用null代替第二个参数,提示不能转换null为tag,我查看api里面的NXOpen.tag为枚举,但是里面的内容为NULL,就一个东西,还有后面的CType函数不知道怎么用,而且ctype函数的第二个参数为一个类不知道怎么转换了,那位达人能给我将vb的程序转换到c#里面,小弟将不胜感激,跪谢了 |
|