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 5488 1

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

admin 楼主

2017-4-17 21:57:51

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

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

x
8 ]% q: y5 B/ I8 R
Catia二次开发源码分享:选择对象的方式 5 Z0 k5 b# x3 ]6 x- v( R: \

! i7 S1 T" _4 ?' l( Q
+ E9 b/ y- q; R/ L#include "CAARCSelectObject.h"
/ \9 {- w$ |6 \0 Y#include "CATIndicationAgent.h"
3 B6 C( d. k- H/ k#include "CATMathPlane.h"
+ _9 Y2 U: ?# Y) b% i9 t: u7 M- ]) s) r, P* q
#include "CATCreateExternalObject.h"
3 M- v' C. ^# i( L1 Z0 B4 P( `( O# h4 H
#include "CATIGSMPlane.h"7 q4 e3 W9 }9 V9 ^" O% {

) v& N; Q: Q5 L- u4 q#include "CATIGSMPoint.h"4 }0 }3 V" F% a- Y2 K$ Y6 o
7 S* ?. L& v0 Z7 R: [
#include "CATPathElementAgent.h"
( V% T3 o7 L8 v! M9 T  `# M9 i% L
#include "CATPathElement.h"2 O$ E, P7 ?) f$ U' f  l6 I

* @* @( i3 [8 L#include "CATISpecObject.h"
0 C, j( j$ S% H' s$ l
8 N! g% I0 h( i8 z% e#include "CATApplicationFrame.h"1 [6 F: m% \5 C/ ?( D, U! U) _, K% p

* e3 X* b* z3 _. U/ K" T#include "CATDlgWindow.h"; ^. o& v1 u( V, N3 x
2 u- o: D, t; j5 V0 y
#include "CATDlgNotify.h"/ {( |* |, a2 _* s

1 H) T5 a. y+ ]CATCreateClass( CAARCSelectObject);, Q9 ~# R5 ~- c% E$ Y7 U+ X2 Z

. ]& Y8 b: H* E5 T- @- j$ c8 R7 \7 `( ]
//-------------------------------------------------------------------------
8 g! n# @& z$ f, G$ r// Constructor
% H( j9 H! e1 K6 K$ |//-------------------------------------------------------------------------- Q3 p* `. J( f
CAARCSelectObject::CAARCSelectObject() :1 g0 r& ^! }; J, `
  CATStateCommand ("CAARCSelectObject", CATDlgEngOneShot, CATCommandModeExclusive) * x' y; \$ J/ ?/ r4 o$ ^& T
//  Valid states are CATDlgEngOneShot and CATDlgEngRepeat
) v7 {+ o& Q* S! j  c: K{; s9 z& Q* A8 ]: H6 G
}
# Y$ g! M; x8 K8 ]+ C( ^1 h
! E& i4 T8 x+ d% O# |  x. r- r) r//-------------------------------------------------------------------------
( c5 q9 N& ~# P* A5 |8 T// Destructor) U+ R, ^% [" {+ ]0 c/ S. t+ ?
//-------------------------------------------------------------------------+ ^# X& w" i% A3 n( c  I; D
CAARCSelectObject::~CAARCSelectObject()  ?& `, g; E- ^3 y) x
{6 K* q$ e) t- c8 _) Q: v" T
& A- w$ p& D+ Q" m8 @  ~8 s
}
* c: P; B! t6 {& r' b! m. N& C5 ~3 E% s$ Q' U

9 v2 g$ S( T, \! s3 |. O, X: `4 x//-------------------------------------------------------------------------
1 j0 C1 k0 d* ~$ p1 ]4 \" Q1 @// BuildGraph()) R* L( i# C6 z/ D' d
//-------------------------------------------------------------------------& K3 m: d. v( m
void CAARCSelectObject::BuildGraph()
; [9 i, w! s1 b4 M1 t{; \4 q: a2 M# v/ w; @/ x/ B7 O/ A
  _daPathEltObject = new CATPathElementAgent("SpecObject");# ]% O7 d0 e" s- @
  _daPathEltObject->AddElementType(IID_CATIGSMPlane);% @1 m6 z  _  A0 \
  _daPathEltObject->SetBehavior( CATDlgEngWithPSOHSO | CATDlgEngWithPrevaluation | CATDlgEngWithUndo);
( R4 |5 z0 }2 D% F+ x, u
) D  `4 x6 `" p( Q  AddCSOClient(_daPathEltObject); 5 p, @; {, F1 v+ F' ~9 R5 ]9 q

, G6 |6 ~# {1 Z# h  n! u  CATDialogState *stGetObject = GetInitialState("选择任意对象");1 V; A8 J7 K! m3 L' T6 B
  stGetObject->AddDialogAgent(_daPathEltObject);4 }: A! m# }& D) P6 `, a$ F

9 q$ E9 O" Q# a+ x0 o  CATDialogTransition *pFirstTransition = AddTransition0 _% d) h8 j. k& J
    (
& b# p5 l% E& T- B$ Z, ^    stGetObject,/ I" a/ N! M3 u, W
    NULL,5 `5 U) Y( B4 T
    IsOutputSetCondition(_daPathEltObject),                  
& i% p! B" Q: |  p# T    Action((ActionMethod) & CAARCSelectObject::ActionOne)
) h% U7 }9 `, J% u% U    );
7 l* a  |; c* h: l
+ y; P( U! ?7 V- X0 m6 I3 v. U}& E# u8 y  P- ?# n9 d# m$ |

* Y* H! C$ k2 v" i8 `3 R: L& A) g, ]/ X1 Z7 g6 s
//-------------------------------------------------------------------------+ H& |/ F, }7 }& B
// ActionOne (): K8 N$ F% k$ H5 p! u
//-------------------------------------------------------------------------
) }: |4 \) m7 L5 KCATBoolean CAARCSelectObject::ActionOne( void *data )
, R- Y. Y+ N1 v{
; `5 a: l: J. N) J$ t8 d; {  CATPathElement* pObject = _daPathEltObject->GetValue();
) Y  x- ]5 U+ L- j, k( Y% `% g0 F5 b0 j( q3 O; S5 W. ~8 M. V1 p
  //如果选择对象不为空的处理2 v& B3 Y# a/ z! V! z% D
  if (pObject && pObject->GetSize()); x0 y8 }* L$ j+ i% B) E5 c
  { # R2 p6 L9 d" s
    int objectSize = pObject->GetSize() - 1; 4 e7 i3 v; }: U
    CATBaseUnknown *sProduct = (*pObject)[objectSize];
