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

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

admin 楼主

2017-4-17 21:57:51

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

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

x

' t* D0 Z8 _5 aCatia二次开发源码分享:选择对象的方式 1 H) }( ]5 K8 O, X& z- A9 z

6 e1 M# Z3 j: ], s+ n# \. N7 ^) X- _; A: v' C7 u6 n
#include "CAARCSelectObject.h"
( C( B' a0 {+ m- J' z( K#include "CATIndicationAgent.h"
) Y5 ]. A% d, ?4 B#include "CATMathPlane.h"
. `5 A: Y& ]- W6 u5 a- ?- z- x( G6 L5 s  M; F
#include "CATCreateExternalObject.h"& f: e* j$ }- r/ W
! c' v2 [& C5 g
#include "CATIGSMPlane.h"2 ]) Z: S, \0 t9 F, v* U

9 |5 @9 D3 a) G+ m& X2 J#include "CATIGSMPoint.h"3 A$ Z) U$ Q' F$ V( c  v- k& k. ^

, v1 T, [9 A8 I/ R5 s9 o#include "CATPathElementAgent.h"( }" L: t. T( g/ h

% ?6 {* R" u$ I9 [; j#include "CATPathElement.h"  }. f3 T. Y6 K& L  Y3 x
1 t- u0 o) s3 ~% I% o& }" R% r  t
#include "CATISpecObject.h"
& J* S) ~. a" z( i
! M: q% l/ n% S7 @#include "CATApplicationFrame.h", [. e) x  V  X) W

' d2 Y; X7 p3 g; F# X#include "CATDlgWindow.h"
" L0 b' I1 d+ B* c6 g! G5 W; y8 l7 H% f& x9 d% m
#include "CATDlgNotify.h"
: H# R( |8 ]+ r8 L" t+ S! g, q! H& t8 W& Z2 }
CATCreateClass( CAARCSelectObject);1 l9 m) j5 D2 D  F' Y
7 S& C0 u2 y$ }: t% P  V! ~

8 s6 q6 m' r9 l7 K) K3 e& E//-------------------------------------------------------------------------1 l* o. D7 m/ X! |# ~" z# L. Q
// Constructor; c* E6 D' S) c2 l( ~' q
//-------------------------------------------------------------------------
7 y- \4 b7 X$ q* ]CAARCSelectObject::CAARCSelectObject() :
& t1 [4 X; w; k% G$ }+ w; Y+ Y7 }  CATStateCommand ("CAARCSelectObject", CATDlgEngOneShot, CATCommandModeExclusive)
- _1 m, j, g& b; w' r' ]; R' W" @//  Valid states are CATDlgEngOneShot and CATDlgEngRepeat0 A1 f; m4 v: W3 d8 s/ r4 X4 d
{) d% {- O- j( L; D0 b
}9 U. h- U3 D( n7 K% H, \* |
+ P; t: W% p5 F) M
//-------------------------------------------------------------------------+ P* ?# E$ ]% L* z( M" b
// Destructor% w  z8 {2 w: z9 o+ I) C
//-------------------------------------------------------------------------1 h8 \  |1 _: V* }) ~
CAARCSelectObject::~CAARCSelectObject()+ h+ T4 b2 Q2 k, l+ X: b1 ^
{( E0 [7 S6 B1 |5 j& d  N8 ^! ]

$ O$ `* {$ j7 Q* \- a}$ {# B+ |- F  O5 x& p, |
: e3 `! I9 |1 V

' j. _7 I$ X/ Z( s/ h! |' |//-------------------------------------------------------------------------& Z3 q% ~- N% f, H  N' H- G9 U
// BuildGraph()
2 y8 z. y' h2 J% i# c( t* S//-------------------------------------------------------------------------
" M4 G+ d3 w6 a! |void CAARCSelectObject::BuildGraph()
3 E% c; P3 Q3 t2 Z1 b{
$ N- M0 G& F5 S3 }- A- n  _daPathEltObject = new CATPathElementAgent("SpecObject");
9 S% m9 u0 T0 O$ s% H3 l  _daPathEltObject->AddElementType(IID_CATIGSMPlane);
; Z1 M/ N) U( w0 H  _daPathEltObject->SetBehavior( CATDlgEngWithPSOHSO | CATDlgEngWithPrevaluation | CATDlgEngWithUndo);' k1 g* T5 ~- G1 V, C2 |

% y) |( w- h0 p0 q  AddCSOClient(_daPathEltObject);
. l: i9 `5 [9 U. _6 x  r, S* A# F% L, Y2 q; N* F
  CATDialogState *stGetObject = GetInitialState("选择任意对象");; S. X% y$ T/ u' D, H" X
  stGetObject->AddDialogAgent(_daPathEltObject);/ L0 @9 A$ S" X- d# a) W, p; `" [- r

5 w+ d' N" x7 t1 b+ i. x+ F6 ~  CATDialogTransition *pFirstTransition = AddTransition& [, \1 e9 d) E! s, b3 n  o
    (0 ~7 ]7 J% i. |2 b. G' r# c
    stGetObject,
' W$ d1 h; G3 a8 s; g* r& {4 J$ z    NULL,! q7 l  s9 z2 a3 N9 f
    IsOutputSetCondition(_daPathEltObject),                  
! |& y' o0 \& ?" Z* [  L) v    Action((ActionMethod) & CAARCSelectObject::ActionOne)
, }5 c) z  u: n- J    );; Q- f" [  e, B! q" [/ F
8 T3 K1 L9 R  {
}( r& O# @& J8 ]* N# L7 u9 b- h
, ^5 y7 Q4 n4 D

! s9 K) G: x3 v//-------------------------------------------------------------------------0 L/ q3 W3 _- t
// ActionOne ()' G2 b) A  {5 m1 C4 ?$ v
//-------------------------------------------------------------------------
% G# T  Z) x0 ~% nCATBoolean CAARCSelectObject::ActionOne( void *data )
. _  V. c# O4 l- ^9 p1 E+ u{
. d+ k( R- D2 M4 M" N; z4 j  CATPathElement* pObject = _daPathEltObject->GetValue();8 i, x! C0 _5 b

8 V5 l( h5 U. r5 c* P  //如果选择对象不为空的处理
) ~$ V% B0 b2 m: o$ k  if (pObject && pObject->GetSize())1 N: |1 R0 O* t4 t5 [
  { 9 B* d8 w" L2 @" P
    int objectSize = pObject->GetSize() - 1; 6 z7 r+ ?4 ?: Z8 ?, ~* d2 X, ]
    CATBaseUnknown *sProduct = (*pObject)[objectSize];0 S% W& S) ~8 ?8 I3 v
    for (int i = 0; i<objectSize;i++)$ |8 {5 w! X# j9 K: O) H) H1 d2 j" H
    {! s* L3 d# Z9 t1 s4 Z( J% p; g
      CATBaseUnknown *sProduct = (*pObject)[i];
% F0 X9 f! w4 R8 A2 ]    }
2 c) n: E) R0 P" I  `. `/ U, E
    CATISpecObject *spObject;" _# ?7 T! @0 b) V# z" }9 {
    sProduct->QueryInterface(IID_CATISpecObject, (void**)&spObject);
9 h% D) F( J- B' B/ x& v
1 t" Z' ~( M% u' G, h    CATUnicodeString displayName = spObject->GetName();
4 s8 s" a0 |* N( A3 ]8 \/ j( p- h% X% L
    CATApplicationFrame *pApplication = CATApplicationFrame::GetFrame();
4 @0 ]  o  v5 p" K/ `
5 L( z: f- w1 P2 v* F2 L    if (NULL != pApplication) {/ x' ?8 [2 a( v/ U$ k8 i3 s7 N

: I" ^6 y# U4 V      CATDlgWindow * pMainWindow = pApplication->GetMainWindow();
7 a' s. A2 I5 {2 S
8 j2 }  h6 A# E& {      CATDlgNotify *pNotifyDlg = new CATDlgNotify9 F# q; n: A$ s3 H: e1 G
        (pMainWindow, "提示", CATDlgNfyOK);, }% h4 W9 @; t
  R- T# Y  ?/ E+ b+ @
      if (NULL != pNotifyDlg) {
; u' r: J8 F: [4 ~  `# f        pNotifyDlg->DisplayBlocked$ s5 I% ^' a: A" p. R
          (displayName,6 L! ^2 b" j$ N$ n* W- Y( k$ U! Q
          "选择的类型为:");. b# n; \6 c. l( _  `/ [2 Z& Y
4 e& Z' O6 `% Z5 B& R  P
        pNotifyDlg->RequestDelayedDestruction(); ! D8 `8 o. k- w8 a$ Z0 b* B7 {
      }* k: G2 _( Y  E/ s9 z
    }
& w0 ~% l- ]) N. b$ C3 H/ \- N4 C4 l' x
  }1 L7 n5 Z9 @+ T

" K7 }5 Z) }2 p  W, c( A6 ^! f5 E  return TRUE;1 k& F9 g. P: C% l! m7 y; p& t; |
}0 `* ]! L. P! M" E3 V2 g, z0 d( H

4 t; d7 ~' a+ B: _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了