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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
+ H+ y/ K8 i+ |) }6 Z7 ^( r

& Y7 C7 \4 {5 ?  m) K! ^* J2 \5 {# ~! Q1 Z7 t
UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
8 ?' s* b  {* i: y8 e% u: i5 q! S( A' V3 B. `
此处使用的是 通过面的法向创建投影曲线,可以参考下!% |6 p8 m+ U9 N) n; q/ C! h

/ e; M) x+ L* T7 H7 p" e
: }. G, q3 R6 q% w: `. U* c5 ~$ G3 \
( ^; g6 y) ]. g& q/ N

4 r* P# y+ S, x+ ^/ o: b) \3 {
' j! g2 N( b4 C7 u7 h8 G5 Q; R' P  n2 s# d# v$ m& W7 P7 G

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

 NX Open C++ 创建投影曲线 project curves
, K% B/ y$ _1 R

6 \" T) K: ~1 p3 v. Z
4 p2 Y$ S/ u9 s% b5 s

  1. & L( q' z' T7 U9 _
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)- O7 [1 j+ n- X! I5 ]* X
  3. {  n' j; e8 X/ }, T1 K
  4.         int errorCode = 0;' o$ [9 ?! Z5 ?. x0 s, v- a
  5.         try7 d$ R- O# G' e# S7 {6 B
  6.         {
    # [6 r2 A, ^. z3 X# L% Y& {
  7.                 // createProject curves& L8 _. T: Q5 x- T
  8. 8 v$ ]: g& c4 d5 ~$ _" b% J
  9.                 Features::Feature *nullFeatures_Feature(NULL);  x. p6 _0 @9 m8 ?3 ]
  10. & [6 U& l, ~. w
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;% e& y! g9 P% w- k. U7 M8 \( s

  12. % a+ A* z* @/ x
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);" g) {& I- s2 E, N# A. k
  14. 9 P: s# i  ~8 W& d( H+ i
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);2 S6 U" x& [9 s  s8 e; F. l
  16. 8 p1 r. F! L' x
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);8 k# y. \1 @3 h! O8 T8 ]
  18. 8 _) h5 K, ?) R, I
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    ; M. g% l! F; S" g* h2 E; e

  20. 6 E% M; o' m+ G! ?1 W2 X
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);' D7 c$ ]' u" |- a$ z3 ?+ |) ^

  22. ( Q* |, q$ Z% [! n& a0 f! r" v
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    ( X5 s+ N( L0 [% o9 T
  24. * r% B. p& I9 j- w
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);7 J9 L6 N( t/ [3 \4 p6 g, R
  26. , ^  A7 [( O) Z( `' t* A  w
  27.                 int size = (int)inputObjects.size();
    # D2 A1 X2 s5 `7 N9 \
  28.                 std::vector<IBaseCurve *> curves1;1 M) E7 y# J8 X: T- g2 k+ I- B/ F
  29.                 for (int ii = 0 ; ii < size; ++ii)
    * x, L# N% _$ m% ~* K
  30.                 {. z- R  ?. o; M. Y( Y% G) B
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    , @  p9 d9 ?8 _* {* r# h2 M0 n7 A$ m
  32.                 }
    1 R  B  A4 D- ^% a: U  B9 }

  33. 2 m7 ?% X" m( B) m0 O
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    9 w' H* Y( o$ h# i8 [4 T

  35. 3 {! R3 n5 h- R4 s: ^! s* A
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    ( l' i& j; w: F

  37. ; u+ d9 f4 v* P
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
      |: ^9 F+ B% ?1 u
  39. 6 _! w. |7 [8 W) ~; t! ]
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    % l8 f( a4 O- H" O  ?/ r# S
  41.                 rules1[0] = curveDumbRule1;
    3 t( u4 l: _) Y, A# j) H5 Z
  42.                 NXObject *nullNXObject(NULL);
    9 e$ n# r: v( G7 ^+ T% J8 \
  43.                 Point3d helpPoint1(0, 0, 0);
    & _0 S8 Z* J$ j5 |4 G: V6 v( J1 K( P
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);2 ?  q( ^$ b; @* D8 Q2 G" E" i

  45. , S8 G2 z* q3 S; H  e4 e
  46.                 plane1->Evaluate();
    5 O9 d5 z2 `) g; s

  47. . _6 a5 j) K, Z4 I: b
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    - S. S% y: e1 d* p1 |0 ]) E& S
  49. % S, I- o! Q" \0 r" _
  50.                 projectCurveBuilder1->SetGapOption(true);1 ?4 l* ?1 M9 O+ g3 x
  51. , k4 L; c% _' s9 P5 ]# S* k0 U
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);5 R3 @$ x0 T3 _+ C+ O$ b8 H3 s7 m
  53. % J' a$ W  R9 o" C8 {, L
  54.                 NXObject *nXObject1;
    % p& s/ d" R+ P; X
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    4 v+ \0 n+ u0 l2 @: l, f, k0 H; n

  56. * ~  {3 v# F1 _! \0 A
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();: y# f* v- f8 X& N1 I# L2 z
  58. 8 J& H' i' p- a  b3 v- q1 o; l
  59.                 projectCurveBuilder1->Destroy();' g; @) y3 Z# u, F

  60. , |& o% y. y3 d
  61.         }
    " N+ x" U3 o3 o5 S+ |+ V/ [' a2 h
  62.         catch(exception& ex)" b5 R! @/ q& v7 L3 B5 I
  63.         {. A7 A* R6 i, v  R
  64.                 //---- Enter your exception handling code here -----
    ; ^5 j9 ]6 ?. J/ r# Z# Y$ V
  65.                 errorCode = 1;
    + M0 v9 C, ?4 t0 R* j# N3 z
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());/ s+ r- g( S8 z: j+ z) c+ P* j
  67.         }
    ; c8 @) {/ Y1 J$ X
  68. 8 T9 {. \, a: g0 ?
  69.         return errorCode;
    . M9 Q$ @5 H/ r* ?+ r' [2 s2 X4 [
  70. }
      f% d  |1 u9 I) Y
复制代码

4 z5 y* ~7 b! r" k* e3 K  V* A) C' F- W2 b* ?) g( U; @( \- \* W

$ J! _& f/ `' `: j/ @8 }" o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了