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

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

[复制链接]

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

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

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

x

9 V6 \$ R! {% Z  E! c7 t, \
1 W9 ~6 G5 E, a9 H/ O9 ?4 yUG NX二次开发旋转特征代码分享6 T5 \& j. U$ [* A  y

( w4 j' n1 Y3 [1 ^3 }2 K4 g) G7 b如何使用NX二次开发进行旋转; @; Y9 d% J, I7 t
2 l0 E% \+ Z1 l4 R7 i/ v; l8 }5 ~
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    , i8 Q0 K( r- i* M5 Z4 ~
  2. {
    ' W6 Z) ~- Q% S/ I8 D/ K1 y
  3.          Features::Feature *nullFeatures_Feature(NULL);7 @# n* t9 C, s* a1 y* i
  4. / d* Q& `; K9 D# _) o! [- Z- I. s
  5.     Features::RevolveBuilder *revolveBuilder1;
    4 o* E$ ]4 @- T% g+ b1 i0 X8 W7 F
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    / V& M7 w2 A  Y8 ~! [
  7.         revolveBuilder1->SetTolerance(0.001);
    , b& Q- B! t4 f% a: U$ ]
  8.     Section *section1;
    $ N/ b/ z8 y3 e; ]: G
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    & {) C) ?. E" E/ q: a6 G
  10.     revolveBuilder1->SetSection(section1);
    2 Q* e1 Q6 z  @$ m( B7 z. \) |& k  n3 b
  11.     std::vector<Features::Feature *> features1(1);
    + j/ o( S* M# e: [# L
  12.         features1[0] = sketch->Feature();& A% h0 s" U/ A4 [* T4 I+ v
  13.     CurveFeatureRule *curveFeatureRule1;
    1 a  O4 N0 H' O6 Q
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);/ t- y0 P6 b0 R5 r. V* c, b' V
  15.     std::vector<SelectionIntentRule *> rules1(1);
    " p3 O! o0 D" l% J
  16.     rules1[0] = curveFeatureRule1;
    . ^, z: T# i) ~; `! z& E* L& h9 n% v
  17.     NXObject *nullNXObject(NULL);
    9 g$ }/ R, D7 }& S8 v
  18.     Point3d helpPoint1(0, 0, 0);
    . x% d, X& m) z$ l6 l" e
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);9 j" D: W3 n: b) W
  20.     revolveBuilder1->SetSection(section1);
    & v* w9 }+ L# T+ f
  21.         // get UI value
      d7 i. a3 b* h/ L; S4 r
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    1 ~+ \6 D! O& E1 d1 X! Z
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    # V3 Q5 t  f& ?0 K
  24.         revolveBuilder1->SetAxis(axis1);* ^- W$ j( f: [$ n
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    2 Y, A( _; X0 o: o) ?! W
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");& w9 Q8 |( X0 w. d/ ^- ~+ X" [7 g
  27.          stringstream s_startValue,s_endValue;
    1 k. s$ Y6 j" T. z, b2 }1 l6 W
  28.          s_startValue <<startValue;
    , {, C6 b9 }0 h# a/ L
  29.          s_endValue <<endValue;
    2 x* X6 m$ o1 N+ K8 L
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());  c. y9 j, y2 D+ _
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());
    ) F4 @4 D( G5 Y- j- s$ v7 q" G5 z
  32.     Features::Feature *feature1;
    , ]$ L/ ^- `* m5 f, R  a
  33.     feature1 = revolveBuilder1->CommitFeature();7 f  K% B7 X! g0 W6 a2 i; y7 S, m
  34.         revolveBuilder1->Destroy();
    ) h* n' H) n/ ^, p: H* @' k
  35.         section1->Destroy();
    6 ]8 H! Q- q. F! V( @% x9 P* w
  36. }
复制代码

0 A! E3 A; N3 t  H6 Y! s8 z
9 P, d. [! ~0 O, ^, _* S# w3 m5 D- ]% @6 t1 k# Y7 l( f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了