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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

6 K2 |% ~  w7 y- z! ^; |& a
! @, R# k+ e' Z7 O: \: O4 L/ n6 q5 G5 x9 i# y
UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves) j- R! l7 G/ D. B' Q2 K1 a' |
. m. P! l, I  T0 Z
此处使用的是 通过面的法向创建投影曲线,可以参考下!
/ b' N* ^# F, u- t/ e, A% C5 ?. L$ r4 g% h2 A, A2 D$ K6 q0 K

) f" V  V9 Z' T  T/ k- u/ ?) S! j5 B6 ?) R5 w/ B  |) d
# [0 O. D3 q! W

6 Z3 q$ S( ?% X1 g& [. ]. e
3 v$ x, |( G" s' C1 P+ s" ?$ j7 b* q. {0 D: w5 @

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

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

+ Z' q% a6 q, ]+ |. w; B2 k; Q& C" H  z

0 t) b' i8 Q, j: m& s! ~4 {' s

  1. - D& a# S% G" P1 d! f
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)3 \2 b8 V5 O" U/ [  ^- @6 |; G: ^
  3. {
    - x' K7 r; y& r6 j5 G
  4.         int errorCode = 0;+ m5 n6 z' H6 ~6 L6 W3 H) y% x% m- R2 A
  5.         try0 o( X+ {$ R/ V7 Y5 I
  6.         {8 I9 ^4 z* T  B! Q+ H2 _& c
  7.                 // createProject curves
    $ D1 ?1 ^' H) D( m

  8. . n5 H) i9 ]8 P! @# m
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    . ]+ p2 k+ D: G# k. ^5 h" R

  10. 8 }/ J6 b. m; e
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;- a" ^# n: p: t

  12. ' f0 h1 K: e7 J% y4 v. |& L- I
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);
    + Q( H, t. k$ S- h  w% [

  14. ! \6 L: d. o. }& l
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);- {' e7 X5 O4 l% \. q

  16. - z7 G& g" @- Z3 T, V* B/ g
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    : [& H! y& l+ `3 ?, w' |; u# e

  18. " v* m2 s' D* b3 x+ K. s9 K
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    3 D" t- q2 \/ l6 H* N, l8 f7 R
  20. ' e! b# a  J- w
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    ; @! R* n6 Z* h
  22. % y4 ]' [" |" [$ I  v3 _5 [
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    # t$ H1 W, R+ a( X4 _* D: c4 ~- N

  24. ! W/ M) b( j  j7 n# K( `9 m( r: P4 E2 i
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
    1 v  n# U( y# X; ]) h( r) R0 ?+ c! H

  26. # n! z- I4 |' A( v( j  x! t# e/ |1 w
  27.                 int size = (int)inputObjects.size();3 e3 ]: g5 w6 o/ ]8 w
  28.                 std::vector<IBaseCurve *> curves1;& a" q( N1 G, D* c3 C- p
  29.                 for (int ii = 0 ; ii < size; ++ii)
    7 l4 a( k$ W+ H4 {: Y1 R& N
  30.                 {) n$ |! K8 k; R0 [$ A
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));/ {# I" W9 n2 K4 q9 m
  32.                 }: ^! X) ^3 q  W0 C( \, z8 b& J
  33. 9 |- g  q8 v2 J& R0 |2 \
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    3 u, w: o( i9 O; e5 L0 I- N* X

  35. # \. B! B6 U9 {0 r1 P
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    " O/ H2 J( {! @0 Z
  37. $ {, F* }4 P7 F+ D% o
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);  z" z( x/ r  S; E- Z
  39. ' M3 H+ K% |5 z5 `5 j& D$ E
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    # V& I& i. a; V/ b
  41.                 rules1[0] = curveDumbRule1;$ P' E7 F' J; u8 u9 a4 S+ Y
  42.                 NXObject *nullNXObject(NULL);' C: j$ P) M2 F- q: O
  43.                 Point3d helpPoint1(0, 0, 0);
    8 y, F4 N1 ~1 }" C
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    0 E  t+ ]% [. a$ v" E1 v/ j: M! h6 S
  45. & F% i& f" @6 J' t  E5 s
  46.                 plane1->Evaluate();
    / n: |0 x5 [2 y- @

  47. " d* i/ G$ ]- j* m+ k0 k; P+ I
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    # W" q5 N0 v+ [& \0 q& F' E8 p. I

  49. 7 p% u% n6 G, Z! Q
  50.                 projectCurveBuilder1->SetGapOption(true);
    & Z! ^# r# L8 }; }( k
  51. ! S* t* _7 p7 X7 @9 e, H2 b6 q7 @+ p
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    $ b; z1 R" e1 t) ?4 x: f
  53. 1 x% x2 r. Z$ @9 h& P+ Y
  54.                 NXObject *nXObject1;9 e6 a+ L& E4 j
  55.                 nXObject1 = projectCurveBuilder1->Commit();; k2 I5 u. }3 c
  56. , {5 ?3 Y9 U* d( E) _6 a8 E
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();3 y% ~6 S8 Y( W3 D& r) v
  58. : i8 D8 \) H3 A
  59.                 projectCurveBuilder1->Destroy();2 Z* e3 Z) X1 s1 r! D9 L) `# i

  60. - D8 _7 C; u; ^# w1 N5 R
  61.         }
    5 j- u' g- T6 f! Y
  62.         catch(exception& ex)
    , l& E" F. w4 D5 Y* M6 b# T
  63.         {8 ], w4 y! O+ [
  64.                 //---- Enter your exception handling code here -----( I/ a* ]% B2 r
  65.                 errorCode = 1;+ X, B3 M+ F- E/ ^: ]
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());- C% O- Y9 w+ K
  67.         }9 d4 ?9 f9 t0 m$ i  K
  68. 8 s+ Q8 X3 Y7 F9 H+ i/ ~
  69.         return errorCode;
    2 \% o& r6 @$ p% \" O# V1 R
  70. }2 h5 `, o6 n" |4 a  z
复制代码

+ I0 V3 @9 b: _' Y7 d2 U$ l
3 h9 a1 t6 c* G! e& A6 v4 Y. P# o) d3 O! U+ ~0 L% s$ C  Z+ h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了