青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
发表于 2012-5-13 14:28 | 显示全部楼层 |阅读模式
using System;  
: ^: V  @7 {  @" O+ G) X5 [using NXOpen;  ; {! `# p$ t- {( B# E/ e
using NXOpen.UF;  
/ A- e" ?5 j4 ]0 ^using NXOpenUI;  * y& |/ o% b3 d6 ~* P- L
  
5 J9 v/ V* j& K. \% G3 z8 R% rnamespace C__test_01  
! E3 T: |0 }! p{  
0 v/ s3 T4 I- R9 Z% v3 {    public class Csharp_test  
4 z" t' q4 P& y+ j5 ]    {  
$ ?/ G2 q& o5 o5 s# K$ m        public static void Main(string[] args)  : v0 b3 }* c/ D8 d
        {  1 s/ _) E& @4 \7 {& I0 l; Q
            Session theSession = Session.GetSession();  1 b+ r% g1 ?# N' y4 V
            UFSession theUFSession=UFSession.GetUFSession();
: x/ q, @# u+ o6 j. i6 K4 m            
! A' q. L# n7 b& |) i# V            UFUi ufui=theUFSession.Ui;
/ X; g# c4 C# N9 ?            
4 l3 k& B6 u$ n% h  f) G            Part workPart = theSession.Parts.Work;  
0 t6 ?: a! c" O1 t; ?
% _$ m# l" p% ?; j5 W" n/ i$ |$ Q            NXOpen.Features.Feature nullFeatures_Feature = null;  % T- l. @5 M8 N' ~2 B8 w) w
  - Q1 B2 k4 l1 S, s6 p9 T4 Y
            NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder1;  : x! q6 D& R  b  o. D4 a
            blockFeatureBuilder1 = workPart.Features.CreateBlockFeatureBuilder(nullFeatures_Feature);  
7 i( g4 w% b' y. @! ]+ J3 y  
1 f$ A' v6 m7 T            blockFeatureBuilder1.BooleanOption.Type = NXOpen.GeometricUtilities.BooleanOperation.BooleanType.Create;  3 Y! U6 B* \6 H- x: ^0 O
  5 x/ ]( ]' X% @; \
            Body[] targetBodies1 = new Body[1];  
  {0 ^) g8 K4 l6 H+ g4 L8 P            Body nullBody = null;  6 U7 e9 A7 q9 ~" U
            targetBodies1[0] = nullBody;  
% f; M: u7 q; J: J% ~2 h9 a; A            blockFeatureBuilder1.BooleanOption.SetTargetBodies(targetBodies1);         //    不进行布尔运算 , \& `! K: ^; F) j- _
  
0 X: i. E( r. U% _. z/ Z* A: E            Unit unit1 = (Unit)workPart.UnitCollection.FindObject("MilliMeter");  % W# n3 m2 ^& |: H; m" S. {
  $ a! b# }* b: A3 l$ s
            blockFeatureBuilder1.Type = NXOpen.Features.BlockFeatureBuilder.Types.OriginAndEdgeLengths;  
- m) C% _1 H- H  p/ [+ [3 u% }  
) d7 y( g9 T( n, @0 H            //        使用点构造器创建点  
& \1 b# ]. {3 I! [. m; B            string cue = "请选择一点";  
3 o! o$ u: |0 J9 {            UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  
' R- g: G1 ^: C0 x' _9 n            Tag tPt;  
4 y! b/ l  e( q; J* t: m" y: x+ N9 [            double []base_pt = new double[3];  
7 `+ ^3 j5 ~# b$ P' I! C            int resp;  * Q; V& w/ Y* N0 P( x) u
  
; W$ G# }7 {( D            ufui.PointConstruct(cue, ref basemethod, out tPt, base_pt, out resp);  
: |9 }7 R. s* I; \; R$ O" o             7 l$ n% m& a3 d
            //        输出坐标信息 3 i8 i4 K& B& H( |9 }' I
            ufui.DisplayMessage("x= "+base_pt[0].ToString()+"\ny= "+base_pt[1].ToString()+"\nz= "+base_pt[2].ToString(),1);  
- H! R9 S$ g  Z/ i1 K' m$ {' U  
; I( I2 M5 W- v$ u2 F            Point3d pt = new Point3d(base_pt[0], base_pt[1], base_pt[2]);  ; d5 c1 ?0 X( ]* J) c9 _
  
" ]4 v5 o% c* G! P* ~* M7 D            //        设定原点和长宽高
5 [" _8 y$ K% Z$ _  l$ {( b            blockFeatureBuilder1.SetOriginAndLengths(pt,"100","150","180");  6 P4 t; n$ I: |) b9 x! M- I: y: I; z
  
( b4 @8 M$ e* s4 k( B; J            blockFeatureBuilder1.SetBooleanOperationAndTarget(NXOpen.Features.Feature.BooleanType.Create, nullBody);  
3 y  D1 d# [; \, j7 X- p# m$ H" j  
# r) V' ?4 i+ }            NXOpen.Features.Feature feature1;  
! [. Z5 T% A7 f/ B* ~            feature1 = blockFeatureBuilder1.CommitFeature();         //    执行操作 生成block
& g  P( i" i) h  W( w& O. ?            blockFeatureBuilder1.Destroy();  
4 _0 U3 a3 ~9 b! ^) `# C6 }, p  
5 `; W1 I5 `( M% o0 E        }  / e( z9 g9 e$ t" }
  
; R& q: w5 X, |0 R- y3 f' L        public static int GetUnloadOption(string dummy)  ; K' Y, T7 k$ ]$ S, O) s2 x+ r
        {  
% h. J- y, P* u! z$ ?            return (int)Session.LibraryUnloadOption.Immediately;  
8 q0 F: S; Y$ Q+ w; Z* V# L        }  
' m4 c: ~0 |  m  k% J0 }    }  $ S( H% s/ q6 ^0 O; y
}  
! Z6 E8 e- U7 F; B 6 [' X+ j: x9 w; R) p2 J  M% s
) Z; E2 D) N) i; H
//     仅供学习交流!  (smthan@163.com
发表于 2012-5-13 17:10 | 显示全部楼层
先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:0 L. e* F6 p: F9 E
001.gif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-5-15 14:45 | 显示全部楼层
ugdesign2 发表于 2012-5-13 17:10
+ Q; Y7 m8 p# [先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:
& N) n+ c7 ^7 d. _" O8 y, F& j
修改前:  O4 ~" |1 v. q: u* k9 Z) |  ^
UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  - D  D( L; l* `  m
表示默认方式为光标点
0 s# v4 g; L/ t& l4 h8 i! d
: o- C/ \: Q4 q修改后:+ A' V' K: l  {8 f3 t& C
UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointInferred;  
& X) R7 y' L7 P) W2 Q+ t2 v6 i& l表示默认方式为自动判断
2 l9 I/ G. m0 m6 y3 q4 w/ x6 A* @0 x
其他的比如端点等都可以修改这个属性来实现   具体可以查阅帮助文档1 Q0 e8 M4 r% ~" q& a
回复 支持 反对

使用道具 举报

发表于 2012-5-15 19:34 | 显示全部楼层
本帖最后由 ugdesign2 于 2012-5-15 19:39 编辑
; }5 v' i% t' _, F7 q6 X* x9 K6 O1 t
612524 发表于 2012-5-15 14:45
. h* ~3 l: q  J# _1 Y" J, h修改前:
& \: \( s3 z4 i/ d3 ^UFUi.PointBaseMethod basemethod = UFUi.PointBaseMethod.PointCursorPos;  ) [- q/ R- e2 p8 }! ?: d, i
表示默认方式为 ...

, P9 p2 a$ o2 \- a8 E5 m3 q- ^% t+ h8 J
非常感谢,现在明白了
* w8 h; W# T4 r$ C" g另问一下楼主那里有帮助文档下载?1 Z/ i" y/ y( B& W: s1 g( Z: j
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2014-7-7 09:00 | 显示全部楼层
ugdesign2 发表于 2012-5-13 17:10+ V4 v4 p/ Y7 P; h3 O/ M
先感谢楼主了,这个例子真是我们初学者的福音,另测试了你的代码后,再请教如下图片的中一个问题:
) |# J( j  r' T
请问大神为什么我编译完之后会出错啊!为什么我的引用会出问题有感叹号呢?是不是哪里的设置出了问题,求大神指导!!

编译出错

编译出错

引用有问题

引用有问题
回复 支持 反对

使用道具 举报

发表于 2014-7-30 10:56 | 显示全部楼层
感谢楼主分享~. S9 l/ ~8 x6 ^* _, p( i

. {8 N+ K( A+ _话说,楼主的自动出图,不发表了吗?
+ r% o# T. s  A  ~& R; g# }+ x9 G现在进展怎么样啊~~
8 d% M, |9 J0 Q* \
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-4 16:40 , Processed in 0.058767 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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