PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[二次开发源码] NX 二次开发源码分享: 直接获取CAM对象类型 C#直接播放Jornal

[复制链接]

2018-6-1 09:27:40 2226 0

admin 发表于 2018-6-1 09:27:40 |阅读模式

admin 楼主

2018-6-1 09:27:40

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
NX 二次开发源码分享: 直接获取CAM对象类型 C#直接播放Jornal 就可以使用了0 N5 a$ E% z; U

( W- A3 X# t( b; t8 z[mw_shl_code=csharp,true]using System;
' q2 Y0 T+ S! J, ]- i: Musing NXOpen;8 s; X& U/ s: f8 E: e3 Q& Z
using NXOpen.UF;
. _2 G) W5 X6 w9 h8 \( Lusing NXOpen.Utilities;
- g* w% o- J& }  ]# n% Xusing NXOpen.CAM;$ @# Z, B5 m+ ?2 R
using NXOpen.Assemblies;
& i, ^6 C' @" r, t3 ?; }6 e& v
- f) z2 o7 P) \7 T8 ustatic class GetSubTypeToOperation
( e: w/ o' [+ C4 Z{( A( N( h4 Y1 p
    static Session theSession;
$ @+ N% N+ `+ f& E& `- U( {    static UFSession theUfSession;8 r$ l; M) |2 w  V2 q' H
    private static UI theUI;( }" W+ \# F) e( z0 q  m% v

. O" [; O  U- t/ U  r0 t' M9 |  u    public static void Main()
' ~9 B1 C$ l# @  G3 W# Y    {0 S- n9 ?' P& D% b
        theSession = Session.GetSession();( R0 L+ |5 I* o7 Q! }+ v
        theUfSession = UFSession.GetUFSession();
7 ~; P  X. w. g3 |9 Q. r2 U8 Q        Part workPart = theSession.Parts.Work;
: L6 ?: x# P4 |6 U$ `  K/ o, j3 p$ w        theUI = UI.GetUI();4 V* C7 \6 `  R/ R- x

! m1 }: q* G* n) ?        if (workPart == null)- S3 d3 L* J5 O( @" ?  P& P! U
        {/ X6 J3 x7 F" C4 N: \/ @
            UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, "A Part must be Opened.");
3 K5 q8 f6 D9 y! d# M$ f            return;
6 W5 h5 c9 _" e3 j8 `        }
! u  h0 s& r! c5 s6 H  D1 k# `1 `3 F6 t
        theSession.EnableRedo(false);* S9 o  r$ Z& j; B2 M4 T

* Z: p7 v7 d3 Z; ^5 C4 i        if (!theSession.ListingWindow.IsOpen) theSession.ListingWindow.Open();
: f/ w+ n& K9 X" V$ Y3 T2 C$ J0 ?' A. A" q+ _
        SystemInfo(theUfSession.Part, workPart);
6 F. X% c/ P# R" S- C5 d5 j
5 S/ i, ^! e, B" I7 i- u9 R        try
8 q$ b. P0 p8 E3 e        {8 {, K1 l) d' ?, E* B
            Tag[] operTag;; u) l* i5 D+ p& I/ V
            Tag setupTag = Tag.Null;
' o( C- K& X8 Y8 R" d. Z7 W- V8 |
' n9 s! g4 A4 a4 U8 `            int countObject = 0;. ?* F; u, H# a7 J, M+ [7 F
# v/ H: ^# E! |( r
            theUfSession.Cam.InitSession();
8 I9 N+ [. ~! ]- w+ P            theUfSession.Setup.AskSetup(out setupTag);6 v# ^/ h. {" X2 s6 Q6 E& k6 g& u
5 ^) {, ^6 t6 l- ~) j& |3 O
            if (setupTag == Tag.Null)
