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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
, |/ X: v( A9 n7 U5 N( e* F
6 o$ n& g% M+ D, T+ k% e- f
UG NX二次开发旋转特征代码分享
1 H" f: Q9 b! \# i. i9 n' g) Z% p4 `5 U+ m6 l" S
如何使用NX二次开发进行旋转9 N6 L- E) V  e" u
* V8 B9 @* E4 ], [2 ~' N4 O; O
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)
    1 f: @+ `. r1 d0 `5 w, u2 d% p
  2. {
    ; N" }9 d( k8 V9 @9 S- U% `
  3.          Features::Feature *nullFeatures_Feature(NULL);
    9 t/ F  T( H, q- |# P, A: F( V- h

  4. ) _& p# r2 `* O. W
  5.     Features::RevolveBuilder *revolveBuilder1;4 z7 W( C1 h) u- I
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);# m+ b% i4 K; B. p. }) I7 O
  7.         revolveBuilder1->SetTolerance(0.001);
    + T9 I. f. ~/ I
  8.     Section *section1;
    # u8 w2 D1 k  \, \
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    9 ?6 p4 a+ V/ U4 u
  10.     revolveBuilder1->SetSection(section1);9 y6 _/ k% R' s; _
  11.     std::vector<Features::Feature *> features1(1);, T# Z2 n/ G. b3 y& V* j' E
  12.         features1[0] = sketch->Feature();/ ~1 f  j2 B) X0 b. H3 f
  13.     CurveFeatureRule *curveFeatureRule1;) ~6 x8 p' H( T# C% W  J3 b) e( q
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);1 j/ t2 h# \- s& k- I% {
  15.     std::vector<SelectionIntentRule *> rules1(1);
    4 R* S& X* O2 M1 }/ F+ e4 c
  16.     rules1[0] = curveFeatureRule1;
    % ^/ a+ n+ y/ D( {1 Y
  17.     NXObject *nullNXObject(NULL);1 x4 ^# c' d4 k; e- ?
  18.     Point3d helpPoint1(0, 0, 0);
    4 o7 o& F) M, I: {) Z
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);* f9 e  ^" ?- T- c' k
  20.     revolveBuilder1->SetSection(section1);
    0 g$ n. c5 b* V. q/ P( @+ p" H
  21.         // get UI value
    , p5 c# ]% E" v
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
    / y3 ]1 n4 n- i" X
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    % q' N! B8 g& n" I) Z8 v9 N5 @1 J. A8 B
  24.         revolveBuilder1->SetAxis(axis1);
    8 U& C+ [& S: p* d" F& l- ]6 Y
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    7 k  R9 j( G& K, ~
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    ' F* F1 J' m3 W5 O6 e
  27.          stringstream s_startValue,s_endValue;
    & I$ \5 T5 Q8 p/ u; @# y
  28.          s_startValue <<startValue;
    / {; |2 |: s4 H* f; r, U5 x9 y
  29.          s_endValue <<endValue;8 L2 e& K* Z7 N4 b7 b6 f
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());
    3 Z. n3 L! z4 h& {6 a4 t
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());7 v8 k* @* e* g; j' p1 k: s# E
  32.     Features::Feature *feature1;, b. C$ d$ U! ]2 [4 t/ F, ?
  33.     feature1 = revolveBuilder1->CommitFeature();# x' f. f! O4 M# i
  34.         revolveBuilder1->Destroy();
    & s6 q# k; ?: S3 C: {- m
  35.         section1->Destroy();- h9 ^  X9 _% I8 h& ?
  36. }
复制代码

6 Y2 [  y, |+ @3 L0 `6 k
, \( A$ I; e1 j, Q9 i" [6 l7 W
0 r) }, d. V6 o3 C* U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了