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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

& @. X2 m' ~7 u9 S& {; P$ z$ D6 v, }' g3 v0 V5 ~% B' d1 O

3 ^5 M3 N' I' t, ~  m: aUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
3 F+ H% K8 \  t. e1 F3 C
5 z/ p, G1 k$ `* w: f5 p; r此处使用的是 通过面的法向创建投影曲线,可以参考下!3 F* G# s8 F( v) V: H3 `

8 X2 a5 B9 W: r  _4 V& |6 v0 k
. z; a5 k3 p8 j2 o8 h: P" v7 j' ~: b3 h# O

5 i4 \$ |0 c" P: Y  w* v5 a
5 ^! p* Y  X' Q8 O; w4 k7 E* p5 u. J/ L

( F% v6 I9 w! F6 ~% Q2 O3 w. ~$ u0 B

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

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

  J: Q- o% f0 v% w4 d4 F8 c: U  @) B! W. P9 M
/ f) M" `- T3 Q' I: s# `1 B
  1.   H2 l3 L3 C' A) R! R0 B
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1). V9 A! h9 E6 `! M( L4 x
  3. {
    ! l9 n( m/ |4 @6 @$ V2 G" Z
  4.         int errorCode = 0;
    , ]+ _' y( U1 {+ H8 b, \3 _% `( D
  5.         try
    ' Z7 K0 C. E. B& F& }  L# x
  6.         {: W7 l" d4 x& ~3 _0 g  K. U5 G
  7.                 // createProject curves7 \0 E$ U& g! O

  8. " [/ S+ y. m) H: E$ u# I0 c
  9.                 Features::Feature *nullFeatures_Feature(NULL);9 `; |6 R0 W/ ?
  10. ; [' x, ~. G6 g6 K2 Q1 b3 {
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;4 j6 T9 v* u5 Y  Y# T5 g
  12. 6 B: A& I% T# h: `3 _" I
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);4 v5 E* I8 H9 c6 {

  14. 7 o& k& M. v5 ~  N' P
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    % P! _6 J3 K; w$ O# S

  16. 3 ~. q. P! d4 D7 Z# g
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);# u2 B" o- j" U( R# _& ?0 ~
  18. 9 X( p" J% h5 @: U* D! V/ u: Z7 C
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    " M2 D, f. c7 P/ A5 W8 K/ N. r

  20. ) E8 J" `1 F8 r
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    ) A0 t, `: l5 j' y
  22. & v/ L( Y; I9 z$ A5 M. \" u) H
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    7 K& X2 v2 O9 Q4 ^. B" `
  24. 4 e) K# c$ k  q& q3 t
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);; |% _5 W& i: P6 y4 e+ a  I+ i
  26. + p7 j2 G# o* W8 ?1 m- \
  27.                 int size = (int)inputObjects.size();/ L) ~; ]0 ~; I8 X" V' N: `1 C- o- Z
  28.                 std::vector<IBaseCurve *> curves1;
    3 M- a6 B6 D8 n9 ]5 e+ x( K
  29.                 for (int ii = 0 ; ii < size; ++ii)
    5 [5 [$ v# J, E$ a4 f
  30.                 {
    1 C8 H  b0 L7 ~5 f3 V3 z- U1 f
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));0 ]* J( l' V5 n! `8 L: b6 ^
  32.                 }$ @. p9 M' }* ]6 l& k/ j6 P# J9 f! r
  33. ( Y1 @# ]- Z' O( o
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;& t2 O; E; U) [, F* K
  35.   n0 o4 D( }" e* j# N$ L) U
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);3 w# x0 ~0 o2 B' k$ D/ ?* q: M6 m
  37. # J- C' Z3 N2 G: H
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);6 V/ F! q$ S3 |6 [& B* W7 e9 V' w5 W% s
  39. 2 T; s# F6 n: x
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    0 @1 q* p+ A8 K  T- K9 y
  41.                 rules1[0] = curveDumbRule1;# @$ x9 a8 g/ o& W
  42.                 NXObject *nullNXObject(NULL);& }# t. N1 k0 k3 ]
  43.                 Point3d helpPoint1(0, 0, 0);
    # q9 n% L$ S2 _* r+ X3 X
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    4 o  t3 O' S/ B, L0 ?' _+ S; @- s

  45. ! C0 z9 k, I5 v/ k- R! {
  46.                 plane1->Evaluate();  q, w  G, e  F: Z

  47. & d) m3 w( o8 \5 d) P4 `% s: Z
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);, W. Z9 @; m. Y% k/ C
  49. 8 X6 D2 @- F2 _2 [# b
  50.                 projectCurveBuilder1->SetGapOption(true);: A% M5 O% s9 O) G7 G$ b' T3 O7 I

  51. $ l) O1 I6 [* L/ k* q( ]
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    9 z# D7 G# F' c3 p
  53. - E  R5 K2 e1 ]3 d! j
  54.                 NXObject *nXObject1;
    6 t8 Q$ p/ d" W; v% v
  55.                 nXObject1 = projectCurveBuilder1->Commit();. m7 g; a/ j1 z- {9 [% U
  56. % ~; o" e8 t- |# s# r! U( r
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    # C" I3 ^& [+ p: ]

  58. : J9 [9 x0 V  U
  59.                 projectCurveBuilder1->Destroy();, N- e0 E7 e, c) ~. i2 Q5 Z0 c; {

  60. ; x! y; l0 Z2 O- D; D$ L
  61.         }7 {5 D4 C2 z& P; o
  62.         catch(exception& ex)7 d  ]% d, O  y$ `5 e, Z
  63.         {
    - Z3 Y2 O; H  b3 Q; D8 _
  64.                 //---- Enter your exception handling code here -----
    ) D2 [7 x" N* W* \) d3 A/ |( ?
  65.                 errorCode = 1;$ G7 m  s" c$ d0 x. M# m# t
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());1 P2 W; R# ]3 x+ y# }
  67.         }. ?1 _' m$ d$ n7 ~

  68. # o! O% q2 M4 c8 B2 f6 z) Q
  69.         return errorCode;& K% V" o% l6 w7 z: `2 o% a
  70. }0 ?. y+ N0 _+ @; s4 X
复制代码

+ _# ?/ p4 M1 Y6 B" Z- q# M  P, _: y2 ~: U
) {, ?) q7 p( [' 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二次开发专题模块培训报名开始啦

    我知道了