; |- j3 ~- u0 k. G            {
9 i/ B9 Q0 G. i/ O! z. `4 M                UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, "No Cam Setup in this Part.");
/ [# {, c/ {7 l                return;' [* }/ V3 U0 p* u" u' U
            }
- ~9 @1 _, h! w$ F$ [
, i1 T, H% t. [3 I- w            theUfSession.UiOnt.AskSelectedNodes(out countObject, out operTag);
$ P' V3 D+ I6 g/ N" c  q1 U/ ^: }6 }: c! `" ^
            if (countObject == 0)4 {$ q) s- y3 @1 @" i; w+ h
            {0 m$ d/ U. y' X2 A
                UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, "An Operation must be Selected.");5 O% Q$ i, A* D6 E/ A8 z; t8 t* |
                return;
5 \; V/ t# h% z" Z            }7 }+ N* Q, \) `

3 c4 y, |, ^" M" g0 v            for (int i = 0; i < countObject; i++)
  J8 ]) q  T! t6 d" G! {            {6 ]' ~% D% Q! Z" W# G$ F4 I  Z
                int type, subType;
2 t: K' S& [( Q! `6 R1 H; W
# c% r( m3 L/ d0 L4 f                theUfSession.Obj.AskTypeAndSubtype(operTag, out type, out subType);
+ w5 t5 L# d/ X; }) a2 g' r/ E0 V/ T* A' e  P  ~7 n- F% I
                NXObject camObject = (NXObject)(NXObjectManager.Get(operTag));
' v: `. C7 l, `8 N+ J
5 d, P3 ^) a4 Z1 i: o+ [, d                if (type == UFConstants.UF_machining_operation_type)
0 c4 E3 |! F$ |8 S: ?1 g" }* [                {& G; f$ r! r/ c$ a
                    NXOpen.CAM.Operation operation = (NXOpen.CAM.Operation)(NXObjectManager.Get(operTag));$ [$ Y* z, F0 B) }' R6 y3 j5 ?

3 ]6 }- L  Z1 S                    GetOperationSubType(operation);8 Q. R; j$ r3 q  i* P
1 U. m# z  j4 E' s$ z1 ]- L  T
                } /* if type */
4 z' l$ z: B* A$ w. O! \' P            } /* for int i = 0 */2 Y  Q  N0 k8 _
        }1 t" K* J+ Z, l1 A* f" p
        caTCh (NXOpen.NXException ex)& P0 ~* s) X* M4 y, c
        {6 h- Y1 W% p3 {6 k/ J" O0 m
            UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message);8 F' i4 ], V/ e0 S: U
        }; H5 A, E, @/ F4 R  N% R# W+ E
    }
/ q# E* b! Y8 o# ~, J5 d
2 t7 ]2 U- x  R. |
7 N+ e, z6 C2 V  L6 S3 Z7 L    /// <summary>. y3 w6 G  ^3 F& V0 F$ O
    /// Retrieve the Operation Subtype8 P5 H2 \- A, t' r
    /// </summary>+ M% S$ |% t8 p! C6 u/ |$ ]
    /// <param name="operation">The Operation to Query</param>- r: r* A+ V0 X6 J9 V
    /// <returns>Return the Subtype Operation</returns>$ p, W  _. Z  L! A; p' @  x2 g
    public static int GetOperationSubType(NXOpen.CAM.Operation operation); S- z5 s. G! a, l( v# _- q7 a
    {7 |- Z' w2 J) r' D, e
        if (operation == null) return -1;
7 W) w, L& c& v' `" V) `6 y2 W$ o% T8 F8 \& |2 e
        int type = 0;% s& K) K$ e; R% z+ P6 n
        int subType = 0;
: N7 }% Z$ k2 q4 A, R8 x  X; I
% L- B2 u) R% t; w# O, a" U        try; h2 n# u' b- F% A$ w) k" F
        {; F, G3 M$ x* G0 O7 R" o( Z
            theUfSession.Obj.AskTypeAndSubtype(operation.Tag, out type, out subType);0 a* V3 Q  V0 ^7 ]* _4 h  D+ Z% m
            theSession.ListingWindow.WriteFullline("Operation : " + operation.Name.ToString() + " -> Type " + type + " SubType : " + subType + " -> Operation GetType : " + operation.GetType().Name.ToString());$ x3 G( }; [$ }, u5 a) f/ C

