PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x

0 @8 E- P) p" i+ T1 Y# V# z7 f; W- \2 p! G; j+ i. G! Q
UG NX二次开发旋转特征代码分享
7 `% x4 P9 W8 ?8 f! u) }+ I: J6 r9 G8 O
如何使用NX二次开发进行旋转% _0 ?$ y$ H, F  `, {
; b. h- N" q+ L5 p) X( e
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    ! L) y; i9 f: y9 Y: [- W+ B
  2. {
    6 Q8 O2 m) A. b& u6 R3 E
  3.          Features::Feature *nullFeatures_Feature(NULL);
    , G5 H+ Z* l! f) E8 c
  4. ; W0 I) d0 o2 Q
  5.     Features::RevolveBuilder *revolveBuilder1;$ h1 n: M6 @0 v; G3 i& @
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    # k* L* ]9 V7 j9 a
  7.         revolveBuilder1->SetTolerance(0.001);+ k; m. f2 n4 {/ u0 [; i
  8.     Section *section1;
    4 O6 T' m, @$ V9 ^/ E) e" c& l0 B
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    , U! ~( n, \' A" W9 Z0 d
  10.     revolveBuilder1->SetSection(section1);/ r" m5 q: J1 w( `
  11.     std::vector<Features::Feature *> features1(1);
    ) [, x. c  [7 y8 H7 s* ]/ }
  12.         features1[0] = sketch->Feature();3 j& U- F0 v. _4 P( Z1 l! I
  13.     CurveFeatureRule *curveFeatureRule1;8 Y1 `6 X# R% r8 V
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);/ }# R# r$ F( p' w& p1 d, T
  15.     std::vector<SelectionIntentRule *> rules1(1);
    - v3 ^( N6 u  o7 B& L6 k
  16.     rules1[0] = curveFeatureRule1;
    7 e' M: H' O6 A
  17.     NXObject *nullNXObject(NULL);3 }7 t3 e* Q" w0 b, n! t( f
  18.     Point3d helpPoint1(0, 0, 0);
    9 y) c6 D: V7 n6 k
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    4 c/ W# p4 D" ^) B' a3 o$ s; M) n4 ~
  20.     revolveBuilder1->SetSection(section1);
    3 y7 I& _6 \1 {" M1 |
  21.         // get UI value
    6 W$ \+ W' I0 W3 K
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    - s8 S' L. A& u6 @3 m8 R8 N
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    3 s2 n1 z+ _6 U: f
  24.         revolveBuilder1->SetAxis(axis1);
    ) Y, R7 h! j2 ~8 i6 h; D' ^1 A& T
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    . @5 z, i3 v3 W& |
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");" v" Y) ]9 w; v- W+ B7 o
  27.          stringstream s_startValue,s_endValue;$ e  e+ ]2 O, Y+ M
  28.          s_startValue <<startValue;( b5 u$ a  {+ A" [+ H) R
  29.          s_endValue <<endValue;
    5 f) f' j9 I8 X% T' `
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
    : @5 a" x2 ^  ]0 `2 L
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());& N2 i3 w: \' r* X; t% o
  32.     Features::Feature *feature1;
    1 f" q" v3 u- c, n, o
  33.     feature1 = revolveBuilder1->CommitFeature();
    / d* C6 [: h7 Y8 l* j! `* B7 f
  34.         revolveBuilder1->Destroy();7 q; W* z4 k! |
  35.         section1->Destroy();
    ! z# U- H4 K7 K- I6 s
  36. }
复制代码

% }* T0 S2 W- Y1 f0 v1 R7 l; R: z: W: s- `3 S
/ O! w4 F- W  b9 O. V+ e) z4 I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了