青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
发表于 2012-5-13 14:28 | 显示全部楼层 |阅读模式
using System;  6 `8 O3 e, i- n& C4 u7 H2 Z
using NXOpen;  & a, [( [! ~& v6 n# g% w9 h
using NXOpen.UF;  0 C" Q7 a; G9 D; [( j% |
using NXOpenUI;  
- S( D3 N: Z. c  o: ^  
. ]8 V2 n3 l3 R$ q: \namespace C__test_01  
, A8 ]7 O$ @: K! a! Y* _8 V{  
# R4 l, @; Z" e0 N6 t# P' R    public class Csharp_test  
1 k# B  E2 l/ w  }% I4 {: Z: v    {  
. x+ b  Z6 M: t: g: G: x        public static void Main(string[] args)  
% W  F" E8 v' q! ~2 V        {  + R6 m5 c0 O) Y4 S
            Session theSession = Session.GetSession();  4 c' ], s0 V9 H/ [
            UFSession theUFSession=UFSession.GetUFSession(); " x5 {* L2 b1 I4 q: R8 `# k
             & Z; \: C; m( k4 X/ y4 s* @- }  ~
            UFUi ufui=theUFSession.Ui; , M7 p7 Q. G' N; O/ l
             3 _# w; Y+ M" k9 Q* Q; A) v2 Y
            Part workPart = theSession.Parts.Work;  
6 ^! x' j3 e& ]2 n3 q/ V( C! D 6 B7 L6 ]8 \( h( p( G! u
            NXOpen.Features.Feature nullFeatures_Feature = null;  ! ?" ?% \  F" J3 x% o
  
; E- i7 L/ J) b- a! n5 ^! X            NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder1;  " j+ r  R  C, P7 c( Z# k5 {
            blockFeatureBuilder1 = workPart.Features.CreateBlockFeatureBuilder(nullFeatures_Feature);  
! l* E# Z; s, z6 w; K) o  
5 `/ G% M/ l1 y6 \8 v5 M0 P" W2 j2 m            blockFeatureBuilder1.BooleanOption.Type = NXOpen.GeometricUtilities.BooleanOperation.BooleanType.Create;    r: D" B) V% i3 g$ D" `
  + y( M& T+ z- R' s+ v+ x' ^, {+ W
            Body[] targetBodies1 = new Body[1];  
4 E$ S4 b& T. V            Body nullBody = null;  8 g4 j9 i3 @) l' Y* t% i
            targetBodies1[0] = nullBody;  : \9 d& _, d) F
            blockFeatureBuilder1.BooleanOption.SetTargetBodies(targetBodies1);         //    不进行布尔运算 + d. v# S! [5 H6 Y  n; D7 K7 g
  
