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

[二次开发源码] UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves

  [复制链接]

2019-4-25 18:47:55 9111 3

PLM之家NX 发表于 2014-5-5 22:45:05 |阅读模式

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
& Q7 V  V) d/ p& z/ F

( r3 |+ C3 w# g! V  ]9 k9 w; ^! s# @
( @, t9 Z1 a5 S7 Y( WUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
4 d$ }8 L5 A' R7 ]2 @
8 n' M0 y4 ]2 y& p6 I, ~此处使用的是 通过面的法向创建投影曲线,可以参考下!
; O$ J! G- \# M% s+ e) d1 x" z& c0 h1 X( I' p& S
- C; p# i6 t  y4 u$ }
" K3 z! Z& S2 A) h4 a% Z

1 q/ D5 `( D; t- x$ Y% M
8 ~( U; \" w* U& x( _: n' f6 ]' N. w7 o6 M7 @2 L4 |
4 @: V1 o" y0 v7 k! k

NX Open C++ 创建投影曲线 project curves

 NX Open C++ 创建投影曲线 project curves

" L5 Q5 r; z$ m( M: U# H3 t0 p7 M! T

0 f+ E  B8 B8 X! F7 y
  1. . S; Q- U5 l, z8 J
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    4 D# F. a0 M/ E! K/ [- f
  3. {& v* U6 \1 ^$ X# }" I4 j$ V1 q
  4.         int errorCode = 0;7 q0 Z# }, s9 P# c8 h8 f9 [
  5.         try
    1 I  B* l& n6 V8 N/ w( I4 w
  6.         {( E, _* u8 B! M; W6 I
  7.                 // createProject curves
    ( D; p% _+ x* y' n6 L+ f. o

  8. # g: m( g% G% b; X  K
  9.                 Features::Feature *nullFeatures_Feature(NULL);  r$ F- d4 O1 w" ]& _
  10. 8 e2 o$ ?5 J2 f
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;: X' @  T; ?1 Y3 T& _) V

  12. ! y% {9 S/ v- l& w/ ^
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);- G: e6 @, {2 @  M3 h
  14. 5 ^- D/ W  n$ T* D, Z, {" z* P
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    ' o% o$ E& ^' u6 P" A0 w7 V

  16. 8 n3 ?7 j7 Q  Q. H3 o9 b
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    5 {/ U  v$ K. e" b, L
  18. ( u+ i3 n) a! j  N2 u
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);/ [  m" t' w' _
  20. . d7 d( d5 m0 n5 i
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);/ Z3 f& F" W; i
  22. " j7 W' Q: L% V/ g" H  ~
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);2 x7 O2 k& K, h

  24. & M5 E7 ?  H  X  ?& G
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);, {: O8 k9 J% W
  26. 9 w2 k$ S! @" f1 Y5 C- |
  27.                 int size = (int)inputObjects.size();
    : ^- L4 T- i# G/ R: }
  28.                 std::vector<IBaseCurve *> curves1;
    9 D1 A- s, J! b- z  w3 W
  29.                 for (int ii = 0 ; ii < size; ++ii)
    0 y3 k+ }8 |; D& v. i5 K+ C! i
  30.                 {
    & J0 l# X" S2 x. m1 R
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    / k7 z9 m& }+ @  H; F5 O
  32.                 }+ A8 k+ |9 |( C* Z- O/ s  x0 c3 t. ]  ~# G

  33. ( o4 q; E# k0 P
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    ; {$ a$ @. m/ X2 H5 ?2 F
  35. " L. _, s( Y. I2 T( q2 S
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);* S7 ?( O3 N4 v+ }2 k: T- ~5 t% d
  37. 4 \4 z) U' U! |( V7 A
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    ' J9 `8 ?% _) Q8 K8 q, i
  39. # P* A" ^" j% m) Z) z) e- W- Z  P
  40.                 std::vector<SelectionIntentRule *> rules1(1);6 a" Y; A/ r! U6 G$ O
  41.                 rules1[0] = curveDumbRule1;
    , `, C5 x8 f9 K
  42.                 NXObject *nullNXObject(NULL);4 j/ H; F* F1 u4 Z; B+ ~
  43.                 Point3d helpPoint1(0, 0, 0);5 D8 M5 C2 Y' K! \% C+ h3 |7 }# [
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);& d2 D3 }8 ^8 q6 Q0 Z
  45. / e: m+ L, [) n' N( I  g' ]
  46.                 plane1->Evaluate();7 y0 o( M7 @6 [
  47.   Z; X( s+ x1 x7 K
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);& b) B! B4 x1 D4 B$ s$ S9 f% o

  49. ' {7 C' ^9 G4 N2 q& X7 P( w
  50.                 projectCurveBuilder1->SetGapOption(true);
      l: G9 K* b7 V+ i& C
  51. 5 O/ |% o0 O+ n! M8 m
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);! w- I0 t/ q" T/ u0 \( Z+ z8 |
  53. 2 s( T! ]3 F4 x8 f
  54.                 NXObject *nXObject1;- ^4 f' J5 I2 f8 ^) _, b
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    ( T* _; l0 }; K. K7 G1 G+ b

  56. 5 U6 C. @8 m( \: R) @+ H  X
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    ( g, T! H" ]$ C, u7 I
  58. 3 g4 C/ V5 H, X( U# n5 J5 Y9 Z* d
  59.                 projectCurveBuilder1->Destroy();: W% ~' |& ^. e5 o# o8 X1 J! A+ X

  60. 1 d8 `/ H  K9 ~4 G! }, f
  61.         }
    1 _7 n2 ]6 b8 d, o! A1 V* e
  62.         catch(exception& ex)
    ) ?6 d- ]7 U& ?4 X% \
  63.         {- m& D7 |+ a: m8 a) @
  64.                 //---- Enter your exception handling code here -----, r' |7 h+ \/ ]8 t) l7 D! ^$ ]
  65.                 errorCode = 1;
    9 M6 M* ?/ }# ?, U7 z6 V
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    ; I" c9 T( z/ A7 S6 G4 \
  67.         }6 X, |# o  B: C3 {
  68. , ~- F1 X; {& \. c
  69.         return errorCode;
    . |! g9 w4 m4 Q& d" ^
  70. }: }1 C: }2 ]$ R8 m. M1 b
复制代码
1 Y& t$ L0 ]9 a6 G" u" G

# |/ i( X. a' Z7 M5 k  l+ I) {8 f, a
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复3

希水长流 发表于 2014-5-15 17:18:05

希水长流 沙发

2014-5-15 17:18:05

创建完投影之后 如何能够获取投影曲线的指针呢?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

希水长流 发表于 2014-5-15 17:54:14

希水长流 板凳

2014-5-15 17:54:14

版主 我找到接口了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

593232280 发表于 2019-4-25 18:47:55

593232280 地板

2019-4-25 18:47:55

学习了,高手
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了