青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 6640|回复: 6

[原创] C# NX OPEN 入门 经典源码

  [复制链接]
发表于 2012-5-13 14:28 | 显示全部楼层 |阅读模式
using System;  ( u! E) C" W8 ]5 u3 T, p: c. u8 B5 ?
using NXOpen;  : t! m4 J# u8 Q1 p# l
using NXOpen.UF;  
- c5 J: i/ b1 Q& w! s0 b$ n# Ousing NXOpenUI;  
3 S/ p) y" ^& Z  f  
  R* w4 t( F0 n0 \7 ]+ Z' m5 Inamespace C__test_01  
& `2 z, p; O) P5 x/ ~; Z' T{  
$ H8 ]# Z6 ]9 ], i) w4 E1 X    public class Csharp_test  
4 U$ X6 J8 g: T4 B  P. I2 O) g  C    {  " |' W: {) s- s; w  V+ r
        public static void Main(string[] args)  - g; h& }1 Y/ h. g; s$ s3 {* i7 N
        {  + x3 n* b' ]* n
            Session theSession = Session.GetSession();  
1 Q( o3 ^2 O* Y2 K& _6 @! j* G/ ?  g7 ^            UFSession theUFSession=UFSession.GetUFSession(); " c# |( u2 o/ p
             . }/ T+ ?; E% n8 P6 q* z
            UFUi ufui=theUFSession.Ui; ! H: w& i4 }5 k7 r& K9 W2 X
             - m" B6 M6 s( A& N8 H. L# [$ X
            Part workPart = theSession.Parts.Work;  
9 |" Q" v! [0 G' \5 \9 x' ?
0 ~2 V( |1 b. ^  v! d/ P            NXOpen.Features.Feature nullFeatures_Feature = null;  - f. ^- y) R0 ^; V4 E1 ~- a
  
5 b: k: |3 ~+ Q. P5 Z8 V            NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder1;  
& l" e6 ]% [; U. t( \8 s! W9 T            blockFeatureBuilder1 = workPart.Features.CreateBlockFeatureBuilder(nullFeatures_Feature);  & e5 i& ?8 v0 ^, q
  # ]# ]& `- U* P+ f" i+ ~
            blockFeatureBuilder1.BooleanOption.Type = NXOpen.GeometricUtilities.BooleanOperation.BooleanType.Create;  
, \( Q8 ], X7 |) g4 c) o; S  
1 _+ s5 k/ w! h3 z0 ~" C; V! M3 o            Body[] targetBodies1 = new Body[1];  7 s* n1 F: c" R0 b2 [" Z
            Body nullBody = null;  # k8 U' h" F' {2 O* ^
            targetBodies1[0] = nullBody;  ! W! }- U/ y( s& M' i
            blockFeatureBuilder1.BooleanOption.SetTargetBodies(targetBodies1);         //    不进行布尔运算
' V; H) }8 K" t) G1 V  / o7 H& L2 o/ j! e) C4 B3 X
            Unit unit1 = (Unit)workPart.UnitCollection.FindObject("MilliMeter");  
+ m  E! O$ M2 w0 j! m9 Q& u1 }  ; h- l4 f  A1 ~8 D- x
            blockFeatureBuilder1.Type = NXOpen.Features.BlockFeatureBuilder.Types.OriginAndEdgeLengths;  ' l6 l) z" g/ B+ B# ~' `4 k
  
! ^+ W  f0 ~8 U) _  j; J            //        使用点构造器创建点  
% d4 B9 m5 ^& M5 B) l+ s  i+ T            string cue = "请选择一点";  ) r/ h( `- T. x! A+ ]' ~, E6 y
            UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  + K. j. V2 Y- f2 q
            Tag tPt;  
) e1 f: ?  F+ m' C: d' X8 N            double []base_pt = new double[3];  9 o# v2 {& O9 K) s* c6 _7 F5 |; t
            int resp;  
