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

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x
  h# _. Z( k: b

( y2 k2 }2 U- K+ l4 D3 t3 CUG NX二次开发旋转特征代码分享
* X6 X5 n) S; U6 `( l! j: L& E0 H/ q% h5 W: k( A( S
如何使用NX二次开发进行旋转
' C6 L. [+ J3 y; ~. W/ H/ }7 V/ y" u4 y" g0 o3 N2 o" d
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)$ N* c- u- X! @, H, ?
  2. {5 ^* K' l8 M* v% _. t+ D+ n9 ~
  3.          Features::Feature *nullFeatures_Feature(NULL);* B% K* ^! q7 ^
  4. 8 L/ k4 u  ^7 y0 R7 z. r8 R
  5.     Features::RevolveBuilder *revolveBuilder1;+ G! I% m& j6 V7 d* x, ~. E0 Z7 A. k- H
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    ; I- B: ?; |1 M4 r5 L$ Q  e+ e
  7.         revolveBuilder1->SetTolerance(0.001);
    : j0 d7 p4 `0 Y; `
  8.     Section *section1;
    % ~% j- n3 x6 t3 p7 |9 X8 ]3 ~
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    / f# N/ l/ B6 R" g. X4 b. V: _* v$ O
  10.     revolveBuilder1->SetSection(section1);
    7 `/ [0 t3 z7 m" P
  11.     std::vector<Features::Feature *> features1(1);3 Y: S$ N: X% \+ p
  12.         features1[0] = sketch->Feature();
    $ l( ~4 |- `% G& `" y: R& A
  13.     CurveFeatureRule *curveFeatureRule1;$ h' R- Y* q8 R6 |( W/ n
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);
    : |+ y9 Q5 ]4 L* j0 h
  15.     std::vector<SelectionIntentRule *> rules1(1);
    * F; F' p  Q2 \
  16.     rules1[0] = curveFeatureRule1;
    + @) x4 F: S+ F
  17.     NXObject *nullNXObject(NULL);4 P! z1 d. L+ D1 W: M6 ]- O' T
  18.     Point3d helpPoint1(0, 0, 0);8 I4 K* u. V2 }* M) P. h2 O; \
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);4 @- C+ Z3 F6 a
  20.     revolveBuilder1->SetSection(section1);
    " {+ ~# a' n  E+ D
  21.         // get UI value1 _8 I; B( ?; x2 V: W4 K
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");1 Z* z* @! x2 S. [4 v" c# e. A
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    ! ?  T8 _8 k+ _  ^
  24.         revolveBuilder1->SetAxis(axis1);
    ( |3 _) b; |3 d
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    7 ?7 p- R0 m- C  x: L
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    1 V7 s" r) r) ^0 d
  27.          stringstream s_startValue,s_endValue;
    4 `$ d: w, h) v# `1 M
  28.          s_startValue <<startValue;2 |6 f" M( V8 n
  29.          s_endValue <<endValue;
    : y1 X# @/ C6 R% J0 L. `9 ?
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
    + B  @- L  y8 o4 E( O: [
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());
    / S7 }3 x' P/ ?8 r
  32.     Features::Feature *feature1;7 `! C, b, C+ W
  33.     feature1 = revolveBuilder1->CommitFeature();
    - X& a& F/ Y& e4 e
  34.         revolveBuilder1->Destroy();0 g  N* c( r6 [* U
  35.         section1->Destroy();
    1 J. O# o9 g1 y
  36. }
复制代码
) C( y, A8 v; f5 x& c- Q
# o7 l, k* }+ i" r

8 b5 Z1 g" G3 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二次开发专题模块培训报名开始啦

    我知道了