|
在vb.net里面开发的一个函数% u$ ^/ f+ ]; ?) b( c1 T
Option Strict Off+ u. ?4 Z% g* t0 {6 [
Imports System: I+ e7 u7 q- N
Imports NXOpen/ l+ `' v" L) J& h+ m
Imports NXOpen.UF7 i7 |" Q6 @4 F# O: _6 E
Imports NXOpen.Utilities. V5 x) y* U/ U/ v
# X9 Z4 L: X% l; jModule NXJournal7 O `$ y0 u. u Q7 b
Sub Main2 O, c. F% n8 l" F v4 A
$ v u3 R( f( }
Dim s As Session = Session.GetSession()
7 X- D' V& }2 f, {- I, d Dim ufs As UFSession = UFSession.GetUFSession()+ S- a) B: Y% ^: v: j/ @
7 W# [+ z- L- R, D. l7 G- E+ c Dim wp As Part = s.Parts.Work(): t: _6 w: Q Q( K1 n' J- l! Y2 `
9 ]" ^( l3 u' _+ Z
Dim cyl_feat_tag As NXOpen.Tag
1 w: X4 `) E$ U Dim orig() As Double = {1, 1, 0}# J2 Q5 c0 \8 ?) R) e2 N7 ^1 H$ ]
Dim dir() As Double = {1, 1, 1}' R7 U2 w2 x3 P
% e3 U" f+ \/ e i
ufs.Modl.CreateCylinder(FeatureSigns.Nullsign, Nothing, orig, "50","25", dir, cyl_feat_tag)
2 A; ^% s* O* Q5 i+ ?5 m$ E7 M7 H' J( I/ J- J
Dim cyl_body_tag As Tag
. b) P# a4 U9 X( b, ~
! g' C# G' ^, E; Z1 p ufs.Modl.AskFeatBody(cyl_feat_tag, cyl_body_tag)# h3 ?1 @" f0 L+ a+ r. i8 l8 }4 `8 m/ J
Dim cyl_body As Body = CType(NXObjectManager.Get(cyl_body_tag), Body)
/ K/ ^' {3 r) J% t, m0 q L$ a" T z0 v3 t: w: P6 y
cyl_body.Color = 3 ‘ //更改颜色
, F& m1 ]9 G' S# P7 y# P k# G$ P cyl_body.RedisplayObject()
! R. a8 A) D; XEnd Sub
& i, p! X k) a3 X1 XEnd Module
; T3 @( P8 b. m我把它转换到c#里面遇到问题了
) A5 y! h# F, O5 y* _& |0 W Session s = Session.GetSession();5 Q% q' @ m& b& d" ?$ k1 U. T
UFSession ufs = UFSession.GetUFSession();
* H1 F* _# r! j" L7 w# E. D1 K; j2 H' K4 U2 b
Part wp = s.Parts.Work;
$ ~5 n. D t. q o# I6 e1 `: \1 \8 Z
, a/ }1 a3 M( k7 Z8 z I% i NXOpen.Tag cyl_feat_tag;
3 t1 O# Y4 e! `9 L NXOpen.Tag cyl_feat_tag2; : T* s8 t' ]; r2 G
Double[] orig = new double[3] {1, 1, 0};' ^( I4 X9 d2 K4 Y( c3 p
Double[] dir = new double[3]{1, 1, 1};+ H2 w) Y# x. y; Y6 T7 X+ O8 U
try
1 W% E& G' J, _ {" R. y/ |' ]- O+ E0 c; ?1 K4 M
ufs.Modl.CreateCylinder(FeatureSigns.Nullsign,cyl_feat_tag2,orig, "50","25", dir,out cyl_feat_tag);* u0 h% m. P. H: `! g$ g
}/ z, Z9 a" L; V, _7 F
catch(NXException pp)
7 @ s( j& l$ b2 |$ v( v {
/ v- W* r# b# ]! H6 ^1 Q7 c7 ? MessageBox.Show(pp.Message);
: K6 d# z' a# D* R3 l4 d$ k }2 M! N/ ~8 I, x# s* ^' |
8 I/ J0 J2 X! w* Y8 g6 \ Tag cyl_body_tag;
1 ]; B5 Q/ H) e
( R* x% a2 m, b# k ufs.Modl.AskFeatBody( cyl_feat_tag,out cyl_body_tag);
& ^$ x" |4 x, y+ v! l' p Body cyl_body = CType(NXObjectManager.Get(cyl_body_tag), Body);
\ ~% b5 [) [' P - U3 O7 K9 D) R" k; x/ P) O- b) K8 Y
cyl_body.Color = 3;
+ g, C1 ^* G# C8 t cyl_body.RedisplayObject();
" m' Z" o2 Q( Z, S# C) L4 @因为我查看了CreateCylinder函数在c#里面的api,第二个和最后一个参数均为tag枚举,我定义了两个tag,但是程序出现异常,我用null代替第二个参数,提示不能转换null为tag,我查看api里面的NXOpen.tag为枚举,但是里面的内容为NULL,就一个东西,还有后面的CType函数不知道怎么用,而且ctype函数的第二个参数为一个类不知道怎么转换了,那位达人能给我将vb的程序转换到c#里面,小弟将不胜感激,跪谢了 |
|