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-国产软件践行者

Catia二次开发源码分享:选择对象的方式

[复制链接]

2019-11-13 16:49:02 5485 1

admin 发表于 2017-4-17 21:57:51 |阅读模式

admin 楼主

2017-4-17 21:57:51

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

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

x

& O. l) b% Q: s) \Catia二次开发源码分享:选择对象的方式
% R. E- w0 L( N; W( l: O; @/ E- w* A; P2 H: [
5 r8 E9 Y3 v* n$ p
#include "CAARCSelectObject.h"2 P/ g5 e- r2 x7 M9 |2 a0 B
#include "CATIndicationAgent.h"
. Y3 d) g5 u+ ?- U2 M#include "CATMathPlane.h"
$ V& g  d/ d& [" p8 S' `9 z3 W8 U2 v& [6 I( y
#include "CATCreateExternalObject.h"# a- w  B( p+ i3 t. Y
, g# i9 p" [4 x; D4 y' L; [: p) n
#include "CATIGSMPlane.h"
1 R( B! a$ V0 l; O; u7 h% y/ T8 q- E2 |; \
#include "CATIGSMPoint.h", |& {+ S1 p( V( }; L: N  p
) l/ o& q  H  E, U% n
#include "CATPathElementAgent.h"
1 _, z8 v  R8 k7 O6 ~1 Z
- `; a5 Z6 a5 M9 C#include "CATPathElement.h"3 L0 A$ H0 l$ b
' o7 M& \% Z9 w! [) p$ D" [8 F' s
#include "CATISpecObject.h"+ Q& M" C9 H& ~6 q8 h- q' o$ J

  l  I( B# [7 m, ~2 c9 e#include "CATApplicationFrame.h"
. [  y3 x8 Y5 t0 X
+ ]7 }/ T2 S# i' n% _& p3 R#include "CATDlgWindow.h"
- o9 _  s7 V* s% W
4 n8 b( h) e* X/ j6 G; j#include "CATDlgNotify.h"
- `" w0 N# ^% [6 Q
& O5 g. \0 c# U8 x+ |. cCATCreateClass( CAARCSelectObject);
) l3 R: @8 H- @' b, P
. T/ l* ~  C' Q3 X( M! B8 v2 Q/ U) D9 L- D2 [9 B% k9 ]: d
//-------------------------------------------------------------------------
! G! g/ o' b, b8 b, q// Constructor
# g+ V( v$ K) z5 v9 `//-------------------------------------------------------------------------
" o/ K7 O+ w3 ]. C/ G/ {CAARCSelectObject::CAARCSelectObject() :
7 j. J( h6 O, l/ U  CATStateCommand ("CAARCSelectObject", CATDlgEngOneShot, CATCommandModeExclusive)
8 j4 X- Q" y* t1 B6 k( E2 }; V+ s//  Valid states are CATDlgEngOneShot and CATDlgEngRepeat- m% r. [* w9 N
{
4 O2 j# J9 x  j8 f" @9 ^( W}2 X7 l5 q) R. z4 b( J/ Z) L  I
# Q# d- ^6 a$ ?( ^! z
//-------------------------------------------------------------------------
# s3 R  ^* H- a6 h7 |8 z// Destructor0 g" _( e; n/ k* i  R& t
//-------------------------------------------------------------------------
+ [- l7 B5 k4 |CAARCSelectObject::~CAARCSelectObject()' a, [! ]9 s$ ?5 q. q& U  A( n7 K
{
+ o3 T2 Y; o! W% d& p& q
+ q3 J/ n. d: \$ G}; }" e% Z. g5 w9 _1 u1 S
4 s2 c6 y+ k! ^7 n7 c" v
9 ?6 g) @! H& T! I  R( b0 p
//-------------------------------------------------------------------------
' ]' U5 `3 N+ A, H2 j9 r, I+ Q0 `// BuildGraph()$ l8 `$ o! w- u/ p( u7 J) U! [5 u
//-------------------------------------------------------------------------5 O9 a( v/ d. Y# Z/ D. i- J) ]
void CAARCSelectObject::BuildGraph()  n. |1 r0 u8 Y7 I$ B
{
9 I% i1 |! }! P  _daPathEltObject = new CATPathElementAgent("SpecObject");- }* z6 \5 U1 J1 T8 B& `
  _daPathEltObject->AddElementType(IID_CATIGSMPlane);6 ?" j  n! C  e4 ~- ^: C
  _daPathEltObject->SetBehavior( CATDlgEngWithPSOHSO | CATDlgEngWithPrevaluation | CATDlgEngWithUndo);. S. G) ^; E+ e0 v
6 j: R3 H" Z7 [$ B3 p: c, I( p4 ]
  AddCSOClient(_daPathEltObject); 3 T+ Y: ]; T& Y6 _) `
2 s$ l0 ~6 m' I* |- n7 m8 X8 E
  CATDialogState *stGetObject = GetInitialState("选择任意对象");
1 W# T" W3 P, @- P8 K# _  stGetObject->AddDialogAgent(_daPathEltObject);
# K/ q! Z" L1 A' H0 G5 |
+ v+ r. K  k- t+ F  CATDialogTransition *pFirstTransition = AddTransition# j8 y1 ]# j1 b3 Q( e6 i0 }# l
    (
9 S' X, J( x3 \- a* l& x    stGetObject,
( D7 @; C6 G$ y3 k    NULL,
2 T3 c6 J2 O5 A+ @) {0 r4 x    IsOutputSetCondition(_daPathEltObject),                   ! {& H3 w- D1 d
    Action((ActionMethod) & CAARCSelectObject::ActionOne)$ T1 G+ r6 b$ g  c
    );/ w* _3 h3 ?- l+ l6 m
7 d) ^# |! h6 t" J8 Y
}0 u1 ^( Q3 S' H. x4 q$ N" p8 Y! \& h, D8 }

3 q6 Q( I- s" C( a% F4 n, s9 p7 l* |. f( ?2 B, i) Z2 X/ R
//-------------------------------------------------------------------------6 p" ^( p2 R& z9 f; Y; n3 x# ^
// ActionOne ()7 i3 G" n6 P8 M9 `  J$ k- a
//-------------------------------------------------------------------------% x3 i8 u( G5 O- f
CATBoolean CAARCSelectObject::ActionOne( void *data )
. V/ K% k( E! v6 [/ n3 D0 w2 \) _{
( @1 l9 {$ b1 B6 q+ B2 G; u  CATPathElement* pObject = _daPathEltObject->GetValue();* @8 |3 }5 g8 H1 L, N

0 O( \0 o5 x& Y& w. w  //如果选择对象不为空的处理# k" [* c$ {: |; i: \& X
  if (pObject && pObject->GetSize())
7 Z3 Z) e7 i5 r- A" E  { 5 p& k! Q- W- o* }; _
    int objectSize = pObject->GetSize() - 1;
7 t$ A, S* D: L. O, a    CATBaseUnknown *sProduct = (*pObject)[objectSize];2 j$ M6 i2 D+ _0 n  H; z2 G
    for (int i = 0; i<objectSize;i++)
% D# `: R9 R" N" }' o# d" c2 c, M    {6 I* {# H( z8 n/ r
      CATBaseUnknown *sProduct = (*pObject)[i];4 z- r4 y  B# d' g4 H; ^, c" h0 [
    }
" S; g  w9 s, k$ P2 E$ M1 m' h( o( g/ R" n
    CATISpecObject *spObject;
! q* X1 S1 Q+ r# Y1 W; M$ S$ A5 P    sProduct->QueryInterface(IID_CATISpecObject, (void**)&spObject);+ U( j$ T1 k% d9 \, \5 g6 z( o

% d* B  [7 f5 m5 h    CATUnicodeString displayName = spObject->GetName();9 H4 j  \$ l; I$ @
5 n0 U+ d7 h' {
    CATApplicationFrame *pApplication = CATApplicationFrame::GetFrame();
& n0 I" J" f$ q
( t; A+ A  @! C" ]5 s$ B( d    if (NULL != pApplication) {3 [5 t3 u8 k" [! S/ |; c4 J! D" g
5 \: Q& p3 H0 t2 y
      CATDlgWindow * pMainWindow = pApplication->GetMainWindow();
+ t7 Y0 }# G& k3 P" _" E; U+ b2 l9 A! b* k
      CATDlgNotify *pNotifyDlg = new CATDlgNotify
( e1 u2 n! v' L2 R2 G3 K        (pMainWindow, "提示", CATDlgNfyOK);; H! t4 X! e6 u( v9 N- V3 D
6 g. H5 p+ x- q/ Y% o$ y
      if (NULL != pNotifyDlg) {
- Y: u; [4 e4 r& }! ]        pNotifyDlg->DisplayBlocked
! Y( _5 n/ y$ E          (displayName,; V- z! @7 t4 ?- v
          "选择的类型为:");; P6 ?% a% Q$ X6 ~, Q5 |

) Z5 B  g9 B# h) e7 ~3 N        pNotifyDlg->RequestDelayedDestruction(); 0 ^' y+ C" N" l) M2 S5 m
      }1 K/ h) j9 Z" N8 s8 B
    }4 m1 \" q$ I- e/ z% d, S
: a. h) ?6 Z% {( W% U4 U6 M; b3 ~' V
  }, T, J4 Q) S& X' y; h/ [
% p& B+ X1 R& l, p# V( V0 F9 N: N* S
  return TRUE;
1 }. f5 |" ?$ L5 E# t}- N3 R) Y/ p  }6 r. F

5 S% ?+ f6 ]2 }# }& w
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

1211523676 发表于 2019-11-13 16:49:02

1211523676 沙发

2019-11-13 16:49:02

谢谢分享,收藏学习一下
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了