PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

  [复制链接]

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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

. ?- b* d9 W8 g2 Z3 |, W, T! c. N
: N  c0 Z! F5 |) m9 o
6 w. Y  ^! e% @' R' oUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
: L3 a9 K( ]% j1 \% A+ [# u( s4 [- ?9 r/ ?: o7 g: F. `, U" U
此处使用的是 通过面的法向创建投影曲线,可以参考下!
8 Z6 c) m& i1 j( r" H- q. g0 }2 ]+ X. `
) e$ @* O/ F! E) v1 X: f0 V, c2 e

' g5 M$ A: b, U8 P9 n
9 ]# J0 D% J1 x' w+ Y- ^. ~8 i- V/ T0 U8 G3 X
! D; v: _- D$ w1 k3 h2 K0 Q
, C& z& _& ?* L; X, l+ o! \

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

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

4 }) @, w* N3 b# L! E+ V- t. L5 S+ Q+ W# V( B$ [; l, ^' O7 _- S7 o- K

/ l% l4 x% ^- E* ~
  1. ' F' g$ C8 [, Y: e1 s
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    ) V& y2 N' i: M4 Y# s
  3. {
    2 j- m2 o7 t) X5 V1 b" i
  4.         int errorCode = 0;! s! V) m4 e7 n; M
  5.         try
    - ?" X$ c- g. N$ c5 [6 L$ U7 N
  6.         {  F. N0 i2 j( U# _1 ~" n
  7.                 // createProject curves0 K" L1 K. H( ]9 Y( V, F8 h& N
  8. - _6 F4 V* C9 c3 G* B6 o4 ~9 [
  9.                 Features::Feature *nullFeatures_Feature(NULL);, \5 D, r  Q* H# L+ K# f

  10. 6 D) F+ u; l" Z0 Q9 L
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    + I2 k# I+ ?, D# F
  12. 0 m1 ~' G' a& e1 M
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);; _; U. A2 _* x2 d- b' }4 U

  14. % d' i5 r$ o4 Y6 c
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    8 y) q# _  n; x8 a7 f) E2 I7 {9 U

  16. 4 S0 |4 h' t" c/ W( h
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);  ~! x+ J9 ]: a* Y3 h9 Q" b3 y
  18. ) l, T: l/ k" a& l5 C9 q2 i$ h, F
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);8 T6 M) S# s$ F- _# c3 N

  20.   B0 e. y1 P3 u" Z4 ^2 c' K
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);) {7 T8 y  K" }( B7 L$ {. y
  22. 0 L2 t0 P% W) p* p* l8 B! k2 @2 F! I
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);( ]. n" {6 j6 Q( I9 U" J
  24. 6 w# A! M& [) f4 S4 D! Y4 `/ Y+ T: O
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
      ?& a9 w1 s5 M5 j

  26. ( `- t( m% J6 v' u6 x, `
  27.                 int size = (int)inputObjects.size();
      w% R/ Q3 I! L$ W" a" w+ c; D4 V+ F
  28.                 std::vector<IBaseCurve *> curves1;
    / A9 }3 v, f, |4 h
  29.                 for (int ii = 0 ; ii < size; ++ii)
    & W, T& D3 l. K9 b) ?% l
  30.                 {, L6 Z/ q' Q( k2 M/ Z9 k7 L
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    $ D  z# n7 g% F- N$ X, ?6 f
  32.                 }
    / i' D3 o. J8 g9 d5 T
  33. ! k& `4 P9 V0 U0 q8 @
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;) X! {7 B( g  I7 }% \/ u5 G
  35. 2 _% b+ ?9 T  L
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    - G* Z: f. |$ g, I9 m6 A; W/ ~, m
  37.   U; m; F4 F8 ]" H2 n  W
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);0 C  K9 h! d3 F0 Q# J
  39. . B5 Q# ?- ?7 v! i# _) ?* y
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    / \- m$ F9 u/ k& A6 l9 l. V
  41.                 rules1[0] = curveDumbRule1;
    / Y- b1 F7 t9 n: n6 |
  42.                 NXObject *nullNXObject(NULL);
    ) P" c# l7 `( B! e3 w2 ?5 f
  43.                 Point3d helpPoint1(0, 0, 0);
    % ]9 w1 v$ Y) a6 i
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);2 E8 y0 j/ l$ s3 j
  45. 3 d. M' [+ n$ p/ K. \) A+ x
  46.                 plane1->Evaluate();
    * _; w& N( H+ ]+ f  V' ]

  47. , {' E1 W2 \$ w( ^* p; z
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    3 @1 ^8 u. y' G, u; ^

  49. : o# V: K5 {; d" P' E
  50.                 projectCurveBuilder1->SetGapOption(true);3 ^4 d3 C2 M) A) I

  51. ) R+ |' ]* p  t8 g
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);! _9 B! v, G/ _7 E9 t" ~) r& ~( m% A' `
  53. ; ~$ W# w) J. I$ \* H6 k8 b
  54.                 NXObject *nXObject1;
    3 W7 a  }0 e+ T" N+ P8 \
  55.                 nXObject1 = projectCurveBuilder1->Commit();$ J2 l7 a+ N3 e. M/ W; J3 f$ B
  56. 6 ?; m' g8 P; P+ K
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
      }" ?. h( f/ k6 {  P3 j
  58. * i" H0 a1 s  D: q# K7 n7 x. X
  59.                 projectCurveBuilder1->Destroy();8 \, ^5 x2 [0 f
  60. % ?. c5 h7 ]$ E5 l. g/ {
  61.         }! l4 e" t( Q7 K. C5 u" b& J
  62.         catch(exception& ex)
    7 c( ]) U, Z& S( y' R$ p
  63.         {6 E6 M. W. ~, I
  64.                 //---- Enter your exception handling code here -----/ M' B) V/ T7 M: D, n1 N8 v+ G
  65.                 errorCode = 1;
    % ^* s6 m- ]' X
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    & ]- j, d  n) g+ S/ b
  67.         }
      P/ ?- ^  n, U" c
  68. * i3 O! X- n$ E0 J
  69.         return errorCode;
    ) ?1 o) E* Q7 i
  70. }
    ( o+ m$ u: f7 [* G1 K
复制代码

3 M5 R% [" B7 @. L. c# A$ q: w- w1 t$ Y( G
3 q7 _- s& i' ?# c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了