PLM之家PLMHome-工业软件践行者

[原创视频] PLM之家-NX9.0 二次开发实例视频-24 创建自定义基准CSYS

  [复制链接]

2013-12-28 12:02:42 41249 127

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

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

x
PLM之家-NX9.0 二次开发实例视频-24 创建自定义基准CSYS
8 G, ^1 w/ N; p6 _1 i: F  G6 P5 [+ l" p- ?

1 |1 o+ |& K+ e+ j内容:
' \5 r9 _& T$ N* n7 Z创建自定义基准CSYS控件使用,熟悉使用CSYS控件,熟悉使用NX Open C++进行对象的颜色修改。
# q: v; ~2 m8 V8 u7 D5 f4 C目的:
6 R' ~4 q4 {& {5 W4 z6 D0 ?使用CSYS控件可以获得一个基准坐标,对应基准坐标需要使用坐标创建才能得到,要想对基准坐标进行颜色的修改,需要对基准的所有自对象进行修改。
: ]; g$ T. u* y, P$ D2 R! `
1 W6 X3 t( \* y$ Z9 q1 m: m" r# m$ O; d

7 s$ r6 E& g( k9 N

24 创建自定义基准CSYS

24 创建自定义基准CSYS
  J1 _6 W* y  P* |

8 I( `0 A$ R, I& F/ ^
$ M) a* i" \- z# ?/ h
2 ]7 }" O  k% |  B& m) [
  1. try
    + P. z9 I9 F- B
  2.     {
    - _$ A9 r5 D2 C8 U
  3.         //---- Enter your callback code here -----
    4 k6 g3 H6 W; {6 W9 L8 Y3 M

  4. 0 {0 f9 a, ?) L+ u. y
  5.                      NXOpen::ListingWindow  *lw = theSession->ListingWindow();
    ) t. N# c3 G, `0 o' \# H, n
  6.                          stringstream ss;, k+ g. c7 P2 d+ V1 L: }
  7.                         NXOpen::Vector3d xdir,ydir;0 R0 b7 f) _! V9 L1 C2 m* L0 i
  8.                         NXOpen::Point3d originPoint;3 d& f5 D! x5 k( S8 T
  9.                         lw->Open();
    8 h7 ^8 a# y' I( [
  10.                         ss << ("创建的坐标系统信息如下:\n");1 a9 c+ }9 N! D; }8 B' J% K
  11.             std::vector<NXOpen::TaggedObject *> coordObjects = this->coord_system0->GetProperties()->GetTaggedObjectVector("SelectedObjects");* k) ~# N" v( a# P$ r- g% r% ^
  12.                         NXOpen::CartesianCoordinateSystem *coord = dynamic_cast<NXOpen::CartesianCoordinateSystem *>(coordObjects[0]);+ g$ D6 v6 b3 _) h( y( p
  13.                coord->GetDirections(&xdir,&ydir);* S( S+ q; s. d, B3 c! A* Q
  14.                         ss<<"返回的坐标系X方向矢量是:"<<xdir.X<<"\t"<<xdir.Y<<"\t"<<xdir.Z<<endl;
    , e$ n/ D7 W0 P) {+ @* Q/ k. P
  15.                         ss<<"返回的坐标系Y方向矢量是:"<<ydir.X<<"\t"<<ydir.Y<<"\t"<<ydir.Z<<endl;
    # J  }/ @  T1 u" A6 E/ T. o
  16.                         originPoint = coord->Origin();' u: x' z( G4 c( q
  17.                         ss<<"返回的坐标系中心是:"<<originPoint.X<<"\t"<<originPoint.Y<<"\t"<<originPoint.Z<<endl;- d* b! z/ q. B: i
  18.                         lw->WriteLine(ss.str());
    1 H; {; j( O' I# J; C
  19.                   // create the csys, o4 Y7 p8 u' C3 N+ U0 b9 @$ b* S
  20.                         Part *workpart(theSession->Parts()->Work());
    4 H! @9 K, r0 ?: S8 H, Q3 v6 n- Y
  21.                         Features::Feature *null_feature(NULL);
    1 e/ s2 w6 G) O' P3 L6 \) s
  22.                         Features::DatumCsysBuilder *datumCsysBuilder ;
    7 [3 G$ b0 p1 H9 S/ |* e/ D! C
  23.                         datumCsysBuilder = workpart->Features()->CreateDatumCsysBuilder(null_feature);) O+ U/ \) u5 M" R! K- ]: M
  24.                         datumCsysBuilder->SeTCsys(coord);
    , B' l7 |' O7 W" h" p
  25.                         //set the scale factor
    5 d6 s: a7 X$ D2 q- Y
  26.                         datumCsysBuilder->SetDisplayScaleFactor(this->double0->GetProperties()->GetDouble("Value"));
    1 h1 x7 Z! l0 o$ Q! V0 _
  27.                         datumCsysBuilder->Commit();
    ; d7 w/ x7 f1 y
  28.                         std::vector< NXOpen::NXObject * >  GetCommittedObjects;! F* a# n$ ^8 @, C, k* l7 }
  29.                         GetCommittedObjects=datumCsysBuilder->GetCommittedObjects();: I( @& w' c* v6 T' h0 t! V
  30.                         datumCsysBuilder->Destroy();3 s4 E( E$ S) I
  31.                         // set the color4 ~. M( R) d9 a" M% N/ b; N" K3 E
  32.                     NXOpen::DisplayModification *displayObject;* \+ ]- x3 ]/ q4 R
  33.                         displayObject = theSession->DisplayManager()->NewDisplayModification();% G% b- D- t1 m- |
  34.                         displayObject->SetApplyToAllFaces(true);
    7 G. D- q; y! B$ ]9 n* Q$ k! o$ i

  35. & y9 t4 _1 T+ I' S
  36.                         // get the color from the UI
    % |1 f7 D% C1 r* n6 M3 B
  37.                         std::vector<int> color = this->colorPicker0->GetProperties()->GetIntegerVector("Value");5 i% j* ^) D, J9 X
  38.                         displayObject->SetNewColor(color[0]);
    " @$ b% D( S' z
  39. 0 ?2 G7 `) c+ i
  40.                         std::vector <DisplayableObject *> csysObject;' R* i5 |1 Q5 ~* j, g" M
  41.                         ss.clear();
    3 Q$ B& W; s3 v3 b8 ~  f! _4 q
  42.                         ss.str("");* s0 k2 k5 D$ M- ?
  43.                         ss<<"一个坐标系生成的对象有几个:"<< GetCommittedObjects.size()<<endl;
    & z! C4 Z" m0 h! X
  44.                         lw->WriteLine(ss.str());8 x9 g! ~+ @$ ~4 X; r9 I
  45.                         for(unsigned int i = 0 ; i < GetCommittedObjects.size();i ++ )
    ) U; R* c, o8 S& _6 |
  46.                         {
    2 A8 X9 H! F, D2 w. p
  47.                                 csysObject.push_back(        dynamic_cast<DisplayableObject *>(GetCommittedObjects[i]));
    . P- C- W' V# X8 x: O4 ]
  48.                         }3 Q0 k% q+ i7 u- E; E: h
  49.                         displayObject->Apply(csysObject);
    . S$ ?1 w( m7 y8 u
  50.                         delete displayObject;
    : L0 Z; ^& P7 l" y8 \8 [, @. ]
  51.     }
复制代码

( }! C- v. t" Q! ^! u4 p7 h6 x# o8 x- m" Z3 Z
/ E# {; q5 {/ f$ r+ E

. s# }- Y$ C4 `4 W0 M

, s  `0 w1 B8 t
1 A! |3 P$ I9 Q  I. L/ B
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复127

mildcat 发表于 2013-12-2 20:43:58

mildcat 来自 2#

2013-12-2 20:43:58

PLM之家-NX9.0二次开发实例 24 创建自定义基准CSYS控件使用(1)block UI创建. J: k( ~" ]6 J( D \" p# G* ?$ e + m5 F9 ]. H* c4 h3 l
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

admin 发表于 2017-10-15 15:24:39

admin 来自 #

2017-10-15 15:24:39

PLM之家-NX9.0二次开发实例 24 创建自定义基准CSYS控件使用(2)项目创建




上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2017-10-15 15:25:58

admin 来自 #

2017-10-15 15:25:58

PLM之家-NX9.0二次开发实例 24 创建自定义基准CSYS控件使用(3)获取CSYS信息


上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2017-10-15 15:27:00

admin 来自 #

2017-10-15 15:27:00

PLM之家-NX9.0二次开发实例 24 创建自定义基准CSYS控件使用(4)创建csys对象8 L1 e0 Q; n+ O/ U3 D

/ H- M& o# l3 f
7 v3 V! O: @/ f6 _( k( W9 Y' B

8 m- y, @  G4 H5 H8 f. O7 t9 \4 b1 K
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2017-10-15 15:27:52

admin 来自 #

2017-10-15 15:27:52

PLM之家-NX9.0二次开发实例 24 创建自定义基准CSYS控件使用(5)更改CSYS对象颜色
9 g! V5 Z! `+ ?0 _/ e
  Z" T: y+ b. d3 O$ c/ ^
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

东沟恋君 发表于 2013-12-8 15:37:44

东沟恋君 地板

2013-12-8 15:37:44

楼主好厉害.
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

大叔跳shuffle 发表于 2013-12-15 11:33:02

大叔跳shuffle 6#

2013-12-15 11:33:02

22232ddddd
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

累了就休息 发表于 2013-12-23 12:17:57

累了就休息 8#

2013-12-23 12:17:57

dsfsgsdgsdg
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

泰山小猪 发表于 2013-12-28 12:02:42

泰山小猪 10#

2013-12-28 12:02:42

相当给力,顶一个
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了