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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
3 f3 X+ B& B) l7 u9 G

7 [% S1 K( |0 r$ d/ K+ j5 n$ x$ I) |
) i" H4 y# c. l' y* K7 ?9 {/ [, jUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
% G7 [' v, H- R( @$ z/ f2 @
# p" F8 e, ]: x. u% T5 P此处使用的是 通过面的法向创建投影曲线,可以参考下!, [2 `: k- L8 t( Q0 }2 r
1 x5 Y1 L' f- J, j

9 m& J3 @) R- F
& V3 {( _0 l- r8 r9 \8 p
; v: I& J0 L' q  y+ s& y
0 d7 a7 V$ N2 |9 _8 b5 H# O1 n1 V! ]7 z, t) e, }9 |
+ |3 E1 Y; Z( L+ O9 Z0 C

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

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

8 F6 D3 S# U5 p# _: _7 f+ W' I* B7 u+ g; E  v, r$ o
% |$ f% L; d: M- S8 `- W
  1. ( p: q0 N7 [0 F$ O! S
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    ! ]' o0 _1 }  w- Q; C5 S9 R
  3. {
    % ^/ ~) |6 ^8 U( d% j
  4.         int errorCode = 0;" s3 D" x( J0 ^( o
  5.         try0 j+ w: l- z3 W
  6.         {
      P; ?3 {0 U7 q
  7.                 // createProject curves
    8 o9 E' N: u* Y: R; ^
  8. % R, N( f- z$ R9 I  A0 P
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    , j' x; f* K) ]- [! [

  10. . B+ P, w3 Z9 k& `% N9 [5 ~
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;1 D" d9 x) k4 f7 g) J
  12. & e* ]4 R2 D1 y$ @- f
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);4 Y. W1 o. m/ P# Z* Z" J4 @2 ^

  14. + V5 ]" Q. s: E, M0 y/ N
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    8 q; {( k% ~9 e& h8 n6 g$ h* v

  16.   D  l& ]7 m0 r  p" _* I9 L
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);8 u3 r" a# C6 v  h' Q

  18. % D) U5 x& o" @  Q
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);' l6 n9 S# G$ C" ?2 E# t0 V
  20. % O0 Z/ [. _) F0 U0 ]
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    ! e* p) `; ?/ \9 l- F$ C

  22. ; l( |& K1 d$ \. j/ A
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);% h5 |5 s5 S) }. B/ C

  24. 5 P2 E* z- x! T* v
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);2 I3 W* h8 N! H3 `
  26. , n7 k, L( _$ h" @$ |( _( c
  27.                 int size = (int)inputObjects.size();! Y# H% N) D) e- `7 B
  28.                 std::vector<IBaseCurve *> curves1;8 e4 z  J/ J& u' n: x
  29.                 for (int ii = 0 ; ii < size; ++ii)
    ( n& _4 i0 k' N
  30.                 {
    ; I) V& V; O# M( X
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    6 D/ [1 R) z4 |; d) N4 M8 `
  32.                 }
    " x" ?' H) Z2 }

  33. . C, B' L" P, b6 s+ k
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    7 R1 @* j1 ?3 [2 W' D4 |
  35. : H: X3 `  |$ {8 a, ?* `8 |5 `
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);3 G1 Q1 X; u7 O4 y# o- K# U+ D- q

  37. # R# M6 s0 x0 a; y! M: P8 R
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    $ q3 n, \& ]8 w

  39. ! ?& @/ U9 f) b1 o* z; t) l$ a
  40.                 std::vector<SelectionIntentRule *> rules1(1);- q5 m# R: }; a6 S! c. u
  41.                 rules1[0] = curveDumbRule1;* L4 }( C. o) Z) l
  42.                 NXObject *nullNXObject(NULL);
    " k9 Z. n# I6 Q$ K
  43.                 Point3d helpPoint1(0, 0, 0);
    7 i9 V; }- V+ W; V% i
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);# U6 b/ W" \% U* [% N
  45. . k+ R, ^8 o+ ?4 {* b7 _7 A# N4 h" C
  46.                 plane1->Evaluate();2 B, [# W# y( e" s1 Y! L- l6 H2 x$ e, d

  47. / y, R3 M& m2 k& F
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    9 f; x: I6 M9 i! k

  49. 5 R  c' X/ n1 A: K. Z+ N
  50.                 projectCurveBuilder1->SetGapOption(true);
    5 ]9 ?* F; {$ Z2 k; _

  51. , N& A$ }! V$ |" b+ C0 c
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);) ?7 W& ?& e5 G/ e8 }8 `% A
  53. ' _! z! `8 D% M7 y
  54.                 NXObject *nXObject1;
    5 K% R6 n  E  B8 Y* [0 D
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    3 i$ s/ p6 b6 {' f2 o
  56. ) Q+ N4 j, |1 R+ h/ P
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();6 l% Y5 }3 E- [; O5 W9 ]

  58. 2 ]- r- r( V* x
  59.                 projectCurveBuilder1->Destroy();
    1 M7 y2 `1 M; c* f3 V

  60. ( P' q7 D) z  {/ Z
  61.         }
    # G. o+ Z& ]; @* {5 P
  62.         catch(exception& ex)
    / y6 @  z$ l! W% K( a( l) }% S
  63.         {: v% l; l  E, X
  64.                 //---- Enter your exception handling code here -----
    ; G' }. J; [. `, |7 ]+ j3 C4 X
  65.                 errorCode = 1;
    # f* l. f; Z3 U& Z# j) z
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());7 o& D: K  d7 Y4 J2 {$ b1 V
  67.         }$ R8 B( j+ X0 q

  68. # L# P! a& f* o6 D. \" I6 ?# j
  69.         return errorCode;
    3 k" W  Q# _: g" U; Q
  70. }
    - j6 Y* g5 j2 M5 r, j- |( E
复制代码

8 f- p6 F, c/ c, i/ s, p% O/ ^( q' n

& e+ A* G6 n. L. f* \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了