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

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

admin 楼主

2017-4-17 21:57:51

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

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

x
. l& M6 ?/ Z' O2 W/ b" A
Catia二次开发源码分享:选择对象的方式 # y; @1 W8 M# y' N- e

( L3 w, B6 b2 c" ~+ `$ A- y# K+ e1 n0 s- Y' S$ u3 T6 B  X
#include "CAARCSelectObject.h"# N5 Y5 t7 }' w, E, n7 g- l$ m
#include "CATIndicationAgent.h"1 o+ |' a  \% J
#include "CATMathPlane.h"1 P1 [/ g; o+ f6 n( O/ A
8 ~/ ~9 {+ E& |  x* J% P3 |
#include "CATCreateExternalObject.h"* l. Q9 `% q0 G

) `1 I& ]* `+ P& l#include "CATIGSMPlane.h"
% ~5 q/ C' e/ ?- m" K+ I$ ]% }. O* [: b5 A" Q' I
#include "CATIGSMPoint.h"
# K: L, _/ t. W( o/ n. M- [* M7 p$ Q' J% E  L# h
#include "CATPathElementAgent.h"
' m4 U& R0 L, {3 J2 F. x$ F9 q% D( g0 ~% b7 y
#include "CATPathElement.h"/ e* T/ H5 a7 Z: D% F

+ R; p& z: {+ b8 |" c#include "CATISpecObject.h"2 y/ v7 _# |) v( s' l
! ~( e# `" x) E8 U8 [+ n
#include "CATApplicationFrame.h"
& G' ?8 k6 c7 H
5 u8 w6 s' x! H. K( w#include "CATDlgWindow.h"* p0 r5 p! b6 u# u; d' k' e" i: [
4 I6 X4 q2 N' N: K" ?& N
#include "CATDlgNotify.h"9 L( Q2 n1 [: q6 S, H# r0 y
5 H$ ]1 ?& r) U; p" q* n9 C% g! l7 v
CATCreateClass( CAARCSelectObject);( n& A; }# a, o
: l2 [: I( O3 q' w

; k4 B8 H2 N. W8 H" T- t6 C% @) {7 l//-------------------------------------------------------------------------
# k* _) t  Q; m+ |. q% A$ }" f// Constructor3 C* X% [; [/ @, S6 `3 e
//-------------------------------------------------------------------------
! E: v9 A% M# d; ]3 F# JCAARCSelectObject::CAARCSelectObject() :; m1 @. \& b0 o; a% E
  CATStateCommand ("CAARCSelectObject", CATDlgEngOneShot, CATCommandModeExclusive)
7 x0 {+ }% g; x1 b( J. B: g: V" V//  Valid states are CATDlgEngOneShot and CATDlgEngRepeat) }' v  z5 B) B6 Y& Y
{
" N3 ?" M1 C. W5 a8 E" _}
5 A6 b$ c5 x' f: s: M0 S
3 l$ |, [5 I8 Q7 Q- h: [//-------------------------------------------------------------------------
+ X- v+ ^4 s( R4 M// Destructor
; C; k: _6 A( H+ }  j" X//-------------------------------------------------------------------------6 Z/ w  {5 ?+ h( S
CAARCSelectObject::~CAARCSelectObject()0 C  w' v* }1 o3 V7 `! ?- h
{
/ {/ a' Q; i: b/ H6 u3 h2 A  }
}: Q0 y9 f9 x8 ?$ K) t( t
' x5 ^" o& P- q3 V3 w8 e

. p, W4 F) A6 U$ P% q/ U//-------------------------------------------------------------------------3 G& q- h" L/ Z* ]% U6 j/ r
// BuildGraph()5 @# m3 R2 Z4 M0 @
//-------------------------------------------------------------------------1 \5 @8 J" e% t/ i+ C
void CAARCSelectObject::BuildGraph()# X/ d8 r. E7 v2 U0 h& L. c$ G
{2 ~9 v. x% ?2 u; q/ s0 \0 u3 K: b
  _daPathEltObject = new CATPathElementAgent("SpecObject");
: f& R# c8 g+ A7 _6 M  _daPathEltObject->AddElementType(IID_CATIGSMPlane);
. X( E/ D, }% M' ?) V3 ~# c  _daPathEltObject->SetBehavior( CATDlgEngWithPSOHSO | CATDlgEngWithPrevaluation | CATDlgEngWithUndo);
0 N0 e0 J1 f" @, p% W6 Y& b/ @! _+ E. e
! v& |5 g' y- o: }9 Z  AddCSOClient(_daPathEltObject);
; ^- K4 Q7 ^! ]& k
* B% p4 `) ~- g+ @( |7 [, Z# S& A  CATDialogState *stGetObject = GetInitialState("选择任意对象");9 Z5 _. h1 v) Q5 s. A, Q6 c
  stGetObject->AddDialogAgent(_daPathEltObject);  b" ]6 u# Q' m" l4 _: z

- V# z9 D# U6 ]0 Z9 R  CATDialogTransition *pFirstTransition = AddTransition) v8 ?) o* p5 m) w. r( k# N" [4 x, x
    (
: O# j- A) X" \0 u# t    stGetObject,' [5 i/ G8 H+ M2 y' w4 K8 @
    NULL,7 J; X( v. n4 j  v
    IsOutputSetCondition(_daPathEltObject),                   , M8 f( ?3 H# a) \! x# g' k  b. Z9 ~
    Action((ActionMethod) & CAARCSelectObject::ActionOne): t+ X4 o3 `# Q2 y, S1 [
    );3 K, G' }5 B2 C. `/ E) M% L
' S8 x5 R) T  B, M+ u
}  `0 i5 L6 Z3 x& v  P
9 C" l7 Z) c$ f. K

: w/ [. `! \  ~1 M) J6 J//-------------------------------------------------------------------------
# Y: z6 H; X! m8 B// ActionOne ()8 q% g3 `$ a+ f
//-------------------------------------------------------------------------9 X% N. J( Z" Q9 u" Q& p/ V$ ^3 x1 A
CATBoolean CAARCSelectObject::ActionOne( void *data )
3 Y/ Q$ Q+ I$ a  r  u{8 _$ J* ?; y6 O
  CATPathElement* pObject = _daPathEltObject->GetValue();
, v: u& x: A0 a- `/ Z: B  H% z) J8 D; s3 n9 n; ~, y
  //如果选择对象不为空的处理# Z5 E1 H5 U" ~2 c! I
  if (pObject && pObject->GetSize())1 @+ q8 |6 [# P6 R8 l* X/ {
  {
1 V6 Y9 C( }& _9 f/ ~    int objectSize = pObject->GetSize() - 1;
1 n0 h# T: T( Q: H- N    CATBaseUnknown *sProduct = (*pObject)[objectSize];/ c) A$ |& a$ F6 T5 F2 @
    for (int i = 0; i<objectSize;i++)
( }0 _* }9 d( k    {  ^1 `9 F! l8 Q! i5 x
      CATBaseUnknown *sProduct = (*pObject)[i];
& @% H  a$ ~$ b- \& f9 U: i3 ~0 P/ w    }& {; x: W7 N  H' i

) Q) H" [+ u; m# @    CATISpecObject *spObject;9 Y' \! P( @" |! \# G+ ]  x5 u9 ?
    sProduct->QueryInterface(IID_CATISpecObject, (void**)&spObject);
( q, i4 A" \. v
/ b1 b: L2 t9 U3 p; I7 y    CATUnicodeString displayName = spObject->GetName();  v/ n4 \! }8 P

4 o8 |7 L5 Y) L# y) d: Q) ^3 ^    CATApplicationFrame *pApplication = CATApplicationFrame::GetFrame();! Z, C: }# O+ \( g

% O2 ^2 o: e) F4 a' N    if (NULL != pApplication) {; T) R# @3 |( B

( h) k* ^5 }* E8 @6 T6 E2 ~2 `) f      CATDlgWindow * pMainWindow = pApplication->GetMainWindow();
9 X# M3 p- [% p/ ?
2 c8 `- \9 h3 Y# r! Z      CATDlgNotify *pNotifyDlg = new CATDlgNotify2 k& N& [- A4 T/ [9 X) j$ K/ @
        (pMainWindow, "提示", CATDlgNfyOK);3 s! n4 [. m4 C) J) f" C

* ?: Y+ v: B: t4 E      if (NULL != pNotifyDlg) {- t+ @. _8 \# x
        pNotifyDlg->DisplayBlocked
9 g( ~& ^0 S/ \3 G" L$ _          (displayName,8 b9 V3 v* r0 E- s
          "选择的类型为:");
+ k" Z& K. C& b: q/ U, {. G6 @  l0 a
        pNotifyDlg->RequestDelayedDestruction(); . R7 V5 H- Q0 Y2 y( V1 {
      }
0 o" `/ M* U' N( J8 {1 j7 G- k    }
4 R; N! R# D+ g" x: \9 T. D! j5 u) u6 N! z5 s0 Z$ ~3 n
  }9 l7 c2 T9 {8 m8 b2 g9 U( B0 p

- O* Q% k$ O2 e" S$ n  return TRUE;
2 @. A; u6 m' C* U) @}; ~1 n& q$ O% ^: F( g3 E
' f% _& A! N7 ^7 ]* J3 w/ O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了