PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

热图推荐

[二次开发源码] NX二次开发源码分享:NX10可以直接对资源条进行二次开发

  [复制链接]

2016-3-8 12:00:27 21197 41

admin 发表于 2015-3-27 11:17:17 |阅读模式

admin 楼主

2015-3-27 11:17:17

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

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

x

; n& h* s, t/ B+ Y( Y0 q
8 c: ]# A9 S2 h4 i/ p

9 j1 q  B- X" M! k# f8 N' K# _0 g

3 |7 c( E4 ^1 E* O+ [+ ZNX二次开发源码分享:NX10可以直接对资源条进行二次开发8 `# [- X/ {* p3 ^% B7 A- Z
这是官方的一个例子,新建了一个资源条,使用MFC的Tree创建了树列表,并加载了所有组件的属性到节点上。' E5 D# c& J6 q& ~6 e2 G

+ _. B7 h: X2 ?7 x' w: _! e7 i: }// Mandatory UF Includes8 _2 B  d% V9 ?0 ^  [: M0 o. b$ i' O
#include <uf.h>1 h5 i0 u$ \$ a8 m/ g0 D( Z% S
/ a$ |1 N# P7 H/ a0 @7 v( h, h
// NXOpen Includes7 }& _. s9 ^; G) z" E5 y, \: V9 \5 Z
#include <NXOpen/Assemblies_Component.hxx>
; V3 E5 M4 \8 U#include <NXOpen/Assemblies_ComponentAssembly.hxx>$ L7 e' D( K) c0 F# ~* x% a  t: x
#include <NXOpen/ListingWindow.hxx>
  [% V1 R* _" [4 v% N0 e+ ]/ a#include <NXOpen/LogFile.hxx>
, p! a& h4 C1 G8 ]* {2 `#include <NXOpen/NXMessageBox.hxx>. M$ U3 b0 F/ _5 D* R. R: _
#include <NXOpen/NXException.hxx>: c- t1 ^* q2 l/ m7 w
#include <NXOpen/NXObject.hxx># J0 \9 f5 U' Z7 T
#include <NXOpen/Part.hxx>
# X" G. O; c  O, R4 H$ Z8 M#include <NXOpen/ParTCollection.hxx>3 q. m: P. ^- h1 E2 X- ]7 o
#include <NXOpen/ResourceBarManager.hxx>
- s% e& G7 k3 z/ f#include <NXOpen/Session.hxx>9 [! z' K/ F2 {6 q2 C+ U
#include <NXOpen/UI.hxx>8 Z# U7 ^/ m3 [7 r1 ~: v, x7 d
using namespace NXOpen;
- ?5 E# I- X' D0 kusing namespace NXOpen::Assemblies;
% [8 d6 G2 @9 Y/ ^$ n: }9 N0 I8 f9 q% z6 i
// Std C++ Includes
8 b& K) ?" y3 Y8 y, q3 o' ~#include <iostream>( W* z$ W& N7 v+ J+ O8 K) k1 i( \
#include <sstream>6 T) M4 H5 f; x4 ]2 p: c$ }! d* M
#include <map>8 v1 {: \* h7 j( d. o
using std::exception;
  J8 x& {6 l; `" b4 \using std::endl;
1 l( T- M* J0 r! q4 X2 u5 rusing std::cout;
! i- j3 C- `7 musing std::cerr;
$ F% b- F0 \# Y5 g+ l8 J6 r; V; G  z' I# x3 F8 V$ }& }
// MFC Includes
7 Z# h% o4 X0 E' `7 a1 d8 H#define _WIN32_WINNT 0x06010000
- A9 o% ^* i2 C; N1 y6 ^9 \1 p#include <afxwin.h>/ r) i% ?0 z1 {) b2 j* R$ c, H
#include <afxcmn.h>8 f7 h5 X3 d, j) t9 N( A

! t# B0 {. O- z' M& l#define IDC_TREE1   1002
. R$ I# N, d4 T& `# w) Z$ F0 r  F6 }/ v+ h' y
//------------------------------------------------------------------------------  v9 M' q, s7 y3 _4 C) \7 v
// NXOpen C++ class
1 ^( Z6 W4 o& O" A+ m; Y//------------------------------------------------------------------------------: x/ n5 ?& C( ~! }
class MyClass4 j3 N: A$ z5 h  T
{
3 H; \, g/ B- Z/ `// class members
9 t& w" z& J6 F& b# Ipublic:
  D% ?  _7 z  s1 q/ |6 c9 F    static Session *theSession;# Y; G4 F5 A0 z' p9 I4 Z
    static UI *theUI;
3 v8 `2 R8 j9 H/ d: p/ t    static int m_tab;% x# `3 G* p. \4 G+ c) {
    static int m_cbID[2];
2 x& `4 |+ ^: x
. _( @4 x+ r7 J- R$ A% _9 h7 Q+ M: S/ {    MyClass();
2 i6 u' s1 t4 ]. p4 @  n+ B    ~MyClass();$ k" z0 H; C$ x* T
7 i) h* |5 ~' x: p* M
    void print(const NXString &);
2 A7 K" [) f- o    void log(const NXString &);
- u# H2 ?1 C  X1 E    void getAttributes(Component *, HTREEITEM);* E1 r; j" c6 H" d; `5 o
    void getComponents(Component *, HTREEITEM);
& T' s0 }4 Z+ q8 J) G. c$ _0 I    int ActivationHandler1(int tab_id);
7 f0 i7 |& Q/ o4 f* A+ d7 u1 I% C    void Clear();- J& |  d$ z9 b. E
    void Populate(BasePart*);) o# |& G6 V: B( D* ]
    void cbPartOpened(BasePart*);
0 ]) D4 {! W! q    void cbPartClosed(BasePart*);2 [3 U. g* \9 o2 b: c
1 N. ^5 z- H$ g6 r) O+ Z* V
private:
$ \5 d$ P, O% Z2 B: I/ r    Part *workPart, *displayPart;
4 c+ |& n+ a6 S) Z! `' I    NXMessageBox *mb;
9 s" Q+ a& ~  G& l( L7 b9 d/ S    ListingWindow *listW;
. e  y; L' j$ t    LogFile *logF;; R, Y5 `3 q; q3 r
    CTreeCtrl *m_tree; 6 k6 A. R  M( `% d0 m, {$ M8 Z
    CImageList m_Images;! E& M( t% R- C' D! [6 ~( ?
};
; O" e, d$ V1 j, U- }
) Y! R5 p: M) ?6 @& H" ^2 X1 m//------------------------------------------------------------------------------9 H. e6 p& x# I! B/ P0 |
// Initialize static variables
% g& z% v+ ?+ E; F0 {//------------------------------------------------------------------------------
1 }  Y# u8 @: \* t2 HSession *(MyClass::theSession) = nullptr;
6 u: ]+ E# _& z8 i  f/ eUI *(MyClass::theUI) = nullptr;
$ }6 a& }3 ^4 n! L( Uint MyClass::m_tab = 0;3 Q8 m& c2 x/ R1 ?' S
int MyClass::m_cbID[2] = {0,0};1 _& o- t0 G% U) T# |- Z! H

4 j) ^9 [8 R9 T3 g; hMyClass *theApp = nullptr;
- }/ O* \. d+ e( Y, E5 Q
( T4 S  ^% f+ f7 b" q//------------------------------------------------------------------------------
9 p( _7 Y7 u, {// Constructor
) N+ m4 _* I0 M4 p9 d8 ]% C/ n( h//------------------------------------------------------------------------------
5 ?2 X1 [* s$ ?: }. S9 L" iMyClass::MyClass()
) j& \7 m4 i: O9 G! S+ e{
- W. p% k$ @+ B( G! p9 f    logF->WriteLine("GTAC: MyClass Constructor");7 X5 {: [; g9 C0 M  T% {4 f4 M
    theSession = NXOpen::Session::GetSession();/ m2 i' D( m. [6 t5 b2 N% W
    theUI = UI::GetUI();
8 [. R* |$ J7 f, F5 V+ o    mb = theUI->NXMessageBox();0 |; A2 C' a1 E0 ?2 o8 l# `6 }
    listW = theSession->ListingWindow();
! @& i' c9 m" {  [  w& e6 p+ y    logF = theSession->LogFile();9 Z: H. ^; }- Y/ Q, n' p7 J: T# a

2 n5 U% }. c& U/ Q( Z    workPart = theSession->;Parts()->Work();& q1 b1 b) t2 x- q  {
    displayPart = theSession->;Parts()->Display();
" i  B* n5 A/ L7 G1 i7 t5 E; ^4 ]$ H+ i6 J: g8 I* w
    m_tree = new CTreeCtrl();
8 Z! w! E% f4 |' L
. ~( w! s2 ~6 B/ }    BOOL bSuccess = m_Images.Create(16, 16, ILC_COLOR32, 0, 2);" ~$ a5 e; z0 `1 b/ ]) J
    int index = m_Images.Add( AfxGetApp()->LoadStandardIcon(IDI_WINLOGO) );9 h' ?" T5 I9 W  E
    index = m_Images.Add( AfxGetApp()->LoadStandardIcon(IDI_INFORMATION) );
* g" l5 a! T" D& d
7 b, H, w( [( r! z- q    m_tab = theUI->ResourceBarManager()->ResourceBarManager::Create("Assembly Attributes", "ant_component_mode");4 S2 P; l( w' P3 Z
    theUI->ResourceBarManager()->ResourceBarManager::RegisterActivationCallback(m_tab, ) ?9 I! ^! n- O& o! I- ?( L
        make_callback(this, &MyClass::ActivationHandler1));
5 }3 y) }2 H% U    theUI->ResourceBarManager()->ResourceBarManager::ActivateTab(m_tab);
$ k' u( T$ z8 u+ G% R7 ?& b; V% U
4 t% T! n9 l  I% a, r    m_cbID[0] = theSession->;Parts()->AddPartOpenedHandler(make_callback(this, &MyClass::cbPartOpened));1 }# J# H' E' a8 h0 G# f
    m_cbID[1] = theSession->;Parts()->AddPartClosedHandler(make_callback(this, &MyClass::cbPartClosed));3 M2 r# @, Z1 ]7 ~$ Z# @
}1 E/ \% I* V6 p& |. v% Q4 }  [
( s( a! N1 ]8 E9 O# H7 ?" B, |2 c1 @* M
//------------------------------------------------------------------------------3 D! i' S# U- y& H  u) }7 R
// Destructor. H* R3 R4 m* C% p' z8 S; R/ M
//------------------------------------------------------------------------------
- a6 Q0 D8 |5 g  ^" L. ]MyClass::~MyClass()! B' H: C0 Z$ o7 @6 M* a! r
{
6 b$ C& p( i) N2 z+ \    logF->WriteLine("GTAC: MyClass Destructor");
/ p) o& t& A/ d- V# ~    if( m_tree->GetSafeHwnd() )
' c/ |& e8 L/ ~    {
8 ~+ F8 y/ G/ H/ M        BOOL bSuccess = m_tree->DestroyWindow();
$ G- Q, L4 C7 _7 _/ j; Y    }
7 P+ D! H( r+ [$ w, T! e' N" [# _. N1 R0 G
    theUI->ResourceBarManager()->Destroy(theApp->m_tab);
# o( g( j* C! f% _& h    theSession->;Parts()->RemovePartOpenedHandler(m_cbID[0]);
+ Y3 C5 v4 T; o* ^! Q  r    theSession->;Parts()->RemovePartClosedHandler(m_cbID[1]);3 _, U$ [3 K  w: o

, u8 G' Y/ j: G2 v4 B- z3 x0 }6 s}) I2 |: a' m4 R( F+ j

; i  y9 S% n) \8 }- P" n//------------------------------------------------------------------------------
+ d+ g% M+ g! |0 f  B// Print string to listing window and/or syslog
8 \, U$ L8 X8 e8 ]7 \5 c//------------------------------------------------------------------------------" g4 |* B( z2 C5 Y7 T
void MyClass::print(const NXString &msg)
9 X; @- z! @7 F. x{
2 j% j& }, Y0 [    if(! listW->IsOpen() ) listW->Open();/ X' w2 y9 n( c- i
    listW->WriteLine(msg);
0 a( q6 Z$ ^' w$ l7 }* p3 B}3 _8 b2 }1 b% `# f. {
void MyClass::log(const NXString &msg)2 n5 I0 h% o2 f& D) A0 o3 X+ G
{( S3 f, b3 H& S) U- O. b* ]
    logF->WriteLine(msg);4 e) r- X0 \6 ^3 E
}. ~4 g' v3 y  o. s
6 W. U* B1 a. `9 k: k
// Callback triggered when opening resource bar tab
. r2 u  F$ C8 y4 ^8 M( xint MyClass::ActivationHandler1(int tab_id)
: b* h3 ~+ {3 A+ H% a# c8 p, K{. b2 U* Q9 X& D3 ^) s3 K
    // Get the WindowHandle object
' T/ E( C  y5 `! u    WindowHandle *window_handle = MyClass::theUI->ResourceBarManager()->GetWindowHandle(tab_id);
2 u# j9 L' P1 o    // Get the real handle  R8 V4 E. C9 z6 t
    HWND parent_handle = (HWND)window_handle->GetHandle();+ }; k% z5 I( q  a* z8 v
    // Get the CWnd object from HWND, FromHandlePermanent will return 0!
( `+ q; b+ q; p0 F; O- a4 ^    CWnd *wParent1 = CWnd::FromHandle(parent_handle);7 n- e6 _# N, t% K+ j
    ASSERT(wParent1);
9 O$ x% \- x( G% W2 c+ }7 \& u7 I7 p
    // Switch module state to avoid Assertion from afxCurrentInstanceHandle
3 n, j& e: v) Z/ I* P    AFX_MANAGE_STATE(AfxGetStaticModuleState());
) x( E) U( s% D0 d4 |+ [/ p; q% Z' g/ J
' x4 j, v9 |% D$ R; F. q    BOOL bSuccess = m_tree->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|TVS_TRACKSELECT, # |* m4 y% v/ C# }: g; J! h" ^
        CRect(10,50,510,1810), wParent1, IDC_TREE1);
7 S2 d% g3 Q- V6 _    m_tree->SetImageList(&m_Images, TVSIL_NORMAL);
/ O" _5 Q5 A7 ~! s, r& I
6 l, P- Y  Q% O  e    Populate(displayPart);* M9 {- t0 d0 O2 I7 z

" ~' L, W5 j1 c* h    return 0;$ ]1 |. f+ y$ l5 N
}
/ f8 T6 y$ a6 l  |4 K! f$ H" H; c) k( {" }* G' M
//------------------------------------------------------------------------------5 u5 E% j9 w# r. _6 i* H
// getAttributes
* W8 W" B2 k9 o: h4 ]: D) E//------------------------------------------------------------------------------" w$ p& W: C# k1 S# }" o' x# X
游客,如果您要查看本帖隐藏内容请回复
" u7 q9 e5 |0 ~8 Y' B; K

- ~0 [1 o  E5 P! a* y
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

举报

全部回复41

airleng 发表于 2015-3-28 08:52:40

airleng 沙发

2015-3-28 08:52:40

二次开发完全不会啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

举报

ll_109 发表于 2015-3-30 11:24:29

ll_109 板凳

2015-3-30 11:24:29

我想看看,进来
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

举报

humanster 发表于 2015-5-24 12:02:04

humanster 5#

2015-5-24 12:02:04

看看,这个好像很牛的样子!
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

举报

smthan 发表于 2015-7-26 01:33:35

smthan 6#

2015-7-26 01:33:35

谢谢高手的分享哈
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

举报

503627752 发表于 2015-8-12 14:24:53

503627752 7#

2015-8-12 14:24:53

学习学习学习
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

举报

ke111026 发表于 2015-9-15 21:49:29

ke111026 8#

2015-9-15 21:49:29

ddddddddddddddddddd
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

举报

283925513 发表于 2016-3-8 12:00:27

283925513 10#

2016-3-8 12:00:27

卡看看 阿发撒旦法撒旦法
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了