PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-4-13 11:27:48

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

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

x
& V0 @. T, P% S. }' E9 `0 Z
; D& `/ r0 o, C3 m: @
UG NX二次开发旋转特征代码分享
' M; V! v6 A* z9 H) l4 Y1 P8 @
9 y$ {  ~3 R* G- v  i& p如何使用NX二次开发进行旋转: O  Y! S* f* \. n3 E4 Z( q/ m% t
  ]2 o  g7 {7 L5 A/ g( R
  1. void lesson33_createRevolve::createRevolve(SkeTCh *sketch)3 H3 F# H: }! l1 ]
  2. {
    * g0 j5 Z1 l$ U1 G5 |, C7 T! e' ?( D" C
  3.          Features::Feature *nullFeatures_Feature(NULL);
    * Q: }. Z* m9 [6 r- N
  4. ( p+ T9 S* M* u; P' {/ o8 L  |5 U0 u
  5.     Features::RevolveBuilder *revolveBuilder1;$ u; l$ w( n& b) y8 g8 s; ^: ^
  6.     revolveBuilder1 = workPart->Features()->CreateRevolveBuilder(nullFeatures_Feature);
    / [$ Y1 q: Z/ o1 ]
  7.         revolveBuilder1->SetTolerance(0.001);: u; P8 i5 ]: Y9 Q
  8.     Section *section1;
    / ^& z" U* \. S. D) G$ c
  9.     section1 = workPart->Sections()->CreateSection(0.00095, 0.001, 0.05);
    0 @. ]' Q& G4 p3 a
  10.     revolveBuilder1->SetSection(section1);1 _# c; N, y  R2 {- {; H+ C  D8 a
  11.     std::vector<Features::Feature *> features1(1);7 K, g" n# [4 f2 b; z/ B
  12.         features1[0] = sketch->Feature();
    / s6 W7 g  K! C
  13.     CurveFeatureRule *curveFeatureRule1;- k% |/ S  y, l  M
  14.     curveFeatureRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeature(features1);
    ! ~, U, K/ k% F- L3 g7 Q! Q# a
  15.     std::vector<SelectionIntentRule *> rules1(1);
    * R' `5 L& e4 g1 O
  16.     rules1[0] = curveFeatureRule1;
    : j6 z8 u4 J4 b" G4 }& R
  17.     NXObject *nullNXObject(NULL);
      p1 v7 B. E7 R" O3 ^+ }! r
  18.     Point3d helpPoint1(0, 0, 0);
    ' M: V; ?3 f$ @* I# R" [0 \
  19.     section1->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    4 f( A. B! z" _1 W
  20.     revolveBuilder1->SetSection(section1);" f( {9 l$ |+ b6 F' [4 \; X
  21.         // get UI value
    / `# @5 C9 Q( `- S+ `" Q
  22.         vector<TaggedObject*> selectedObjects = this->axis0->GetProperties()->GetTaggedObjectVector("SelectedObjects");  k6 Q0 _, I/ D3 u8 g
  23.         Axis *axis1 = dynamic_cast<Axis *>(selectedObjects[0]);
    % T  e& N# ~0 i1 b% X
  24.         revolveBuilder1->SetAxis(axis1);) M8 X  g, Q; u5 Q6 y. g7 v
  25.         double startValue = this->expStartAngle->GetProperties()->GetDouble("Value");
    ; Z  {  g" ^1 }# D' S8 o
  26.         double endValue = this->expStartAngle1->GetProperties()->GetDouble("Value");
    6 a( v0 r) a$ N3 W
  27.          stringstream s_startValue,s_endValue;
    5 _3 [, ]5 \6 y* f  ~6 `" A. n' x
  28.          s_startValue <<startValue;
    / u/ j1 U$ P4 E& G3 g+ k# A
  29.          s_endValue <<endValue;
    0 P! H0 m  R( f( _9 e  L5 x' @
  30.          revolveBuilder1->Limits()->StartExtend()->Value()->SetRightHandSide(s_startValue.str());* W+ T. T; m5 Q1 q
  31.          revolveBuilder1->Limits()->EndExtend()->Value()->SetRightHandSide(s_endValue.str());, _# Z. J0 k2 I) \4 q' [
  32.     Features::Feature *feature1;
    1 C# r- {. L/ l# g3 _  K; ~( m6 T
  33.     feature1 = revolveBuilder1->CommitFeature();
    : M7 S, q5 p! k, r5 o5 [: E& \/ I
  34.         revolveBuilder1->Destroy();
    ' ?* |  `2 `1 x! H# s
  35.         section1->Destroy();4 T# v& Z6 Y0 A  K8 [% U
  36. }
复制代码
9 L! i$ }# x4 H5 E) g) @' H

9 z9 ?7 E6 \7 V! E" J3 \% J" F5 o$ u# I  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二次开发专题模块培训报名开始啦

    我知道了