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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
. s- }5 ?' i7 d+ E" r& S9 b; W. ~
4 E4 |) N( V; R

2 p  ?  L/ T1 X$ O  wUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
5 r. g' B5 [; Z* t7 T  }, d% s
% {3 ^6 e% z7 N: y2 [: }6 m此处使用的是 通过面的法向创建投影曲线,可以参考下!
* t" v# U7 u+ l. @) Q4 h
: e( Q( z5 c9 o9 w+ Y3 m( K7 K! [! `, b$ J- c
& |5 J& Y( E# t7 n
* F8 {; L# S7 W3 S' j! q( ]

" T3 @: K0 f; a- S- l/ n' F
! Q; t. w: a( o$ D& q" t0 |; n
3 F- D) W: e+ @  k; I

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

 NX Open C++ 创建投影曲线 project curves
7 c8 ]/ |$ d" k5 @' ]

) Q. N3 m. S/ x  @6 b4 I" l7 t, o" X
. W1 F' L0 e1 V4 w; d

  1. 3 p/ O) T' g2 A$ Q
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    + E7 A; o2 c& m) x
  3. {
    " R3 g/ n% U5 @4 @, E) [
  4.         int errorCode = 0;" I$ l. Q/ E- G* J& S
  5.         try6 s1 J1 \' f8 X* ]3 e. d6 t
  6.         {
    4 B+ Y/ W9 ?# q
  7.                 // createProject curves4 C4 i. L" W3 J4 e* Q# q6 d% T

  8. * ?/ A& A) h& D! U) u* R, N
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    3 Y9 m' m0 P' ~7 M; R' M+ @
  10. 6 q4 L) m- B2 Z' X0 W8 T
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    5 d+ Z" d' k1 ]% m7 W: R& M

  12. 0 @7 o7 Z: o7 P* o- _
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);! Y0 R7 a# \# V
  14. & L& e6 b% l2 S# p8 E$ I) w0 t
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);  u+ X' m( t' L* S
  16. / G: j  Q! R6 V1 }4 }+ H
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);: e5 K. i/ s7 m# X4 C, t& z0 ?

  18. ' O; q, Q9 p: @% P, r3 i" B
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);1 J# f8 ^% h4 B, j# A
  20. * v3 B3 U  ^3 _
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);0 o, |- z& c1 R! N  d0 [. z

  22. ' m2 Q8 Q8 L" _$ E
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);% {# X. I$ R% g$ Q& G* l8 b

  24.   V: E3 H( \4 C% M6 Q
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);. G. ^  u4 X/ Z

  26. 9 O" \0 M' |7 ^& z' e
  27.                 int size = (int)inputObjects.size();
    ) T% c- j4 [  N5 M% g0 E: n" J
  28.                 std::vector<IBaseCurve *> curves1;
    4 R4 }/ n( C: u* \5 f# f( H" g( J
  29.                 for (int ii = 0 ; ii < size; ++ii)& K- i' J) T9 y
  30.                 {
    # I' t, z9 B" z- p+ h7 `- S$ M
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));; ^7 N3 _. \* w6 B. r
  32.                 }" ?8 j0 d" ^' \# s; Z
  33. 2 G! U* i8 U* z- I, {5 J% L
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;1 Y2 P) V0 C" Q+ ^' G5 j

  35. - ~/ s+ @  r* _% @* ~* ^
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);' G* N2 v- D* w- X
  37. 2 L# A+ b5 B7 A% ^. A
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);2 o5 L. @, ?" O( A; q8 [! l* t
  39. 7 X- g' K- O4 V  a0 h
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    / e* N% j. |% K& y  `( O
  41.                 rules1[0] = curveDumbRule1;( N1 b) b( o) ?5 p
  42.                 NXObject *nullNXObject(NULL);
    3 V. v# O& U4 g; g% m& l# b, a4 U# v" n) k" w
  43.                 Point3d helpPoint1(0, 0, 0);
    ' c$ Y& w  R7 _6 {8 ?$ f3 P
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    & x' X0 H2 b, K: m* v3 b& J
  45. 1 A" T; L, k) O" i; l6 j
  46.                 plane1->Evaluate();1 {" ?' _0 @0 F; d4 B0 K  A

  47. ( n+ {9 ^7 V7 T: C% `6 t' P/ L* r$ @
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    3 c) V1 b8 _$ H3 O" ?4 ?& j

  49. % ?5 {  B" A( P- o* }6 Y) d& J6 N
  50.                 projectCurveBuilder1->SetGapOption(true);
    7 ^' X7 B! k9 C
  51. # ?0 A7 T6 x" H4 |( K
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    + @! _4 G2 m3 S1 G6 b

  53. , F" W( u  L3 \1 |9 }2 C# `
  54.                 NXObject *nXObject1;8 b3 ?6 T7 Z: g, f+ N% K
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    ) }( b) u% l% O
  56. % @) \2 I% H4 B/ B
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    3 x9 E9 Y4 _7 i' {9 m' {7 X6 f& Y
  58. ! {2 R! G0 C' R. y. t7 _) Q4 j
  59.                 projectCurveBuilder1->Destroy();
    ( U6 l8 [( J( m. g
  60. ; q$ X: g& r9 E* N% ?* ]" Y
  61.         }
    ; i2 l+ O8 C9 y8 E
  62.         catch(exception& ex)
    ! |9 \. }. B6 Z, \) L& ]
  63.         {2 ?; I' i: A) G
  64.                 //---- Enter your exception handling code here -----, n; \" _4 R$ T8 g
  65.                 errorCode = 1;" f0 C( c+ h. i: B) z& U* J0 ~
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());5 [' x. q# ~( h. t- P3 U+ _+ ~
  67.         }
    ' j! I  O( o# Q# I
  68. / `1 D5 L( r: \) y) I
  69.         return errorCode;# b. u* Y6 T* n- Y, _
  70. }: R; B5 I0 W" ]6 x! ]
复制代码

+ B1 P9 A  O; ~, r* R5 D' i" ^

& }" s7 F' @6 N1 Y! D3 F- t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了