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 8877 3

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

8 P- G- O! r% ]0 A! d) E# s, ^* I
+ Z! X$ f* x4 C) W! b4 w1 r! l1 X5 d# d# @( y9 e
UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves. t  x; z0 V* C$ _/ i

  \0 [9 x! f% {$ Y此处使用的是 通过面的法向创建投影曲线,可以参考下!
5 j: p. F. M1 ~! p( S4 ]
# {5 M4 U2 ~6 b; x5 H& ~2 m# c. y4 g, l5 ]6 T: N: r$ b! r* T
* [6 q- C8 m" f, p6 H+ Y2 K' ?
2 Y0 E/ h/ V- s" ~0 I

, d$ F9 E$ Z! G/ |# n1 l$ C! Z. K
/ o9 Q8 ]2 _+ Q) N1 e

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

 NX Open C++ 创建投影曲线 project curves
, `% N+ r, A6 Y

6 d6 _+ J$ K) o& r: B' d6 F7 y  `7 _: o

  1. , q, w8 l1 c5 o1 P
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)) E* t) T& f  r( B: b& Y; J
  3. {
    6 s) U8 g4 N8 ~- g: U" I0 E
  4.         int errorCode = 0;4 m/ K" `/ b$ F, L% _0 U
  5.         try7 r# O1 M& w7 ^; A( a* |
  6.         {1 H- {$ P: x  D; J
  7.                 // createProject curves
    7 ~3 ?8 N1 ]+ q% D% R
  8. , {1 k% w7 j1 F; i7 N
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    , n# s, ?& Y4 u- t
  10. ) I" a/ I9 J9 s- f5 f
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    : d1 T% n' Z7 {; p- ^- }0 Z0 {3 c

  12.   ?# g: ]- o9 a  Q
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);, @0 {. p) R2 E1 }  W8 f6 y
  14. 0 [+ S8 _/ @/ v$ I0 @/ b7 i8 e: _
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);7 s1 r( p5 y* r5 U9 M' N6 t
  16. 0 p1 J5 n+ p. S. @1 K9 V
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    $ v8 P/ W# R0 @7 r* J: t. p* z

  18. ; X, }( M/ }$ x  X& a. r0 ]; w
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    ) Y6 Z9 M- q  F6 c* q& e& f' v
  20. 2 |! }& E% P- K1 ~2 w
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    * s9 s9 R* e% ^  N

  22. . W( v( ]/ W5 d) J7 `
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);7 T* v; R7 c0 K0 X

  24. 1 y: S( f& x: [. d! p8 p
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
    . v2 g! y- I3 }3 _5 S

  26. ( u, s6 U: c+ i6 H- L2 u  G
  27.                 int size = (int)inputObjects.size();% Y' {, X2 q+ S& S% J2 q9 a2 P2 _
  28.                 std::vector<IBaseCurve *> curves1;) n  z9 b5 |/ R( m. ^3 \) `$ R8 n
  29.                 for (int ii = 0 ; ii < size; ++ii); d: I8 M" o/ Z
  30.                 {
    % n# [& j0 [6 J- O- z0 T& n( ?  @
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));6 q" r% S& x6 K$ W) d
  32.                 }
    2 k) C* A3 ?( G- e
  33. + m# S1 X4 B8 P
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;( I3 u6 U  c% q" V& e) o7 j3 ?' y# K
  35. : t3 a* M. e% O
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    & Z, _, S- v& i" R/ }% S7 N
  37. . `& e8 c" [; W& a
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);+ l2 K6 t( g2 r4 g* b% V

  39. 6 c/ X# t8 ?: p$ N: a0 h% k
  40.                 std::vector<SelectionIntentRule *> rules1(1);$ }# O! p( d& b: V, b2 Q
  41.                 rules1[0] = curveDumbRule1;
    & P6 ?( f. Z1 _( W& f
  42.                 NXObject *nullNXObject(NULL);, A( S. i! H( N. l$ T3 E
  43.                 Point3d helpPoint1(0, 0, 0);/ f2 q, t1 q- Q5 b8 V9 Q: f' a* @8 i
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    4 k  G# O1 t( L  e
  45. / ~+ V& `$ J* g3 z
  46.                 plane1->Evaluate();
    . d( D4 w) H0 z, s0 a5 [* C% o

  47. 1 j' z2 S4 o) q2 G  P2 u% e* }7 I
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);) Z* C7 `" s9 G  ]( w  ]. o. s1 V
  49. 1 @9 M/ P7 P4 W! F; W, ^* e
  50.                 projectCurveBuilder1->SetGapOption(true);
    + r" F  G7 \" z! ~

  51.   N9 f! J" C1 M4 y4 C/ I0 c1 k
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    0 i  U! k) `. t8 m1 O) S
  53. " O: ]7 i( Y5 |+ e  O2 g& D- C
  54.                 NXObject *nXObject1;0 [3 v+ ?' O, t; q
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    * N4 k  Q. M! \1 k, D
  56. 6 P7 a  O. X7 h: l( R' b! t
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    / ~( X) D- L. W" [" }  I8 H

  58. 9 Q* [" W' L6 i$ X1 [$ T7 ^
  59.                 projectCurveBuilder1->Destroy();; ~  }0 l- w7 P$ p( N9 z) ^

  60. $ ]/ b" m* @9 o% L) A' e
  61.         }
    0 _) B9 d1 b( Z0 F4 N
  62.         catch(exception& ex)( i0 p8 q% a* v1 ^$ j& M+ [9 z% [
  63.         {) m- Z7 k! z, y) z
  64.                 //---- Enter your exception handling code here -----+ [1 m' n$ h8 D
  65.                 errorCode = 1;6 p, X/ b2 J$ c5 k# {$ E, s% K
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());- R! Y; [( V. ~; r/ Q
  67.         }
    - P, ?3 c- ]5 P

  68. & C# @5 C7 h  t2 q) k  A$ ~# b
  69.         return errorCode;
    6 `" X# O" H4 e; T
  70. }% j$ |% P% |* j
复制代码

) `, j2 K  T; H/ J; {! c+ n; X7 \
* U, o, f; Y: s4 D6 Z- y! r) ?9 b0 v, d, b9 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了