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

[二次开发源码] UG NX二次开发旋转特征代码分享

[复制链接]

2014-4-13 11:27:48 3211 0

admin 发表于 2014-4-13 11:27:48 |阅读模式

admin 楼主

2014-4-13 11:27:48

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

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

x

/ g% \! X' k+ J+ C$ `8 r% a
& I, N- g2 A, U0 j! W8 YUG NX二次开发旋转特征代码分享
' i+ }+ j- G: c7 Z& H" B/ e  j; n' ^8 w' D, Y$ b9 ~- ?$ P! W8 w
如何使用NX二次开发进行旋转
2 ?0 e$ k% h  q- M5 ~  J1 @" r( P
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    8 O8 X/ ^5 l9 z0 o' O! J
  2. {
    6 r! h, q/ ?' ?5 b* Q! W7 Z
  3.          Features::Feature *nullFeatures_Feature(NULL);& s+ o" R4 V6 t# M! [% @
  4. , D6 o& X' p. `3 H  `
  5.     Features::RevolveBuilder *revolveBuilder1;
    3 K* _7 P; R& Q* U# \- U5 l# v1 U) ~
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    - @/ K) C( ^: k0 X: g7 a
  7.         revolveBuilder1->SetTolerance(0.001);
    ' H, q; ~! ~+ y- p
  8.     Section *section1;
    2 ^) b' w4 c* _4 m; A3 q% q
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    & z$ A" n  t* E3 ~
  10.     revolveBuilder1->SetSection(section1);
    , p0 n* J& s( y( e$ @5 ?
  11.     std::vector<Features::Feature *> features1(1);) U! i# J( w0 a7 a6 d/ l' C
  12.         features1[0] = sketch->Feature();
    ) ^! K: H- }7 H6 i
  13.     CurveFeatureRule *curveFeatureRule1;: h5 c% P/ g6 p) O! s+ W* T; z
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);9 N+ V- Z3 B! M  |- ?
  15.     std::vector<SelectionIntentRule *> rules1(1);
    % w( c( d6 J$ Z3 j! [
  16.     rules1[0] = curveFeatureRule1;
    9 Y6 }! u6 }% o( E- \
  17.     NXObject *nullNXObject(NULL);4 u3 S3 o) i, q
  18.     Point3d helpPoint1(0, 0, 0);
    3 f, {; {: q! [- J
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    # N6 |" _* P6 A, s
  20.     revolveBuilder1->SetSection(section1);  Q1 {  c. P$ B
  21.         // get UI value
    ) m0 p* o' p7 L. w+ R. B
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");4 g+ |! E  Y. Q
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    + G; ~+ f; \5 d3 a
  24.         revolveBuilder1->SetAxis(axis1);$ M7 K- y; T7 @  Z9 t* J
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    $ ^% @) C- N9 Z4 Z$ w
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");( H& a, f' H, m
  27.          stringstream s_startValue,s_endValue;
    ! n% b+ _" R( d9 ]% Y- D( ]
  28.          s_startValue <<startValue;( x% s# J& s( L2 K' h
  29.          s_endValue <<endValue;4 t1 o8 x0 s+ E0 W9 p5 J
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
    / H. ?& A8 W4 x  ?
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());
    ! `" V+ h$ p" ]  L( s+ A3 ?
  32.     Features::Feature *feature1;* B& W" _4 O+ w' K, u
  33.     feature1 = revolveBuilder1->CommitFeature();3 m& Z% I6 \/ `0 s9 k
  34.         revolveBuilder1->Destroy();
    % \+ h: k# |$ ?, Q4 A7 I7 D, h# b
  35.         section1->Destroy();
    1 d# r) q) M( K' r
  36. }
复制代码
* s/ c' D; z& j8 z; F3 S$ }

, M8 J1 l0 F. T
/ M% v/ C2 t) t# E
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了