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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
1 Z7 x' Y: z) h4 J1 p( I
; O# a' ]% d* c4 U0 Q

' W3 H! U0 X1 s* Z" e$ a; o$ CUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves' \! c7 _2 A$ }1 g9 L; R: n

0 g6 k- n0 n& Q& k# V. _9 x, P此处使用的是 通过面的法向创建投影曲线,可以参考下!
. e" j$ c  i+ C& \7 [, t, B( X" ~4 `' Y8 ?# Q. S- P( i

1 E. B! ]$ h$ N) |
( [  Z* _* w; Z8 H8 T. ^6 s$ ^; D5 u" E8 W

5 ^7 ~/ ?( U$ Q* T4 B5 U; |% I. B1 }. j

+ O9 S3 I, Y) @$ j% c; L) Q

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

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

& ?+ |, r  g. D0 Q1 _: m
4 O; v3 K) }& M0 x6 M. `  A7 [6 _4 ?0 G2 Y. A1 }! F6 Y7 @
  1. $ @1 u) `1 b  ]3 e0 @
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    # P1 R& C- ^6 Q2 j# G1 [/ X8 R
  3. {: X, k) S# h. S
  4.         int errorCode = 0;
    9 W& c+ k# }2 }* H' @
  5.         try& D" p: F3 x! ]  H( ~
  6.         {* P4 \* q) |. J  C; c& k
  7.                 // createProject curves& j6 y5 |- K+ U- N. `
  8. " f% x5 v' D% K) v: J/ N
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    : u3 c3 V" h, k! d5 d
  10. & ^' Z# Y1 p) s! I' C2 M' l, b
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    ! B8 H3 i) V  a) d: F0 a3 V
  12. : h* I0 T, T8 q8 ^& @* {
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);& A( K' K/ t& T& ]% e# p

  14. : B0 P1 y+ h9 R" }, {
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    / A1 ?' a' a+ _! J
  16. 4 @/ O) ?0 H+ c. M! u) A
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    ( V& C6 J$ ?7 s4 {& n

  18. " N7 K! W9 A3 i  |8 X
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);4 [" M/ o/ p2 [# M

  20. ; t8 D% E% }1 _2 {1 Y: W
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    2 L5 m1 G* j; n5 _! e
  22. $ @# ]0 y8 K9 K0 ^7 l. l
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    9 _6 s9 O; d+ T8 |5 g, K

  24. 1 D6 \: |" c1 H% q7 R
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
    2 |3 M; H" U0 w5 @

  26. 0 ]0 C) M$ X* X% c1 q; |$ d
  27.                 int size = (int)inputObjects.size();6 M! J& ~( n3 U
  28.                 std::vector<IBaseCurve *> curves1;' E; z+ C# A7 \
  29.                 for (int ii = 0 ; ii < size; ++ii)
    $ K8 o7 n3 K9 a$ b; d% G# T
  30.                 {. ]+ \. n8 L; P0 s6 O+ _
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));4 Q% k$ y. z1 ~$ y+ M. H
  32.                 }: O6 W, J9 ~+ D$ Y, }
  33. / }) X  ]1 ^/ V
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    ! M" t( T! ], X- V* F* i

  35. # P, O9 w6 X- g: V2 r1 J
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    , Q5 o8 l# b/ B/ i# l

  37. # {* L5 t* `- ^% f3 E" B% h
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);7 H2 A/ Q0 d6 s' o9 b
  39. 5 n8 o7 O+ |/ [
  40.                 std::vector<SelectionIntentRule *> rules1(1);$ C2 K- a) Q. e& P# S6 Z4 ~
  41.                 rules1[0] = curveDumbRule1;
    ; \% R" p4 W; ^7 x
  42.                 NXObject *nullNXObject(NULL);
      P1 I9 G" U& g9 J# P9 m  t% A
  43.                 Point3d helpPoint1(0, 0, 0);! H2 J& w" Y9 z5 h
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    : J/ G( b, G! q" r" B2 n8 d
  45. & e) @' @1 U- Z. A: B
  46.                 plane1->Evaluate();' C) w* z6 C3 Q0 \8 Z! f, g( e; C' M
  47. : B0 X7 m5 d- ^/ [' M
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    + \* x$ Z9 k8 ~! y0 f
  49. & D. q6 w- ?/ x3 E- m
  50.                 projectCurveBuilder1->SetGapOption(true);) I0 D/ p2 }2 ~) ^. S" J4 {$ x6 z5 C

  51. ' R- G8 d- u& j( w9 F
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);% d) T6 Z& P; B9 [- @; X3 n2 ]& N
  53. 9 o/ ^7 ^) d4 c$ k& j
  54.                 NXObject *nXObject1;
    , ?: P& F2 P: C9 ?6 x7 B
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    * @( M# D2 a  U; ~! e, p% V3 V
  56. & g6 q& b6 M8 u1 e3 |4 m& o/ \
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    4 O2 r# L2 x" T1 T
  58. , {8 \2 m; m% R4 Z/ C
  59.                 projectCurveBuilder1->Destroy();3 G+ ?: g3 f! r. m) k' p
  60. ' S! [) I& a0 g( H& R' |% |- x
  61.         }) X# O9 E7 y6 R- d
  62.         catch(exception& ex)
    - \* t7 Z5 R$ C* o. y! E7 ^
  63.         {- S, Q7 z2 Y% S! d2 m
  64.                 //---- Enter your exception handling code here -----* q9 v) D9 X$ j
  65.                 errorCode = 1;, o" p3 K# b4 J5 @9 G
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());1 S$ y( C- K  v! i5 f6 `
  67.         }' |, o0 W6 F+ r8 u

  68. ; A; r7 v* ^4 Z
  69.         return errorCode;+ I$ A  ^+ T7 U' J4 ^3 I, q# u
  70. }
    ; H7 d9 M( W. p6 }# l7 _5 N; J
复制代码

6 w+ Q" _+ n. J5 E  [6 T  ]2 f
* k2 E7 l7 x  v* Z9 F# D! B
7 }9 V3 [% T# C, 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二次开发专题模块培训报名开始啦

    我知道了