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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

9 C; b$ R. ~! b7 t
/ u) h% I& E+ v  b5 |
6 V+ l+ N. b! C, z0 S- i' U& m3 Z' l8 DUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
4 w1 n4 z  l& g8 i7 _# \! ^
9 T+ B: f3 ~% m, w! b% Z! h  a此处使用的是 通过面的法向创建投影曲线,可以参考下!
# t. R& l6 |7 C0 g* R- l
; C2 Z  l/ {+ |5 Z9 W' B! m, p, O
4 L/ M" y. k! o- a

5 e# f( U5 F  B. D+ {' ]5 G% M0 `/ [$ g9 V
' v5 q0 U* I# t0 g

7 b8 D& T4 Y/ M+ H6 g7 a$ o9 v2 `

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

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

+ @1 ?2 n& b4 g# C# x# l, Q% J0 a2 m) B  k2 E* P1 T; n
4 M+ q2 h7 ~% J' }: j' B9 f

  1. ' L- _  ?1 z6 X& C, W3 u
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    1 M9 ~7 W4 k7 ?1 T5 X
  3. {
    0 j7 c: H1 r1 S5 x) E
  4.         int errorCode = 0;
    1 C2 O  L( {( B; Q+ Y* n- Z
  5.         try
    ( `: E0 f& L! z* N5 c0 r* N# E
  6.         {
    % P9 \; A3 ~( F
  7.                 // createProject curves8 m/ }) I8 ]" I2 g6 A+ C/ c

  8. 6 g# i* S) z" i6 e" P2 I% i
  9.                 Features::Feature *nullFeatures_Feature(NULL);7 B; B: G  u1 R4 o
  10. 2 t: D1 B5 K' F  U3 d- c
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    1 |9 V: z! P; x* Q

  12. $ _3 U6 g2 s' Y( h+ N! K! N; O
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);
    1 K6 w& U* I. g. z" ~
  14. 6 ]% \, L* p" q- l  Z  c0 I
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    ' M7 \; D, j0 |, \% A

  16. 0 m) [1 C6 M- _3 a  |$ G$ P# l# u
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);& p' {9 @8 m; Q9 X) @

  18. 7 v. Y7 d. B' d- z0 g* M
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    0 I" M" _+ V* }

  20. $ `$ L9 G6 O: H. {8 b% c
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);: O% j' I6 m; Q$ Y, ^+ d
  22. 3 d5 F! w* B2 Q$ B$ ]
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);2 V/ d  h. o0 K' n
  24. " F( s( {7 a2 g1 h( Z
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);9 x" T" f& V" o) i) w7 x

  26. . S* K, Z0 z& Z' a+ }# D
  27.                 int size = (int)inputObjects.size();8 F+ f: A2 \6 A' b  Z* `* G& @/ e
  28.                 std::vector<IBaseCurve *> curves1;
    ; M3 C3 V2 E4 |0 D2 M& D1 y
  29.                 for (int ii = 0 ; ii < size; ++ii)
    / z& ~" ~" U+ A
  30.                 {. p0 Z% f+ v  v' s
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));% v$ A% Q4 r# f$ v, W( |8 N
  32.                 }1 ?4 H/ a! H* W  F
  33. ' M4 S/ F0 r8 G( [
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;) u7 e3 W0 z2 [8 f; y4 T+ F6 P
  35. 2 e! O' u5 _  a6 Q
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    - P4 V! H+ v6 ]/ m+ k! b

  37. 1 N% D! [7 N' B( L5 j& x+ D
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    + N; ?' \5 x" o

  39. 1 F& n8 l  I, i. C2 z* w
  40.                 std::vector<SelectionIntentRule *> rules1(1);) c: z4 a* J5 T: E& e- E# _5 i
  41.                 rules1[0] = curveDumbRule1;
    5 G+ t8 u# I) N- f" E% a) a
  42.                 NXObject *nullNXObject(NULL);
    9 U1 J! s- U; l9 R6 \
  43.                 Point3d helpPoint1(0, 0, 0);
    & P9 ^8 e4 }- G1 v& t/ y
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);, ~; `3 y; k" {

  45. " W: ?  m* ~6 I" I$ R: H
  46.                 plane1->Evaluate();
    ' h. l; p4 @! p8 N9 P
  47. 7 {4 T! S+ s: \8 w
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);3 y, i5 k4 t6 _8 W6 f* z
  49. * w! j0 e* `2 x: V
  50.                 projectCurveBuilder1->SetGapOption(true);; f& |1 p! F" D
  51. ) @3 K7 q1 _9 M7 r7 o. _! _* P( T
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    $ ]: P* z8 P3 B5 b/ X# o  {
  53. - S7 c6 M9 r7 h7 H- l" t" h
  54.                 NXObject *nXObject1;
    " ^; f  b8 N) }& _9 g6 @6 ^) @
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    # F% B* ]$ ^- M4 v) _
  56. * _0 F! W# T: o: L% A+ ]3 F: ^
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    " Y! {5 S/ I: b- d
  58. 5 F& O9 g6 J4 O. ?/ J) Z
  59.                 projectCurveBuilder1->Destroy();# w  X; |" V# {# p6 i  C6 V; q- |9 n
  60. % d5 `8 U4 Q! D8 [1 l: y
  61.         }' I- ~' F8 T1 O+ }5 {8 M
  62.         catch(exception& ex)
    5 w& R% w5 d8 C
  63.         {& @) U  Y& `$ g" N3 U/ e# x
  64.                 //---- Enter your exception handling code here -----
    $ _$ [" B# [5 b( m4 n
  65.                 errorCode = 1;
    3 w9 P, U) |. W2 t+ p. y* e; A
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());+ E* D+ o7 z! y4 I' r2 c8 M2 y
  67.         }4 v6 o7 Z+ L. I" i" `) v8 C9 T
  68. * p' _1 ?0 O0 {* I0 O# b; f: o
  69.         return errorCode;
    8 M% C: k  R( A& C% M
  70. }
    + x/ |1 W) y: w8 b
复制代码
6 H/ `1 [9 T5 S$ v$ L# Q+ U% a

) ?  Z/ _3 Z6 Z8 r* E  o  w/ {; }4 S" t1 ^& H' T) C7 H, O$ 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二次开发专题模块培训报名开始啦

    我知道了