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

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x
  L# Z/ q, ]# M/ G
! B& Z! J: Y( f( Q" ?7 P
UG NX二次开发旋转特征代码分享
9 `1 H& o3 m& [  c, t" ~- F6 y3 b' }/ c1 {3 W
如何使用NX二次开发进行旋转
9 M& G2 Q1 x6 p
' R9 I. q. t' U' }0 e1 A2 \$ y$ n
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)7 S% l* [$ i& g3 \8 p2 I9 b8 R
  2. {8 u# a% {2 |+ F" b9 ]* h- H
  3.          Features::Feature *nullFeatures_Feature(NULL);  A2 g/ _. [; E( ~! y( X! C' V) M

  4. + I& R; P% e+ T/ x3 _, v  o
  5.     Features::RevolveBuilder *revolveBuilder1;2 I; |# y  U0 U  g5 f
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    # E3 M; t6 H% Q
  7.         revolveBuilder1->SetTolerance(0.001);# m5 k- d2 ~: G
  8.     Section *section1;
    ) S, p+ b, q+ k) p4 @# }6 E% a
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);0 X3 p; E  l1 c/ _3 _
  10.     revolveBuilder1->SetSection(section1);
    ; {9 l* o3 \5 [
  11.     std::vector<Features::Feature *> features1(1);
    ) J' d2 A& @3 m" P
  12.         features1[0] = sketch->Feature();
    # S# f6 D) ^$ g8 J" b
  13.     CurveFeatureRule *curveFeatureRule1;4 ~0 Q& d# O9 K3 h- K, M% `# N
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);
    - Z: ]1 L2 |& c- H; Q" f
  15.     std::vector<SelectionIntentRule *> rules1(1);0 c7 K7 S8 J* j' l- G/ w
  16.     rules1[0] = curveFeatureRule1;
    4 u5 _2 }* c) R  ?8 i
  17.     NXObject *nullNXObject(NULL);
    ; F7 |6 E8 p& h' G* D" k+ W
  18.     Point3d helpPoint1(0, 0, 0);
    " K. i+ K4 |" E4 I  g; T8 a
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    6 D* J. p1 I' I* h  D4 P" E" U3 ?, W
  20.     revolveBuilder1->SetSection(section1);& l1 G3 u# N; }1 }! W
  21.         // get UI value
    $ N: A+ Q" u, T- [  \  C- k
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");9 ?3 u. x1 u6 |9 a. |9 Z3 y
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);, U* k# s1 S1 o# G; G
  24.         revolveBuilder1->SetAxis(axis1);0 v8 R1 l6 F( Y
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");0 E1 ]% O/ ^. N3 w
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");" T2 Y( V' G1 X: e3 O
  27.          stringstream s_startValue,s_endValue;  p$ ^  A" U5 \5 p
  28.          s_startValue <<startValue;
    : i( I3 S! t  [# P. d0 ]
  29.          s_endValue <<endValue;
    ; I7 W4 Z/ i% ?% W/ T6 t7 a1 P
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());6 N  Z9 |) T* ]7 s  L9 q$ m+ B
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());
    ( Q7 j7 b- z3 L/ @6 j6 Q3 ~
  32.     Features::Feature *feature1;
    ; s- W* V  B& J) E2 o
  33.     feature1 = revolveBuilder1->CommitFeature();
    4 B  y# w$ n9 r
  34.         revolveBuilder1->Destroy();& e8 z8 _. Q2 R9 v+ `; I0 d# E
  35.         section1->Destroy();/ i9 c2 I7 K9 E5 |
  36. }
复制代码
8 |4 }5 F) t& ?9 t" f( l+ z4 l

+ k( l  q8 v5 K2 d2 ?$ _
2 k& J5 k* ~; E5 I  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二次开发专题模块培训报名开始啦

    我知道了