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

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

admin 楼主

2017-4-17 21:57:51

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

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

x

  |+ `( i& L6 WCatia二次开发源码分享:选择对象的方式 " p$ ^4 `% g0 s/ }2 p7 d, I2 Y1 [# r: Q
- n0 s. j, t) o# j+ R
- c% w; h' i; d  `1 @* `) ~
#include "CAARCSelectObject.h"# Q  ]2 [' c5 ^
#include "CATIndicationAgent.h"2 g/ w5 @1 z8 N( h8 F: P
#include "CATMathPlane.h"- H9 h+ ]  J, q+ }
7 H) h- }- O& W& z1 Q
#include "CATCreateExternalObject.h"
6 U) ?. e3 [* f2 h
# s2 X* \6 L+ l, {! r#include "CATIGSMPlane.h"
$ m' v6 c( y# }& }
4 @" m2 b  [# [#include "CATIGSMPoint.h"
( P; G4 h% e8 Z5 l) A& F8 b$ }# G9 `* v- d3 c3 O4 P
#include "CATPathElementAgent.h"
& c& s( J4 n5 [5 W' Q7 T6 n
' \3 @  K+ A! k+ r  ~#include "CATPathElement.h"6 s- M$ Q+ b. m$ R
& x( M' w4 N: ?' p
#include "CATISpecObject.h"
4 `! z0 S. {3 r1 }* {- ^' U4 f
  ^1 G; M, c6 Y9 q8 K#include "CATApplicationFrame.h"7 f: ~1 F+ Z# ^

+ E7 n4 t8 O3 K. c3 [, O#include "CATDlgWindow.h"
( p( ~# j* A( Q
/ @( H9 o1 ]6 V; }3 N# p3 \  M#include "CATDlgNotify.h"
, v/ L  o( o" X  a
7 ]# _! W; o0 O+ |; D1 s8 k9 MCATCreateClass( CAARCSelectObject);
- q8 _$ e6 @( R2 d' C3 z( f  `, I+ G4 E4 l' H  H$ Q, l- q5 \. N

" d" c8 N: ?- k5 R! i' z8 l//-------------------------------------------------------------------------) b# b! ]  B5 h0 ?) O
// Constructor8 l' K3 r( Q& ]# A
//-------------------------------------------------------------------------
2 H% _% |( [5 u* P' e: L0 X7 s( DCAARCSelectObject::CAARCSelectObject() :
7 v% k  v) E, o; z, s* z$ F& u  CATStateCommand ("CAARCSelectObject", CATDlgEngOneShot, CATCommandModeExclusive) / p' h- Z; T  Y$ ]& W5 Q! F) b3 b# f1 K
//  Valid states are CATDlgEngOneShot and CATDlgEngRepeat
& |8 M; I" u  ]( j7 i: W: ^, S{- U0 I* u' F8 a* x- y
}
$ x  f  I+ I1 t" @1 R$ }4 _0 Z  q) `$ O% K1 j* R' z' g
//-------------------------------------------------------------------------
- ~% ]2 {8 Z7 @' W: G! t// Destructor; p$ m1 `/ W- q* X% e1 ?$ ?
//-------------------------------------------------------------------------: U% t& z& j/ V
CAARCSelectObject::~CAARCSelectObject()
4 |3 X8 b1 _9 x, i5 g9 d& W; k{# ~% A' ~$ c: W) w$ I

( O3 H) ~6 a' j7 R& M}
. O2 s$ V( p  O7 {4 i1 J, @2 d" ^# e- i/ a. v" j* L, p

, V- A* D5 H& ~//-------------------------------------------------------------------------# @( F3 U. Z/ T9 |
// BuildGraph()
, P+ a  O$ {# }& {2 u' R//-------------------------------------------------------------------------
, y$ L" s' q- B5 \' V" C3 Q8 jvoid CAARCSelectObject::BuildGraph()6 t! f4 D5 ^& Q" O# v
{
9 X) Q# p- j' H8 H. j( V  _daPathEltObject = new CATPathElementAgent("SpecObject");
$ a, q: w; s  c" B! A  J0 u  _daPathEltObject->AddElementType(IID_CATIGSMPlane);: l7 q2 W! q% j6 L6 f/ M
  _daPathEltObject->SetBehavior( CATDlgEngWithPSOHSO | CATDlgEngWithPrevaluation | CATDlgEngWithUndo);
( I, `3 c% Q( }; H& Q5 i- H
$ v1 w1 G4 n* W$ L1 n% x+ J  AddCSOClient(_daPathEltObject); , ]3 m) \, w* c5 s: v3 I) Y$ d0 `

5 e0 t9 ?; |& O4 y2 b  CATDialogState *stGetObject = GetInitialState("选择任意对象");
: n' X; _9 s3 X0 f- X9 ?  stGetObject->AddDialogAgent(_daPathEltObject);
; o2 l$ _( w1 g9 u: v" a- }* L3 l) S3 r" O" F; Y# w
  CATDialogTransition *pFirstTransition = AddTransition
1 {0 Q9 w5 y# P) M, G0 o" T    (
: s# s3 ~" n6 b: @2 R. X7 u    stGetObject,5 j+ |5 p7 F  G# _
    NULL,
1 \0 R* W# G" o    IsOutputSetCondition(_daPathEltObject),                   0 [: H  f! K5 E9 U# O5 f
    Action((ActionMethod) & CAARCSelectObject::ActionOne)
. H3 V5 l# ~' e+ Q' T) o6 Y. ?    );7 s/ B3 {) G5 N- I- u

- ?1 @( y$ U4 G7 Y0 [8 _/ }}
" M: y0 P7 u9 u9 {( g
* |/ x' M' u2 A) v( B: h, u4 a6 y
" m6 e+ Z& C; }6 J! l) J//-------------------------------------------------------------------------
4 t# x* v" l7 U" S' W6 x// ActionOne (), {( _9 O2 K2 E0 p1 \( d  q
//-------------------------------------------------------------------------6 l: b' _% F; ~% {1 L
CATBoolean CAARCSelectObject::ActionOne( void *data )1 S8 V" X) l! c$ }, ^" V
{; o% c5 b1 T( L  v& V3 x
  CATPathElement* pObject = _daPathEltObject->GetValue();) e6 K2 E( J1 S# Y
; P/ M% X+ ~$ v4 _2 s" K- f/ E
  //如果选择对象不为空的处理
7 B9 x! h  k' g  if (pObject && pObject->GetSize())) I4 `7 q+ B7 W. b! {7 S
  {
: E6 L1 T  Q. [# O    int objectSize = pObject->GetSize() - 1;
: V8 U( w& e) P9 k  `    CATBaseUnknown *sProduct = (*pObject)[objectSize];
% d4 T( V( L+ `; b3 \: V( n/ |    for (int i = 0; i<objectSize;i++)
! R- }: E: _: o( [6 ~, k    {# S5 J5 u( \7 t2 H
      CATBaseUnknown *sProduct = (*pObject)[i];
7 ^* O* j3 m" h- O# q! S    }
; c/ @  @) x+ N# S% r4 Z
/ ]0 G+ T, F6 z: A, K    CATISpecObject *spObject;
0 f- [0 r# `; c/ T8 F9 N1 U0 C    sProduct->QueryInterface(IID_CATISpecObject, (void**)&spObject);" Q9 N/ @( P. c* b+ R1 Q

6 O# }+ Y8 S+ A0 L: Y    CATUnicodeString displayName = spObject->GetName();2 R# M- D+ v/ c- g3 {& \% g5 b- o

& q- z; }% Q2 d) e. P" Z" J    CATApplicationFrame *pApplication = CATApplicationFrame::GetFrame();
& E6 Y" x) C' d$ B: u2 V/ \9 V% K) z) p
    if (NULL != pApplication) {, x  ^* w0 V9 t/ e' H

$ c5 t0 I" G3 K5 i  W7 R, x      CATDlgWindow * pMainWindow = pApplication->GetMainWindow();5 R% t7 ~5 a! v% f7 {% h4 s
0 `& S8 ^: U6 J6 z' [% W" c" P
      CATDlgNotify *pNotifyDlg = new CATDlgNotify
, f1 G5 `% Y1 W$ v        (pMainWindow, "提示", CATDlgNfyOK);
" S; O0 |% w0 \/ A! r. }* C" x. F8 _. Z" j
      if (NULL != pNotifyDlg) {
/ u3 ^% a. V# X1 J5 e        pNotifyDlg->DisplayBlocked
; a) x6 N# s. R  Y          (displayName,. p* a6 K; m: o& Z5 p& t. x$ x$ D9 H) y. y
          "选择的类型为:");
$ \& J- J; `. N0 d) ?$ \* [2 E5 u6 U
0 n# l2 r+ E+ P+ Q        pNotifyDlg->RequestDelayedDestruction();
, S5 o% h2 S8 Q& W# h6 S9 f6 D      }
, p' [3 k; n& u2 O7 ]) i    }) s4 g) Z; i" X9 k  M1 d+ k- n
! h5 J* d7 }  X* B7 L
  }; B+ s5 h, K: ^
0 A% S% s9 F* x
  return TRUE;  j) ]' }& I' @( e+ L9 U& @
}6 Y% v% l; i5 _, }* a4 u  m

4 i" g- ?8 C# ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了