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-国产软件践行者

[资料分享] NX二次开发培训源码分享: 通过选择指定特征,修改特征...

[复制链接]

2015-1-9 09:20:48 2848 0

admin 发表于 2015-1-9 09:20:48 |阅读模式

admin 楼主

2015-1-9 09:20:48

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

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

x
- e* l  {4 t# i5 D7 L9 V0 Z. j

; V/ y/ F/ ^7 P3 k$ w: ~7 A# w. d& R4 X0 [* I
创建一个选择feature的功能,当用户选择的是sphere的时候,让用户选择更改球的直径!
2 S  K! S. v( v0 }* G& q; p2 ?# H( z* N+ J: ?
Session *theSession = Session::GetSession();
) {8 o8 r' a4 m0 p6 i: _! d$ z        UI         *theUI = UI        ::GetUI();
& y. u6 M* c+ k4 }$ x4 v        Part *workPart (theSession->Parts()->Work());4 W5 K! `' t  P6 m0 ~1 ?
2 Y: q" t$ P: k* o; t" @
        // initialize the select 7 c5 _8 F1 j, X$ V: a# h. b9 p! a
        std::vector <Selection::MaskTriple> masks(1);
, N& q5 G; A# T        Selection::MaskTriple mask;# {1 D/ |( {9 z6 a
        mask.Type=UF_feature_type;
0 G. t- B- @, S, T        mask.Subtype =0;
- `/ w2 f2 S9 e0 s3 A        mask.SolidBodySubtype=0;
$ x  b: W! V& ~0 G7 C3 F        masks.push_back(mask);
" H& o& S% O: R& E6 D        //masks[0] = {{UF_feature_type,0,0}};& x1 z$ Z: F1 X" L4 l" y
        TaggedObject *object;* S' H: Y& a( l+ p4 Y6 I
        std::stringstream ss;
7 m- h& ~! Q/ f2 ^9 I        Point3d cursor;5 a! q; ]* j7 ~  m
        Selection::SelectionScope scope =  Selection::SelectionScopeUseDefault;
# A$ b6 I; s4 d" D        Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;3 Z8 T% H2 O6 E1 H1 [% r
        Selection::Response res;3 w! U& g1 w7 Z( `$ v) L+ {/ a8 X3 x
        Features::Feature * getFeature = NULL;  g& E* D9 u' I5 |; `; m7 p3 @
        res = theUI->SelectionManager()->SelectTaggedObject("select a feature:","feature select",scope,action,false,false,masks,&object,&cursor);
- Z+ T  L: Z4 ?$ w7 N' ~        if(res == Selection::ResponseObjectSelected || res == Selection::ResponseObjectSelectedByName)
* f+ a- E+ f! u: Z* |1 v& T9 @  r5 X                {0 l# J3 r/ a5 E* }
                        // get the information. B; I! L2 n+ U
                         getFeature = dynamic_cast<Features::Feature *>(object);
9 ^1 d, c0 \- F* J6 |* I3 H  Q3 W* q) k$ i6 I' }/ s' Z2 D4 D3 \8 `
          theSession->ListingWindow()->WriteLine("the select feature type is : " +getFeature->FeatureType() + "\n");8 g9 _0 Y. P$ x& s3 ]/ P. `( j
4 Z0 B9 K2 G6 W& ]$ V
                 if (!strcmp(getFeature->FeatureType().GetUTF8Text(),"SPHERE"))+ m) r# O# p8 Z; m
                 {
- q5 W0 V, i) r/ ~9 H, @: `* A+ Y# L: q                         Features::Sphere *getSphere = dynamic_cast<Features::Sphere *>(getFeature);
- B7 U$ i' A6 B                         std::vector<Expression *> exp =  getSphere->GetExpressions();$ l" ?. V" c/ S7 A7 p" U
                         ss << exp.size() <<endl;
$ {5 Z2 n# I6 Q                         theSession->ListingWindow()->WriteLine("the expression number is : "  + ss.str() );
* r  r: x1 I( V8 X& m5 ^! n& K                         for(unsigned int i =0 ; i< exp.size();i++)
7 d0 l& Y2 r* F8 d- H/ U                         {   3 w) Q' `" U( h+ D+ e" O
                                  theSession->ListingWindow()->WriteLine("The expressions are : " + exp[i]->Equation()+"\n");
2 W2 U' `* [% k! C, s" t                         }4 M+ f& i: B0 r" I$ M/ O  x+ n' ^
                         Session::UndoMarkId undomark = theSession->SetUndoMark(Session::MarkVisibilityVisible,"change the exp");
' X' Z. h2 A- i. v+ ]% i                         exp[0]->SetRightHandSide("400");
% o* K/ D# t% U5 G5 l1 R. W                         theSession->UpdateManager()->DoUpdate(undomark);
. A0 M- u  f4 Q7 ?% A. H                         theSession->ListingWindow()->WriteLine("The expressions are : " + exp[0]->Equation()+"\n");
+ X2 f! [( Z1 l6 j/ _" f                 }
2 q0 q  ^: B& ^) L3 ]' @! U. d* |- C          }
0 p  G4 F* }' H& [- P& {, N) {4 R
4 z; h+ a9 m6 S: u9 v) u
# a2 Q  O4 q' Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了