PLM之家PLMHome-工业软件践行者

[二次开发源码] UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves

  [复制链接]

2019-4-25 18:47:55 9212 3

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
+ ?  g; k" @8 _3 S/ I2 W

. E9 Q* D. t. s# s, u
5 z: l2 f  q8 }" |* kUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
: p. Y, _: Z' w/ O$ l  t$ Y3 G) r( C5 X% W/ _* ?3 r
此处使用的是 通过面的法向创建投影曲线,可以参考下!
2 m; N5 M- u" i* C, V
6 q, w8 V4 U# `) n9 A) [! O+ m2 g- w' x4 k
- U$ F$ F* ~# Q: e  ?
0 i- k; A& j3 P9 {$ j
7 J. p# V# p8 M) O
4 S: l( ]( Q7 y: t  R" H" L0 Y
: ?* s, r! v0 S! l# q: p

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

 NX Open C++ 创建投影曲线 project curves
* x; K; o' K  ]% ~7 x
' F8 ?4 o1 ?: Z$ b) O- K8 N
% ?2 Q" c4 a3 Z+ n4 w

  1. ) Q6 \. D9 k3 V0 E" R1 \
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)  U6 O& y, j# [: Q1 K
  3. {
    2 k, O2 G* F* N5 _( ]9 g/ V& o# M
  4.         int errorCode = 0;
    7 l" O+ e) X- s  C5 a5 h# F
  5.         try- T& ~! |" B. o" e
  6.         {  I& G1 N* ^5 r7 q" B8 H
  7.                 // createProject curves
    ; f; y- y) T$ _3 k* E6 F
  8. + O9 W4 |0 x  @7 o; u+ g
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    " M% d' @' A! i0 U
  10. ! s$ h$ F% M  a) r3 S1 j, o7 z( e
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    5 M  s0 w9 o+ a2 x
  12. 0 v3 x0 Y0 L6 J2 V
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);/ L# I. R0 i) P4 _( p' C1 U

  14. 9 f; c" p0 C0 @* Z9 `: }, R4 N
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);1 d8 ^8 |5 {4 I' g/ \$ Q7 q& ]
  16. 3 K5 D; J  N5 o
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    " c9 S: O! y) h/ |0 X  ?) z

  18. ' x* H; d( X: A1 S
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    : J# [8 \4 K& l- n8 B4 `( {
  20. / M# z7 c0 u( S8 U
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);. |; B" ]: L6 a# }9 s) D; B6 q2 ^
  22. + ~1 j, q0 k+ I. u* c
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);# P0 x% H; |4 \# [( j
  24. 6 `. H% A6 U$ r' E$ P% h- [
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);6 q& `# b! _* J- R" Z( G

  26. , N" Z/ L% r& T3 p
  27.                 int size = (int)inputObjects.size();' n1 V8 Q, w0 U( q' y, x
  28.                 std::vector<IBaseCurve *> curves1;3 @7 m9 P# @8 ^; J& z0 [7 \1 i% \+ c
  29.                 for (int ii = 0 ; ii < size; ++ii)* g& |2 M; s) T( S' \
  30.                 {
    ) _2 H' d0 n- b( Q3 R5 h
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    + p8 A' Y2 u6 Z
  32.                 }5 i! R0 |% y- |" U
  33. 9 D" p! h; X' m, B: ?
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    * y* v. j" q& J* D, o8 D. k* i) U

  35. : N* d( ?4 t5 {9 N
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);5 c" ?1 o5 A3 D, c) f  z3 N* y/ C# z
  37. - v* p6 ]8 L, x4 n' M
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    & a5 X% O5 w" T, C$ a
  39. 9 {$ A+ _7 z# u5 v& v  c
  40.                 std::vector<SelectionIntentRule *> rules1(1);' N6 O( u' W* `& F: \  Y( W
  41.                 rules1[0] = curveDumbRule1;* w# o& X& \. Y& r" K& w& v% L/ g+ p
  42.                 NXObject *nullNXObject(NULL);
    1 m- a8 F. _/ L; _7 b& `
  43.                 Point3d helpPoint1(0, 0, 0);7 j/ [/ i7 n- @4 H6 H
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);! _* Y# s2 W, y

  45. : X* U& b/ U/ y( [
  46.                 plane1->Evaluate();
    7 Z+ _& ]/ _. N  ?# M
  47. $ O0 W' ^- H; C( ^6 F6 U  N' O- h$ o
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);5 c7 [$ {  d4 E5 {) C8 b* X
  49. / B5 P' g; M, e: ^# k, W
  50.                 projectCurveBuilder1->SetGapOption(true);) v* {; W) x" R: p) b* l- x+ @
  51. * V: {! ^5 C! r
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);; ?- g3 E4 k+ i( z: X& R! `
  53. - P7 i" p( q( X* z+ D% ]
  54.                 NXObject *nXObject1;9 }( F# b7 \* F' V* e
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    1 g7 {% D( `9 k! L0 F4 \" ~

  56. * x5 S6 x+ @: H1 p3 h9 Q( i1 u
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();! l# p7 x0 }! ~( l6 C

  58. 9 ]2 }: i. ?+ D* q
  59.                 projectCurveBuilder1->Destroy();
    6 k; e4 O7 o- I
  60. 2 j/ H$ C4 e& E: W" O( |
  61.         }+ h+ M# E! T! h0 R. _" R
  62.         catch(exception& ex)0 |2 _. T' o$ N3 g1 u
  63.         {
    - w/ C+ f' P( `* y4 u& I
  64.                 //---- Enter your exception handling code here -----) m! P7 U) ?/ i# y) \
  65.                 errorCode = 1;
    + r1 \( h( D- p! i* |# v1 V
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());! [" d+ U- d. ~* P; Z7 y, w: y
  67.         }
    $ Q; W3 E; i! I: k! p- }2 h

  68. 4 \+ V! l" @. i. S
  69.         return errorCode;0 k( K$ G9 v$ h$ v; G! X* y
  70. }
    9 B6 h8 B( w! Q* Y
复制代码

) F9 e& \( O  x( S' j0 w- H+ M: l# F8 V
$ S9 \* Z( a! n$ U( |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了