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

[二次开发源码] 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

- d4 X- j% l4 d8 X+ C& Y. C: l$ k% r) \! C2 S/ u5 `% v
UG NX二次开发旋转特征代码分享
5 S6 [2 b9 }4 C1 k4 O, j) H* G/ _* q0 g7 _
如何使用NX二次开发进行旋转. Z# ]) s6 ?3 `5 ]6 Q

' z! Q: E5 Y8 w" O/ J1 v
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    . B, c) X4 l6 z& I( ~
  2. {
    / F$ Y. ^- m) |4 U- r2 q
  3.          Features::Feature *nullFeatures_Feature(NULL);/ \+ o# K5 J) ^+ ^9 h0 k6 b
  4. + Q/ K* [- G- }" d5 G  E# q
  5.     Features::RevolveBuilder *revolveBuilder1;
    5 P# m8 H/ ~% e4 o7 Q3 h% ~
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    1 g2 S9 i* G% ?# R
  7.         revolveBuilder1->SetTolerance(0.001);) s* i4 H  a, t6 @
  8.     Section *section1;
    7 d: e' ^! ]" A$ Z3 X
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);" I, z- H) t; M# Y* h! c0 Q! K
  10.     revolveBuilder1->SetSection(section1);
      z8 u% D/ o+ K, t0 A
  11.     std::vector<Features::Feature *> features1(1);) @/ n2 q* H* K  P- r
  12.         features1[0] = sketch->Feature();
    7 X$ N$ G# j3 z# e9 _3 F
  13.     CurveFeatureRule *curveFeatureRule1;
    3 @* Y8 a& w4 `# C6 k
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);$ ?3 Z2 G2 T" ~
  15.     std::vector<SelectionIntentRule *> rules1(1);8 X3 z3 B8 y: U1 T# g
  16.     rules1[0] = curveFeatureRule1;
    : X" S6 M& M8 F7 V# U
  17.     NXObject *nullNXObject(NULL);5 K2 D0 B2 c' ?- K/ F) [
  18.     Point3d helpPoint1(0, 0, 0);% I/ O# I5 z2 l) a
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);7 I" }# F! K! Q
  20.     revolveBuilder1->SetSection(section1);
    " q+ g9 |8 Z4 Q7 F2 ^' d
  21.         // get UI value
    0 C" C7 Y- Z$ r9 E. H
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    : W  @2 h0 z7 `/ ]
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);: ?" E- I) ^, B& L0 P5 U
  24.         revolveBuilder1->SetAxis(axis1);
    , N$ u5 X/ l, }; y8 [
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");# c9 ^1 v; D: x" C3 T* M
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");0 ?. w, c, x0 t# H( \+ f
  27.          stringstream s_startValue,s_endValue;" L, l& ~, T8 y' ]7 ?- Y. J1 ~
  28.          s_startValue <<startValue;
    * `( X' o5 N1 C, E
  29.          s_endValue <<endValue;7 s# }* Z3 u) A+ @2 m8 ~
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());* e; D& [8 L# k2 k
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());+ l3 i; @( a1 Y& K. @' n$ V3 S  W4 {
  32.     Features::Feature *feature1;$ R( x: `2 P* h5 w& m7 B
  33.     feature1 = revolveBuilder1->CommitFeature();
    ; [8 @/ g; h! c& {
  34.         revolveBuilder1->Destroy();
    8 D# O; }$ q7 f5 s( e2 a0 }& a
  35.         section1->Destroy();
    # c# z0 q8 C9 w4 }" p# [  p: r/ o
  36. }
复制代码

  i, v9 N2 \; _) _% v
1 h/ F. @* B1 F" G' {4 ]' R) G: V* n& M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了