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

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x

) }- c8 O$ W0 r7 [1 p# b8 z  h/ H' i% P" l- c2 H
UG NX二次开发旋转特征代码分享
# k4 p/ `/ S- ~4 [% h! e( i
; R, U+ R# W% g" `7 D* b如何使用NX二次开发进行旋转
4 x% s" f. w; ^6 F! S/ r+ K( ]" c/ t5 H2 d, H
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)/ n+ I5 c1 ^$ J, H$ B$ Z* D  E
  2. {1 w! H' a2 Y9 t3 I5 v$ i7 ~8 m
  3.          Features::Feature *nullFeatures_Feature(NULL);
    , A" i. D" E. |7 y* r* ?

  4. 6 |# y  [7 u, z
  5.     Features::RevolveBuilder *revolveBuilder1;
    % f5 o2 \+ w, k+ l0 U
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    : D+ z* n! l- u  @; l
  7.         revolveBuilder1->SetTolerance(0.001);
    0 G8 e% Y: r6 E/ ]" P
  8.     Section *section1;1 }5 f1 `' n7 v+ Y- s
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);* G1 j$ K4 l: U+ B' R; i
  10.     revolveBuilder1->SetSection(section1);
    - s8 N$ h6 B# n7 z% h. f- b" n4 c4 r
  11.     std::vector<Features::Feature *> features1(1);
    5 t* l$ w# B% H& @
  12.         features1[0] = sketch->Feature();- V7 e( J/ t# T- L/ A* v7 c
  13.     CurveFeatureRule *curveFeatureRule1;, _$ Z4 `% |- u, O4 C) S5 ^: C
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);) r" M' D4 X1 l# P1 a, B( n9 ?! d. H
  15.     std::vector<SelectionIntentRule *> rules1(1);3 `) G4 w8 d' A* \
  16.     rules1[0] = curveFeatureRule1;
    % D1 K9 m% S1 a* S1 p. w
  17.     NXObject *nullNXObject(NULL);
    & a7 m1 E0 a% @
  18.     Point3d helpPoint1(0, 0, 0);9 H" [' Y1 F9 q7 w0 F8 K
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    5 Q1 W( ?. m3 n3 i; y1 j
  20.     revolveBuilder1->SetSection(section1);
    $ b* ?) [3 B, L' o  l, u1 C  M
  21.         // get UI value
    - I. N3 Q4 L( e5 C3 c
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");7 d. A9 |* r: G5 T2 g2 w5 r$ G  N0 p
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    $ d5 i% Q+ @+ e9 M- P
  24.         revolveBuilder1->SetAxis(axis1);
    2 M( H( B' p( h. N3 j( A$ ~& a% Q# h
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");  W, K8 E  h) x+ b
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    6 d/ J) Z4 E) v" Y
  27.          stringstream s_startValue,s_endValue;' D& ?5 g1 z$ k
  28.          s_startValue <<startValue;
    9 z/ a' b+ u1 V  K5 [
  29.          s_endValue <<endValue;
    , ~. Q  X5 e' {# _; f# Q3 Y' ?
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());& A  w  X$ R! J+ k5 ]3 K# f
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());! A% x3 p7 T2 w1 b% u
  32.     Features::Feature *feature1;
    $ v( J5 _2 }" w. M9 Z# r& G% j
  33.     feature1 = revolveBuilder1->CommitFeature();$ a& z; S2 _; v! c+ l9 [; _
  34.         revolveBuilder1->Destroy();
    " _5 A7 B% f3 p% l
  35.         section1->Destroy();' Y- x4 k' Q6 o, U+ z- O) @, H: y
  36. }
复制代码

* A( u8 ?# e+ j+ U, L' j$ f' r- G2 W3 e; t% i  c

6 Z( a9 [/ ]; g  H9 e- O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了