PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x

# k" h( f2 }$ g* @4 j# g+ i! O( ~* Q" N/ _1 z' b
UG NX二次开发旋转特征代码分享
4 |4 X- j$ _5 X, G& `. y  l* [' z4 a- p; n3 k, {3 l
如何使用NX二次开发进行旋转/ R" Q5 @2 a4 t  w. P. q& C! ]
7 {9 [/ m/ w- Z% ^
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    $ w5 e8 V) w, p0 x4 m, |4 e
  2. {" z4 m; |+ |0 v/ @6 W" d/ @
  3.          Features::Feature *nullFeatures_Feature(NULL);
    . o" q8 u/ K9 ]5 r$ Q

  4. ! Y% Z8 ^8 b! u/ w/ {9 X
  5.     Features::RevolveBuilder *revolveBuilder1;
      y2 M6 i( ]6 R9 \) s; D  O
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
      C! V$ v$ T3 r7 y1 X
  7.         revolveBuilder1->SetTolerance(0.001);  E: \1 i& n3 J$ N8 k- ^  R0 [
  8.     Section *section1;
    ! c; g0 j$ b+ m: ?3 g6 X( u) [
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);- Y" z! s/ n( O! O8 P' H  V
  10.     revolveBuilder1->SetSection(section1);
    + b( X  b% g! s8 d' k. ]6 g
  11.     std::vector<Features::Feature *> features1(1);
    / J. y" g! y9 X0 \' [  _* W5 x
  12.         features1[0] = sketch->Feature();; A" ?. l2 q! i
  13.     CurveFeatureRule *curveFeatureRule1;
    9 n2 u) f0 X2 X
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);4 C1 u1 d' S) w3 z% `) D  I
  15.     std::vector<SelectionIntentRule *> rules1(1);
    6 M7 V) i7 X7 _3 j' G: Z: h/ \6 z4 z
  16.     rules1[0] = curveFeatureRule1;* G7 }- b3 f4 c5 i( `
  17.     NXObject *nullNXObject(NULL);/ T- l0 o9 m9 s! c: a
  18.     Point3d helpPoint1(0, 0, 0);
    . u/ ~& w2 {0 [$ h7 B" u  {9 U( V
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    ! K0 }: {- X* ?4 g' ]* W0 y
  20.     revolveBuilder1->SetSection(section1);
    / l. B; J3 ]- k
  21.         // get UI value
    # d' ^/ w4 u7 S. `, S/ Q) h2 y
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    + m: O# V/ H4 {; e$ h& C
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    . T$ m/ X/ C' D$ d. ?9 T. I" _- J
  24.         revolveBuilder1->SetAxis(axis1);
    + e7 y- J& y9 G' E6 n- y. z
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    * p) G" J: m2 x3 U  }
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    ; P; D6 C9 X, O8 v
  27.          stringstream s_startValue,s_endValue;7 v* x/ ^& ?" d5 `! J" I$ U) K3 w
  28.          s_startValue <<startValue;
    # d) W5 _! M% G* r' Q  `
  29.          s_endValue <<endValue;
    7 N) E# k0 C8 Y) h6 z5 M' Y
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
    % J9 E, I: x) E5 n; ^  l$ C
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());( B) p. {! ?" k
  32.     Features::Feature *feature1;8 o+ X, q( N8 u+ d: `6 P
  33.     feature1 = revolveBuilder1->CommitFeature();4 L5 g* F) \8 V0 K+ N' y
  34.         revolveBuilder1->Destroy();
    6 Q7 ~5 ?% [4 w% T. _7 \( Z) t
  35.         section1->Destroy();
    $ ~5 ~- v9 \+ M8 A6 b
  36. }
复制代码
2 \1 F% u% }% [( P% ]# W0 F& o
* a& x" A& A7 n9 m$ e$ N5 t) Q$ d

) ?4 H( A* ^* l$ g$ d& @& K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了