. L& P+ K& S2 q  e    for (int i = 0; i<objectSize;i++)/ A9 A' N" n) A7 c3 B; B
    {! v/ ^( Y$ q4 Y: g6 u4 D# z
      CATBaseUnknown *sProduct = (*pObject)[i];
$ \- L8 u- P2 C' d    }, f3 \5 S9 r9 q: i5 q

9 I" _- N4 O+ d$ @    CATISpecObject *spObject;# \* _" c1 {( ~- e+ p. G( J/ K
    sProduct->QueryInterface(IID_CATISpecObject, (void**)&spObject);
8 d1 {  o2 o* z. Q: E
3 k) P4 ]( Z" W& \/ `% t    CATUnicodeString displayName = spObject->GetName();
7 ~% N0 ^# k+ y2 [2 V1 X/ O8 B* l# b7 K
    CATApplicationFrame *pApplication = CATApplicationFrame::GetFrame();
+ J  ~1 q8 \" z% \2 l4 h) @7 r6 X6 o; ]
    if (NULL != pApplication) {
' i$ {' ?  i/ H$ q, J/ W& Z. v1 O& P+ s9 h
      CATDlgWindow * pMainWindow = pApplication->GetMainWindow();
6 l1 {- d* w: B: Z' h. j  x5 L
: W, o" X  L- `2 ]0 o      CATDlgNotify *pNotifyDlg = new CATDlgNotify7 c9 e, g, Q+ F& o/ s9 e( w
        (pMainWindow, "提示", CATDlgNfyOK);- a7 ~1 R9 `3 [: E7 j$ J

( ^. Y4 m& Y, G      if (NULL != pNotifyDlg) {* T1 S3 N5 q/ `: }7 W! y, y0 g
        pNotifyDlg->DisplayBlocked
+ f% p' l2 f! S+ y          (displayName,/ @! P  B! W- B
          "选择的类型为:");$ {0 s1 z- u7 n: K$ {
8 Y- p5 I7 v% A2 N/ U" u( [" d! i
        pNotifyDlg->RequestDelayedDestruction(); ! k( N/ l2 f9 ?; ~4 t
      }
/ k6 Q' p5 o6 ~( h2 L5 Q& U- m* l    }
8 B8 x4 K& ]$ e8 K4 l: ~2 j
! ~; n0 j/ e: ~9 b) B9 A  }' v, R# b6 R# B' C) J6 ^

- t% z3 s9 s  g8 ]4 @0 g  return TRUE;% ~9 ~& `: |0 |! ?, v1 F
}, |7 m( }) L# A% B0 K2 x
& f% q- C& Z/ N- A3 ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了