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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82168
QQ
发表于 2014-4-13 11:27:48 | 显示全部楼层 |阅读模式

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

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

x
" G/ u/ _3 }5 |  x6 o
: F1 T. n  D3 W/ N9 T
UG NX二次开发旋转特征代码分享, m1 c' G) y$ Y( g" j4 }. }) Y9 y0 D
3 V5 }3 t8 m1 g( }* ~
如何使用NX二次开发进行旋转& o  D7 T8 i' u% H: x2 N2 g9 g

7 A! S& Z- N7 X+ f. S# \
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)/ @) ]2 k5 ]1 Z6 o9 S- i8 b/ h
  2. {- X; A$ z. _0 E
  3.          Features::Feature *nullFeatures_Feature(NULL);3 B! U/ J6 \, a
  4. ( A+ ]7 V. d% w5 V
  5.     Features::RevolveBuilder *revolveBuilder1;! ?4 P. T( M5 h+ S* s3 G6 g7 @; C& w) G
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    0 A- K5 N* R& z$ R5 g" n- u
  7.         revolveBuilder1->SetTolerance(0.001);# ?2 Q; \: M, ]) B
  8.     Section *section1;
    4 Z% C8 @4 n+ d& I
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);8 N# j: [  P7 E! \+ b' p) ^
  10.     revolveBuilder1->SetSection(section1);
    7 `2 X2 b# Y3 N$ J, @9 x( P  w+ z
  11.     std::vector<Features::Feature *> features1(1);
    8 R+ o0 A: u, C" a/ q
  12.         features1[0] = sketch->Feature();
    , P% d) j5 _2 x4 |  ~! }
  13.     CurveFeatureRule *curveFeatureRule1;
    : h+ G% D+ T0 o; j
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);
    - U5 q# A5 `3 l8 B( k' w! n
  15.     std::vector<SelectionIntentRule *> rules1(1);" L% W  F9 m: u" w2 E
  16.     rules1[0] = curveFeatureRule1;( Q  a3 x+ w- k) K' |* _
  17.     NXObject *nullNXObject(NULL);
    ) g3 c% ?8 M7 b
  18.     Point3d helpPoint1(0, 0, 0);3 _1 _, o) ?* }+ p) V% \
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);  x! Y; @0 x4 [! o. Q! h
  20.     revolveBuilder1->SetSection(section1);* |! `& ], y6 f: q: k8 n
  21.         // get UI value
    1 S* ?5 c& x; F6 v7 G
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    : o, j/ w' e& l, J  R
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);) t6 Z, l' j( {9 I7 s
  24.         revolveBuilder1->SetAxis(axis1);" `" e' N' `7 V7 }" s+ D9 ~5 Y, i
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    : v' U0 q' j% \7 k) i9 f6 E
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");1 e( v2 Z# G6 V; E" X
  27.          stringstream s_startValue,s_endValue;/ b4 H0 B8 `% q) I" @% N
  28.          s_startValue <<startValue;
    ' J. B5 c5 a) R
  29.          s_endValue <<endValue;3 F- G4 H! X7 x: }8 E% |4 N
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());  n. n* z' o; Y, o7 h, R$ y/ l
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());
    - w5 d6 p. n- T: S7 A0 Z. b3 [
  32.     Features::Feature *feature1;
    . p5 ?: M% E1 K5 J: X/ L( W1 c
  33.     feature1 = revolveBuilder1->CommitFeature();
    4 R; W: L: @0 z7 K6 N  |0 V! i
  34.         revolveBuilder1->Destroy();
    - g$ N7 q4 k/ ]6 k8 t
  35.         section1->Destroy();
    7 I- x, |% I3 Q' G) W
  36. }
复制代码
" m1 f9 K0 K$ ]2 c: F
+ {" N  z8 ], O/ w9 x9 g! O& M

! b  {  [# a7 a  ^! B3 n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了