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

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x
" A# z# R9 r; ?+ W- T% t% h5 s1 R3 ?

7 Q( t: b5 i1 `0 g0 N+ N. _8 K& u: dUG NX二次开发旋转特征代码分享
4 w  c) @6 ^4 I# X3 F3 J. z) ?9 a* ?& X) Z% l' A
如何使用NX二次开发进行旋转
6 a, l( y) b7 ~( y( m
  z1 N' e( k9 V- w4 X& a& K2 ^
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    8 p; K# d- P5 V
  2. {  m* [3 {& ~  r7 B% ]: Y
  3.          Features::Feature *nullFeatures_Feature(NULL);
    + w3 b- ?& ?: U6 K, I
  4. 5 z% C  a5 ^0 e" G
  5.     Features::RevolveBuilder *revolveBuilder1;7 a4 X+ D" I& N0 L0 R
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    : x+ v2 H% D7 u- V2 l  _) u/ {& Q% x
  7.         revolveBuilder1->SetTolerance(0.001);
    & C  C- x1 r. B/ e2 |- J
  8.     Section *section1;' ^6 @0 x/ `' Y' n+ L3 Y
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);+ S3 ]$ x2 ~7 T' F" e2 P: p
  10.     revolveBuilder1->SetSection(section1);( q0 y, _  J* ~, D9 d/ X
  11.     std::vector<Features::Feature *> features1(1);
    , h" H. ~9 U, x2 y% Z" [
  12.         features1[0] = sketch->Feature();
    + N4 t! |4 ]3 _; H
  13.     CurveFeatureRule *curveFeatureRule1;1 e" n8 C7 [6 P# A) t/ ]& C/ B" K
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);
    & z. x0 U+ Z9 ?) K. j8 f
  15.     std::vector<SelectionIntentRule *> rules1(1);
    % r) _# \% X- F1 U0 J
  16.     rules1[0] = curveFeatureRule1;# L$ q6 n% K$ a/ g" z
  17.     NXObject *nullNXObject(NULL);" k& b( f% ]/ K  [7 p  e5 k
  18.     Point3d helpPoint1(0, 0, 0);
    ! X2 T$ \7 U* d. D! A! j  b5 ^
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);0 h& r& j" v& Q8 J" t8 W9 b" O
  20.     revolveBuilder1->SetSection(section1);7 a9 i# X; j! f8 K) Q+ O2 t) V
  21.         // get UI value
    ) K2 L+ r( C- ]' ~
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    8 a! H- {% U" x$ u: p- q
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);# L  ~; h# H! B/ a
  24.         revolveBuilder1->SetAxis(axis1);+ ~4 c; _* J& \. Z" N1 r! }
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");9 E' r1 l( J2 C* s$ v1 z/ p
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    ; T$ G8 B" H8 m+ q6 y2 l
  27.          stringstream s_startValue,s_endValue;6 V* \- a& r# E# o
  28.          s_startValue <<startValue;, i* N, e' g* ]) P$ o6 w+ R) }
  29.          s_endValue <<endValue;( p& u4 W0 l, e  y
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
    " p4 \6 X2 b+ @- i9 X( @
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());  W0 c# p) f: Z# t# R
  32.     Features::Feature *feature1;
    7 [4 {+ R9 H3 w% R" o! h2 Y/ y
  33.     feature1 = revolveBuilder1->CommitFeature();
    % H4 L. _8 N5 N
  34.         revolveBuilder1->Destroy();  x" D+ F; d/ i! P* U8 W& L
  35.         section1->Destroy();
    ) E: r4 U' o9 I3 U
  36. }
复制代码

4 N; o0 a7 i( k/ D& r
" E7 i4 X  \8 W* v6 x. w0 R- a* n- h; V. y0 }$ U; p" G3 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二次开发专题模块培训报名开始啦

    我知道了