1 l; v2 O8 E9 O+ p1 u            /* If needed to Switch to Operation Subtype (uf_object_types.h)*/3 d7 H1 K, r& o! @
            switch (subType)
# f/ c( ?) s* p% U+ l* R            {! B% `$ T0 r. w' R0 b
                case UFConstants.UF_mach_pocket_subtype:                /* Planar Milling Operation */
( C* V2 z0 x; [9 t                case UFConstants.UF_mach_cavity_milling_subtype:        /* Cavity Milling Operation */: p. m& A  d6 H9 \/ B& w( H7 p
                case UFConstants.UF_mach_face_milling_subtype:          /* Face Milling Operation */; m+ a1 `  L0 E! E1 `+ o
                case UFConstants.UF_mach_zlevel_milling_subtype:        /* Z-Level Milling Operation */
% y4 X8 H& K  k7 ?; ?, s                case UFConstants.UF_mach_groove_milling_subtype:        /* Groove Milling Operation */1 k. P& N4 f2 a* t* `2 Y
                case UFConstants.UF_mach_cylinder_milling_subtype:      /* Hole Milling Operation */1 h  x4 K$ ]8 H3 D
                case UFConstants.UF_mach_chamfer_milling_subtype:       /* Chamfer Milling Operation */
1 i, w3 h( ^) A                case UFConstants.UF_mach_radial_groove_milling_subtype: /* Radial Groove Milling Operation */
8 V4 t  n- y  ]  a4 Z                case UFConstants.UF_mach_surface_contour_subtype:       /* Fixed Contour Operation */
# U( q5 l+ r- a1 S1 s; S# A* _' E                case UFConstants.UF_mach_plunge_milling_subtype:        /* Plunge Milling Operation */" m- I) d4 e+ ~1 G+ R; x3 Y# O9 f
                case UFConstants.UF_mach_vasc_subtype:                  /* Variable Contour Operation */
$ ~  J3 @" {0 j! L: Y- D. T                case UFConstants.UF_mach_vazl_milling_subtype:          /* Z-Level 5 Axis */( I1 H3 n, b6 @* @7 X  E
                case UFConstants.UF_mach_thread_milling_subtype:        /* Thread Milling Operation */
5 r6 Q, n2 a8 W: P                case UFConstants.UF_mach_fb_hole_milling_subtype:       /* Hole Making Operation (Legacy) */( w( ^# I# R2 _6 A+ S) @3 y
                case UFConstants.UF_mach_hole_drilling_subtype:         /* Drilling Cycle */
1 k) X" l( K3 g* ~" Z+ b9 @) y                case UFConstants.UF_mach_mill_ud_subtype:               /* User Mill Defined Operation *// @$ y5 x6 j5 U1 u* U3 {: |7 P( F2 \
                case UFConstants.UF_mach_gmc_subtype:                   /* Generic Motion Operation */% {/ U4 m2 N5 }1 s" x" T
                case UFConstants.UF_mach_mill_mc_subtype:               /* Mill Control */
1 b3 T- X3 a% {  Y' c# R* d- ^                case UFConstants.UF_mach_gssm_main_op_subtype:          /* Sequential Milling */
1 R4 S* Z3 h% K# L' j  f                case UFConstants.UF_mach_hole_making_subtype:           /* Hole Making (Legacy) */( F* i* g9 w$ p
                case UFConstants.UF_mach_planar_additive_subtype:       /* Additive */
( t, w* L: v" {* n' [$ j3 ?% K0 c+ v) D9 i; _) R0 }4 A
                case UFConstants.UF_insp_tolerance_subtype:
" d+ M5 n8 r5 Q8 n+ l& H3 s                case UFConstants.UF_insp_path_subtype:2 P- z& |" f# K
                case UFConstants.UF_insp_output_subtype:5 F) y2 M) b9 x6 X; W1 ~- \
                case UFConstants.UF_insp_misc_subtype:1 [& a; P/ H) C) l: v
                case UFConstants.UF_insp_align_subtype:4 [- I1 v2 J( I, }" ~, v- r4 r9 R; ?
                case UFConstants.UF_insp_sensor_subtype:/ N1 g/ d  W; r5 Z4 S) S
                case UFConstants.UF_insp_construct_subtype:* o# Y# u) X/ z7 C
                case UFConstants.UF_insp_bounding_feature_subtype:: J7 q/ }( w4 T! R5 j( U
                case UFConstants.UF_insp_feature_subtype:
/ }8 V! @" ?8 [* ]" q5 t9 S1 g7 Y+ v3 l' K* o6 Z- f
                case UFConstants.UF_mach_canned_cycle_subtype:& ~  a- x1 Z1 ^; _0 b
- z, \. e% n# S+ b" s% U2 O* A
                case UFConstants.UF_mach_laser_teachmode_subtype:
: Y, v4 q: N& }# [" K' Z; T' }& C0 \  M1 q; n1 x) e
                case UFConstants.UF_mach_turn_roUGh_subtype:+ }! A, h- h& j' o9 V, y
                case UFConstants.UF_mach_turn_finish_subtype:
9 a" P( j5 _1 L" G                case UFConstants.UF_mach_turn_teachmode_subtype:# r1 `% K( T+ b1 V( Q' C" J
                case UFConstants.UF_mach_turn_thread_subtype:! `" I' P$ o( v3 G( D# P$ K1 l0 X. M
                case UFConstants.UF_mach_turn_cdrill_subtype:
3 Y& H+ h  s6 R( l6 b3 S                case UFConstants.UF_mach_turn_auxiliary_subtype:
3 [7 F3 `) P8 S) K                case UFConstants.UF_mach_turn_probing_subtype:
8 O+ ?* n9 _; ~$ W# Q( ]                case UFConstants.UF_mach_turn_tool_probing_subtype:
  U9 f' J7 d/ t8 t/ k5 Y                case UFConstants.UF_mach_lathe_mc_subtype:$ H! b' ]- F  k# B" [7 n" i4 e
                case UFConstants.UF_mach_lathe_ud_subtype:
+ E: [6 E( ^/ s8 [2 K: h0 `7 {: I1 w$ @
                case UFConstants.UF_mach_wedm_subtype:
# f, P& R4 e; e& s. R                case UFConstants.UF_mach_wedm_mc_subtype:
6 j- W$ m! v6 M                case UFConstants.UF_mach_wedm_ud_subtype:% |% \2 h9 l/ G! i; j5 J
                case UFConstants.UF_mach_mass_edit_subtype:
4 A' G: ]! l( a. W2 ?- l                    break;
. C% h' y4 g! d
4 Z  e. ]4 I9 Z. b                default:
5 [: B/ @# N: E- s4 ~                    theSession.ListingWindow.WriteFullline("Unknown Operation SubType.");+ v% i  e' ^% P& `- r  w* Z
                    break;
/ ^/ D6 I4 P' o$ u" x7 Z            }' T% r! ~5 k9 K2 g& `* i
        }$ G8 ~! r$ ^6 e8 h$ B; O
        catch (NXException nXException)
8 Y+ P6 }" L4 U8 v        {& o( I, I+ X8 w9 ^& R) L
            theUI.NXMessageBox.Show("Operation", NXMessageBox.DialogType.Error, "Unable to Query Operation. Error : " + nXException.Message.ToString());
9 v7 [% K, C0 F. t9 L8 G            subType = -1;$ A! {0 G0 ^  s
        }; f/ A: Q( ^7 u" R! n2 Y* T  [
! M8 t9 V( N5 B( g- J$ A
        return subType;
9 D2 Z4 J5 v. j    }
( [3 U! n1 ?+ K3 p3 Z3 Y7 D* Y  p
* G  u' V+ y! L+ d' ~' i/ q    /// <summary>( [1 m. h4 ?1 J# |. [, e
    /// Display System Information9 t' K  ~. ~- E- v
    /// </summary>
3 F5 j1 C1 e, H" j  b0 S) Y; ?    /// <param name="uFPart">The UFPart to Query</param>
. G3 R5 _" X' ?    /// <param name="workPart">The Work Part to Query</param>
8 b6 r6 {9 \  D    static void SystemInfo(UFPart uFPart, Part workPart)
- Y1 P% Q! ^2 Q* t. N* \- x    {' `( E5 y" O# v1 A* J
        try8 N1 B/ `3 G( T6 ~" |7 N7 N
        {
( [/ J# Q) q: z            SystemInfo sysInfo = default(SystemInfo);6 [& A7 g* p- v; \1 z
            theUfSession.UF.AskSystemInfo(out sysInfo);
& F0 L6 o7 P! Z, r. ~  ]/ j0 ?. i6 D! ~. D
            string partName = string.Empty;
1 b$ }9 N) U/ I7 _. R# k( t) G4 b            if (workPart != null) uFPart.AskPartName(workPart.Tag, out partName);
" n: Q3 q- S( g1 L7 O3 f
6 o% z) E# k, F  X- Y            if (!theSession.ListingWindow.IsOpen) theSession.ListingWindow.Open();
6 v3 O7 B6 Q2 N. S% y6 ]            theSession.ListingWindow.WriteFullline("============================================================");
/ P) O- ^$ Y, u: `6 U! ^            theSession.ListingWindow.WriteFullline("Information Listing Created by : " + sysInfo.user_name.ToString());
  l) l4 h" M& O- |6 E  T: y* y# p. S            theSession.ListingWindow.WriteFullline("Date                           : " + sysInfo.date_buf.ToString());; }- T: L8 ^) ?; _5 S, _( ]
            if (workPart != null) theSession.ListingWindow.WriteFullline("Current Work Part              : " + partName);
( X+ w& H) `0 a) D, _+ z6 ?2 K            theSession.ListingWindow.WriteFullline("Node Name                      : " + sysInfo.node_name.ToString());
' o# z  V/ k! c5 l            theSession.ListingWindow.WriteFullline("============================================================\n\n");) W4 S  R! I- e6 H  B1 h5 C
        }, f9 z* t5 I9 m+ d# r9 C6 a
        catch (NXException nXException)
9 [- c8 K& P- V9 `        {
; e2 H( ^( }* P2 u+ f+ O            theUI.NXMessageBox.Show("System Information", NXMessageBox.DialogType.Error, "Unable to Display System Information. Error : " + nXException.Message.ToString());) {* p- ]0 b# e3 l: v- m* Q8 K
        }
1 ]: X7 d& V2 d" k  \) Z    }
' n2 H. H7 U0 b3 m3 w% B$ ]/ P! {
    /// <summary>. a/ D, ]) s( x5 X
    /// Unload the Current Image
9 i6 d" p/ ^- b9 d) I    /// </summary>
( J# [3 V& B1 d! k& E( W) O3 }    /// <param name="arg">String Send by NX</param>
( g+ e8 [# M/ C! P    /// <returns>Unload Integer</returns>
, E% |$ D# Y9 A    public static int GetUnloadOption(string arg)
* \# q7 L' f) {4 Q+ l0 o0 N5 I    {
8 F) }* y! p8 I* [; J        /* Unloads the Image Immediately */$ X( v, f: Z- ?6 m8 C
        return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately);% Z% o0 V- h. h8 `( f  x: V4 W; o
2 p7 i7 \( g% z+ E+ R
        /* Unloads the Image Explicitly, via an Unload Dialog */, z  o+ u( l5 W$ n# k
        //return System.Convert.ToInt32(Session.LibraryUnloadOption.Explicitly);, a- B6 d/ U! n3 A
; R! p; H" T$ z' O( i8 s& }
        /* Unloads the Image when the NX Session Terminates */, u( ^# F- N+ E# }% g
        //return System.Convert.ToInt32(Session.LibraryUnloadOption.AtTermination);2 Z8 v* w7 D; W& t5 O" Y! s7 W
    }
$ O5 G# v9 c0 t( N}[/mw_shl_code]) H& ~/ o) Z4 E/ C+ l+ |" l
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了