$ m; T: q+ O" s6 k( l( o$ f            Unit unit1 = (Unit)workPart.UnitCollection.FindObject("MilliMeter");  
3 k6 U+ s  g$ U/ X2 ?+ V( o  5 Z- `0 _8 _! @0 W( X/ O6 H
            blockFeatureBuilder1.Type = NXOpen.Features.BlockFeatureBuilder.Types.OriginAndEdgeLengths;  
1 W7 P" i- k' U6 F4 }7 P9 D& ^  9 t! o5 o+ y& f9 V# C3 ?
            //        使用点构造器创建点  
" u& P( d& s& W5 o. {            string cue = "请选择一点";  
* A4 f8 f5 p3 s  ^            UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  
+ L, \  x% A  a! ^0 g4 G            Tag tPt;  & G" ]6 _$ }( Y; k
            double []base_pt = new double[3];  
, r$ j* m5 }+ z  w+ Z8 k( e3 x& ~4 U0 X            int resp;  ! e3 h4 C. [) e
  
4 Q# W" [* X' c( P2 K            ufui.PointConstruct(cue, ref basemethod, out tPt, base_pt, out resp);  
' k8 h# p+ \% V6 F# r            
9 I5 K) r- [6 K0 N/ @            //        输出坐标信息 9 U7 a; W; T6 c) P/ r) K: F/ D
            ufui.DisplayMessage("x= "+base_pt[0].ToString()+"\ny= "+base_pt[1].ToString()+"\nz= "+base_pt[2].ToString(),1);  
8 ]9 _0 O4 I$ ]! U1 c7 ^: @6 _7 ~  # E4 n6 \7 ?) V; h: j6 I0 t6 p2 J9 X
            Point3d pt = new Point3d(base_pt[0], base_pt[1], base_pt[2]);  . d- q  D- y7 l) [% D
  : _4 H0 O3 w/ d3 }3 b) e: e5 ]
            //        设定原点和长宽高 ( H) }, d( x( E3 _; S- O" n
            blockFeatureBuilder1.SetOriginAndLengths(pt,"100","150","180");  7 g" b$ h+ J$ E' J; j& x, @; T
  3 G6 j" K' ]5 L: D" T% ]
            blockFeatureBuilder1.SetBooleanOperationAndTarget(NXOpen.Features.Feature.BooleanType.Create, nullBody);  2 |9 f0 m- O/ q( H# e5 S
  
+ H6 X% [3 x; x: |            NXOpen.Features.Feature feature1;  
: S% O! v& L( H+ d  e) R            feature1 = blockFeatureBuilder1.CommitFeature();         //    执行操作 生成block
5 F% `. L$ a1 g( n( n- c8 @            blockFeatureBuilder1.Destroy();  3 E+ t, G6 D: g6 `6 x  _* J
  $ c( z4 u9 m9 r/ I4 r# o9 a
        }  
: F+ [! l1 |( m& g( I& I  
7 r1 {( B, K- T4 I        public static int GetUnloadOption(string dummy)  . M" n- v* l, ?: `9 n
        {  - T1 _, A$ A0 [! D* f
            return (int)Session.LibraryUnloadOption.Immediately;  ) p! P8 p+ ?) e& J* D8 {) Q* F
        }  
4 {) I& v* [; Z% y) V: ?( r3 I    }  
5 p8 t" b; A/ ?7 l! ?3 e& S}  7 `' {( p- Z5 D2 y
5 ]+ j2 g% ^" N8 U* i  H) c

7 @' ?) R* B" A, F$ F& Z1 s" j//     仅供学习交流!  (smthan@163.com
发表于 2012-5-13 17:10 | 显示全部楼层
先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:
1 `. r$ y7 R8 O  H2 W6 e- q% Q
001.gif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-5-15 14:45 | 显示全部楼层
ugdesign2 发表于 2012-5-13 17:10
% b5 K  G% L+ U2 @2 O/ g先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:
/ K  E. Z: k2 q9 I5 \
修改前:
8 F/ s( L: ^6 d" y6 H+ BUFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  
! w8 o' j( a5 t. S$ ], Z1 l表示默认方式为光标点7 F3 F* |- d" Z+ P1 I2 i7 D
4 I# k& Y6 O! \: \  r: W' Y5 e
修改后:
( e- o/ [. T0 Z1 S0 a  \UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointInferred;  , a# r0 \- B& L; r
表示默认方式为自动判断
) i& W. K% b& F- B. z
* ?  u1 K5 \" s其他的比如端点等都可以修改这个属性来实现   具体可以查阅帮助文档" s, T6 |+ M8 Z" c- d
回复 支持 反对

使用道具 举报

发表于 2012-5-15 19:34 | 显示全部楼层
本帖最后由 ugdesign2 于 2012-5-15 19:39 编辑 / U0 J& P2 b) o
612524 发表于 2012-5-15 14:45
7 I0 K$ _& ~9 x, o4 @修改前:
( }. d6 e+ h" h& TUFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  
% I! f* Q; _7 f5 ?' |5 ~- _6 b表示默认方式为 ...
/ P8 v- E$ ]& |/ f

' |6 ?% w5 ]- _/ V7 N* C$ l非常感谢,现在明白了
( j7 Q/ s$ r7 Z0 }# M- t- X另问一下楼主那里有帮助文档下载?8 v7 |) {9 }- l, I* A* p- }1 E
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2014-7-7 09:00 | 显示全部楼层
ugdesign2 发表于 2012-5-13 17:109 ?) ~. l3 J; H3 E! d2 b- ~
先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:

5 }9 q0 B' q; p* y7 A4 Z请问大神为什么我编译完之后会出错啊!为什么我的引用会出问题有感叹号呢?是不是哪里的设置出了问题,求大神指导!!

编译出错

编译出错

引用有问题

引用有问题
回复 支持 反对

使用道具 举报

发表于 2014-7-30 10:56 | 显示全部楼层
感谢楼主分享~
* q1 N' y+ p* i0 c# {9 P2 n* Q4 u0 }# R9 X  h9 C3 b
话说,楼主的自动出图,不发表了吗?0 i1 Y+ F1 N' c9 M
现在进展怎么样啊~~
* m3 M+ x, P- s7 m. r/ l' p% _
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 09:21 , Processed in 0.157980 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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