. O- M% a% B- u0 ]% s6 l  
0 v$ P/ y3 c- e' q! }  q            ufui.PointConstruct(cue, ref basemethod, out tPt, base_pt, out resp);  3 r, ?! i( A. K( k* M% n6 _3 @& W4 U
             / z( w* s/ I$ M" N6 W
            //        输出坐标信息
) Z* b5 v0 j9 R+ U9 P- H4 E            ufui.DisplayMessage("x= "+base_pt[0].ToString()+"\ny= "+base_pt[1].ToString()+"\nz= "+base_pt[2].ToString(),1);  
9 \3 D, U* }9 [: q  
2 ~0 N3 i$ @" y" n+ [6 Q            Point3d pt = new Point3d(base_pt[0], base_pt[1], base_pt[2]);  / z3 u3 E& H1 P
  ' @  w  ?9 G% O7 k  o/ T( h! h
            //        设定原点和长宽高 , [  I3 ?* _3 J4 H, i
            blockFeatureBuilder1.SetOriginAndLengths(pt,"100","150","180");  
# |* D% ?- V* M2 m4 ~& @  
; t$ |  u# ^: u            blockFeatureBuilder1.SetBooleanOperationAndTarget(NXOpen.Features.Feature.BooleanType.Create, nullBody);  
3 l2 t3 F7 O  i7 G; E  7 _4 o$ }& s- a! G% C/ o% i$ O0 D! x# Q
            NXOpen.Features.Feature feature1;  2 x3 {* s+ B" U$ z
            feature1 = blockFeatureBuilder1.CommitFeature();         //    执行操作 生成block . V- G9 u& L0 U7 Q
            blockFeatureBuilder1.Destroy();  
+ \# N- u- L; y  a; _  3 m; \# a3 M" E; r, k1 [) i
        }  ( r, L7 [6 L. X# f
  
$ A, r1 Y, c5 F0 n        public static int GetUnloadOption(string dummy)  " w  x" Q" E, y* U( Q; l  ~* F
        {  
: y6 f+ n3 f+ K            return (int)Session.LibraryUnloadOption.Immediately;  # G: R6 B; U, i" N& ^: g
        }  
; E. v: [/ y! Q) b& |: P    }  / ~9 g0 i+ x2 u% k. T" P9 p
}  
* X9 h5 r9 U5 T* r: [   [/ z7 s) k2 F* A

; S4 H2 q7 Z4 \% ?1 |//     仅供学习交流!  (smthan@163.com
发表于 2012-5-13 17:10 | 显示全部楼层
先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:1 \! y) j6 M4 ?. M3 X9 H; p
001.gif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-5-15 14:45 | 显示全部楼层
ugdesign2 发表于 2012-5-13 17:10
, X1 V+ C2 [3 S- I& B先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:

' O. |& n3 S' c- [2 d5 i修改前:
7 L7 K  |/ H/ ?/ g2 m7 B' aUFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  
7 J8 y( o8 M2 m3 A0 W, @表示默认方式为光标点
$ j  k! e2 v1 m3 {, Y
# k1 j/ l" I; S! g) r- [1 v+ s2 K- _修改后:  e9 V. h1 b% I$ |
UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointInferred;  - J4 C) x) ~$ E3 F
表示默认方式为自动判断1 z' k9 P9 V1 B* X* ~
+ y& |0 u( Z+ r6 F: V3 T
其他的比如端点等都可以修改这个属性来实现   具体可以查阅帮助文档
' r+ O- Y3 v) w) e7 L( Y# U# {
回复 支持 反对

使用道具 举报

发表于 2012-5-15 19:34 | 显示全部楼层
本帖最后由 ugdesign2 于 2012-5-15 19:39 编辑
8 L/ i5 u7 _& S# K8 K  [5 s
612524 发表于 2012-5-15 14:45 1 D9 I, j% [! j8 S: S- \
修改前:
5 q, m/ R3 P/ d1 X' RUFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  
$ D& Q, [) N, V1 O) B* o3 q表示默认方式为 ...
+ v9 n! ?; F! f( N3 N. a
+ ~7 ]/ U! l2 B4 Q0 b5 y* n% f* b* X
非常感谢,现在明白了, i3 v; ?, `$ F( h, `
另问一下楼主那里有帮助文档下载?
8 j! g: k0 D& d- r- j9 L
回复 支持 反对

使用道具 举报

发表于 2012-5-20 11:23 | 显示全部楼层
请教C#中选择两个面,然后计算两个面的距离如何实现,能否帮助写个子函数的例子
回复 支持 反对

使用道具 举报

发表于 2014-7-7 09:00 | 显示全部楼层
ugdesign2 发表于 2012-5-13 17:10
6 z+ ~8 |6 A1 ]* }( C. ~" X先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:

8 w  x' U  Y4 Q2 ^/ C3 j请问大神为什么我编译完之后会出错啊!为什么我的引用会出问题有感叹号呢?是不是哪里的设置出了问题,求大神指导!!

编译出错

编译出错

引用有问题

引用有问题
回复 支持 反对

使用道具 举报

发表于 2014-7-30 10:56 | 显示全部楼层
感谢楼主分享~
+ y% S9 m5 s0 W2 Y$ K% a7 [7 F- D' f
话说,楼主的自动出图,不发表了吗?
/ |8 H$ `6 K6 I+ h+ q  G现在进展怎么样啊~~
: \' f: F* z$ p. x5 X
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-13 16:35 , Processed in 0.222324 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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