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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
2 R; f' U  G$ s' a2 q' q
9 g5 V; E: ]2 _+ V6 [2 k% m+ [3 y

8 u! u( D9 W. F/ c0 C' v" \  \UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
) G# [$ D$ r. T" f- ]4 ~
8 {& x. B0 Y9 I  |8 Q2 C; J此处使用的是 通过面的法向创建投影曲线,可以参考下!! N# M8 D) f, h9 j0 s) ^, e+ ^
# w- e* a0 }: b  e& N

, w$ y. K1 B, N: m4 |, g/ K
5 C: ^7 k; k4 G( O4 c" q+ S
/ G4 s: f7 W) x( R$ R: S
, Y* N5 V% ]; t5 w2 p$ R# T& Y
( L3 e! D5 j8 D7 ?3 h2 G" D
/ w$ x) ]3 I$ O+ v  Z

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

 NX Open C++ 创建投影曲线 project curves
; d4 W5 B5 h9 `4 L/ k( D
. w: K7 M, S) J# {, s
5 c3 D" C& Y- E) Y* y
  1. 5 Q3 i& L: w: s5 y7 N+ d
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    4 R7 c  H8 D4 D2 b# w
  3. {5 _2 q4 [1 y' ~5 _& B, y" N% t
  4.         int errorCode = 0;- \+ T" f3 t! [6 y: G* Z) x
  5.         try9 ?) \+ ~; p' }: B* ?
  6.         {$ ^. n% S) K. v- Q9 T- Q/ v4 l; E
  7.                 // createProject curves2 S+ A- P  T7 k# K5 q
  8. + ]1 `, @& [6 Q- J  k
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    6 x% @9 K2 W9 K- @- X% V. x
  10. ' T" `' U' L2 N5 Q$ l
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    ' I) H- U) e- U: ]
  12. 9 {+ L; h- a4 j: D: I0 [1 w
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);
    9 m: r7 x; Z; D. d: c9 F

  14. 5 A, J) O! D0 q! m9 H( [3 _
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    8 Q7 D$ c& k4 ^+ F; r+ O; c
  16. 3 ~- Z" Q8 u, q& ]
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    ( w- A0 T8 @7 e7 z: C1 J

  18. 8 D& u1 T& x+ _# ]5 P! [/ v; f4 S
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);( x' Q2 C* E( T6 ~$ _. E0 k: B  @

  20. : b: u3 |) t: R, d' f4 J3 J# Z1 v
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    ( l5 z8 S5 u4 i' ?: T
  22.   s! S3 n' a7 \' N
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);) y) r; @' |; p2 I9 h

  24. 0 i1 n2 d  c% |2 r5 z! b- h
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
      Z  y7 U2 x$ h9 l5 l# ~

  26. - A" \7 L: w, C
  27.                 int size = (int)inputObjects.size();% I8 f( l" S" j; T" ~6 m0 S
  28.                 std::vector<IBaseCurve *> curves1;5 ^5 r7 N+ K: l' n( q( `! g7 L
  29.                 for (int ii = 0 ; ii < size; ++ii)5 J3 g; E5 j8 @3 M3 C0 B
  30.                 {% d, x' L' e0 s
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));% }* }6 _4 L$ z) B
  32.                 }) E7 X0 U: S6 e. g5 M) B
  33. * f% d$ K$ T- V
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;4 y6 h, `1 U+ \, g+ M/ }
  35. 3 p+ f  t, |$ q" m5 d
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    ! ]% C* {' i9 e0 y6 ]9 F; N
  37. - \; B9 n- A! b: M- J
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
      y$ U( [- u+ ]) R- ?

  39. $ f- [$ d$ K: ^
  40.                 std::vector<SelectionIntentRule *> rules1(1);! b: |( H* G7 d9 U) m( `
  41.                 rules1[0] = curveDumbRule1;4 v, _* \' v* J
  42.                 NXObject *nullNXObject(NULL);
    * z) P8 P3 H& K3 K
  43.                 Point3d helpPoint1(0, 0, 0);
    . J& b  ?+ E; f6 X* V. A" f
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);8 H, h" q4 n& D' z

  45. # R3 n  S  ~2 _! ^7 L. g% B
  46.                 plane1->Evaluate();' r) R: o3 U, n" C* ?. F: p% K* ?

  47. . K- F& v( a6 ?. S0 s
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);! d; O1 `& Y' E5 B& D- s' X  T) ~

  49. % x2 t- j8 s0 E
  50.                 projectCurveBuilder1->SetGapOption(true);
    6 e- V3 g# P/ N2 m! o

  51. * |$ P/ H; T$ X( W0 Y5 h2 i* t4 R5 P
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    . B3 J) T1 l  G1 |. q6 R# i1 k6 V
  53. & c9 e5 \7 a6 `2 X
  54.                 NXObject *nXObject1;8 A1 B8 j' a) X) u" i! ~/ A$ u$ j& r
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    . T# q9 ^  ^4 I: n' T

  56. " i4 h, E3 S" ]
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    3 W% e9 T  ^0 `6 L/ V
  58. ' N% Q& ]1 j, s. P. O! W
  59.                 projectCurveBuilder1->Destroy();
    - x1 U- q& H/ x$ {
  60. 4 a( o$ |' _! d' L
  61.         }+ r" p0 j+ H% `$ S  Z% Y
  62.         catch(exception& ex)8 T3 M% Q0 Y- T9 G0 m0 z& {/ j
  63.         {9 T1 p. j5 b/ ~/ F
  64.                 //---- Enter your exception handling code here -----
    0 C9 o: x4 x4 `* ?$ s6 U( \' q
  65.                 errorCode = 1;
    7 }9 J( o7 ~) C4 g
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    3 a% _$ w6 j6 K
  67.         }# ^" O% a( ^9 Q$ g8 ?3 m" O
  68. & e* e0 d3 D, {4 F2 A# L
  69.         return errorCode;  L$ [( k1 g: ~2 F- @/ s
  70. }
    : \9 u; L; c5 J% Q0 o3 L
复制代码

3 C8 D- a: D1 j; k4 {, o4 g
0 z4 K3 `, D4 H& G
7 O/ ]/ w; s  O8 P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了