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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2014-4-13 11:27:48 | 显示全部楼层 |阅读模式

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

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

x
& ~* ~% C: y* C* _

! C9 ^( B+ D! P2 a4 q! a$ dUG NX二次开发旋转特征代码分享
4 U- ~: T3 g, o" S+ b( b0 C0 i6 E6 B7 U; ~9 n+ @1 `
如何使用NX二次开发进行旋转
$ ~6 \* s' i4 H4 M+ l' Z7 w9 g; ^8 v7 \, A4 a/ X6 w; [, [
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)0 _9 N8 I; d& Y5 }# t9 @  r
  2. {
    2 j8 y8 t0 u: [* n
  3.          Features::Feature *nullFeatures_Feature(NULL);! ]3 A2 u3 t4 T
  4. . x% @$ q$ s1 j7 H. z# l! N
  5.     Features::RevolveBuilder *revolveBuilder1;6 p5 |5 T0 m: `& a+ c( H
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);7 i. b$ Y( H# \  a0 A" p, Z* g" M; J
  7.         revolveBuilder1->SetTolerance(0.001);
    $ k; I8 C* R1 w* L, D
  8.     Section *section1;
    1 i. s3 f" q: o8 g& @( ~
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    % a; y& ~$ E6 w: n5 ]4 W3 X
  10.     revolveBuilder1->SetSection(section1);
    - [0 @9 y9 k. u# t* \; s  X
  11.     std::vector<Features::Feature *> features1(1);
    ' f6 u: ~: v; t, B
  12.         features1[0] = sketch->Feature();
    5 h* s$ G+ G0 W& R1 T
  13.     CurveFeatureRule *curveFeatureRule1;
    " {8 W1 p+ i! M- Y( X
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);6 q1 H: O7 x4 W) y, G: e: I
  15.     std::vector<SelectionIntentRule *> rules1(1);
    ! s5 f- B2 n# `2 J% F" _
  16.     rules1[0] = curveFeatureRule1;9 o$ l" u  ?/ u
  17.     NXObject *nullNXObject(NULL);
    * }6 a9 N: w6 I$ Z  a
  18.     Point3d helpPoint1(0, 0, 0);
    ' _7 r7 w" I2 u5 C2 G
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);: ^9 d* I- k% P9 P
  20.     revolveBuilder1->SetSection(section1);
    : z! V' h5 ]( [) A
  21.         // get UI value# y$ z" q4 M7 b8 c8 c$ X9 F
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");: ~5 D( z/ m- O: o  i
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    1 v! Q. A& D8 {$ U( j  y' c
  24.         revolveBuilder1->SetAxis(axis1);
    " v& E8 z( I5 A( {% i5 x& H, `
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");/ E) N  m3 q: [% z
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    - u! k0 ?% [' H1 \- u4 v; H1 E# _
  27.          stringstream s_startValue,s_endValue;) j& J* l) O6 P( H
  28.          s_startValue <<startValue;
    7 X/ _) _- c+ K
  29.          s_endValue <<endValue;' w/ |3 ?( a. w+ I/ p
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());9 w: |# u; I7 r* r' P( S6 C9 e
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());& Z6 p5 ~2 Z1 Y* _9 i" i
  32.     Features::Feature *feature1;; r, E3 I6 d6 m, K5 Y
  33.     feature1 = revolveBuilder1->CommitFeature();
    / _+ I5 G. z& V5 Y5 m2 W$ n# n* ?
  34.         revolveBuilder1->Destroy();
    ( a6 V& w& N+ |3 d4 z- r
  35.         section1->Destroy();# \, i* r8 l' J3 ?6 R. H; c
  36. }
复制代码
! @$ A+ ^" R- Q$ B) w3 d' X/ {9 t% e

2 j0 T; E+ {2 D6 \# `
6 K( j' c, ]+ Q5 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二次开发专题模块培训报名开始啦

    我知道了