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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

( E5 r3 i$ ~6 F( P  I7 t
. B5 I% g0 x" I% K& a4 C3 y
7 |. ^( p, a! G6 l; g4 m7 x/ }UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves" f) R9 J8 F' _4 Y6 Q0 k- @
% u$ i. q3 S7 b! Z
此处使用的是 通过面的法向创建投影曲线,可以参考下!" G; N# s. b5 u5 Z

; R2 k' I3 X7 D  z
0 K; N2 o) S6 O2 ^" {
( O$ b& B$ `1 ^- ~/ J) }3 r% p/ O. Q2 }& `, i& I# ?

+ \. d  G/ [4 C! r% i' i! \3 _, l/ K7 ^+ J

" v3 ^% F+ W6 D& L

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

 NX Open C++ 创建投影曲线 project curves
2 i- {! \3 R" {2 O* ?1 i

3 v4 [& O+ [9 C# T
* u/ d5 R& M1 ~6 p0 V3 r

  1. ) y5 S$ ~1 |* @' O0 A/ Z6 W" Q
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    ( U+ Y) P: s4 K+ }# y
  3. {
    3 `7 ~  G5 t5 [9 ^3 \9 q( I* ]7 j
  4.         int errorCode = 0;
    / t# J9 l2 g# `5 v$ \
  5.         try
    # O  j. O. a: s
  6.         {
    6 ^% e" h2 F  V0 I* t! Y
  7.                 // createProject curves; t6 |  F: s4 {2 z3 y$ t
  8. 9 V0 l* K: c4 y
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    " p& n  f4 p! ^2 P6 v: S
  10. # D3 I* a/ V7 D, H  j& `4 Y
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;1 h, \$ C9 N/ d# |4 S  v; O

  12. 0 F: F" ]0 M! _9 v8 N/ n
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);
    - O2 V; n. i+ g/ Y4 R5 k0 H  N" Z& q+ ]
  14. . |3 F' }: |: W( m
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);, M( r; s- \0 k4 w! }8 E. I6 ~

  16. 5 k& N+ M8 T: i4 e
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    9 p8 }$ e8 K5 k
  18. 2 o  E2 h/ }2 T
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    # g0 j9 d6 h5 y/ D1 u
  20. 9 g# Q2 A7 g) ?  ^3 z
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    - U! U0 d; V0 N. {6 y: ~9 r
  22. & M; C; V3 `% s/ }8 T
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    ' w/ K: N+ r$ }& u" {: r2 [

  24. ' ]7 c& }$ T( g: E3 V% X# l) X0 M$ ?
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
      F  Y; s) g; Y8 r

  26. 3 i2 |! t# n) b  t5 ~
  27.                 int size = (int)inputObjects.size();1 W' t- M) t4 {' m* G
  28.                 std::vector<IBaseCurve *> curves1;  m4 _3 Z0 ^9 w- t, N
  29.                 for (int ii = 0 ; ii < size; ++ii)
    8 N$ T' n0 S, q
  30.                 {/ u  }0 S2 B3 y, u7 S4 _+ t  M
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    6 }- p; C& X# b! ]6 E0 Y$ |
  32.                 }
    7 ]* f$ ^* B! T0 Y: x( u

  33. 1 f* H* ]4 g" G  c- \5 S
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;" z& k8 u3 c5 L1 s3 D9 Y7 X
  35. ) T' \. N' k! b0 k. X% P5 u+ w
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    3 O) h4 W7 H) T& e

  37. / u) B' J" o. l( b
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);5 [- \# |) T- p) L4 [8 a
  39. 8 g' T" b$ t, C  v) ^% B% \! h0 o
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    & d* ~/ I8 W. @
  41.                 rules1[0] = curveDumbRule1;+ r& H: _( r+ f5 k
  42.                 NXObject *nullNXObject(NULL);! A! H  o; j4 E+ n: y! q
  43.                 Point3d helpPoint1(0, 0, 0);. r% X, E! z1 R: ]) V3 y, [
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    & H# @' j& {- _( f

  45. ( T  J7 Q7 d+ D; b0 ]
  46.                 plane1->Evaluate();7 O1 p0 Z. |1 \& N3 b! w
  47. * N" A6 N5 Q* Z$ P
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    5 \2 J' j, H+ \, g0 L8 ?9 n

  49. 8 z6 i4 {* z0 c
  50.                 projectCurveBuilder1->SetGapOption(true);
    $ y5 E8 C# \% f4 b

  51. / q8 s7 Y) k! R0 V3 T8 d1 u1 E7 b
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);/ B/ P1 e1 E% v

  53. 6 S5 [, D& _% s3 `0 F( @) E6 Q
  54.                 NXObject *nXObject1;. [, x/ b  w1 [; F; x6 C, S
  55.                 nXObject1 = projectCurveBuilder1->Commit();. d, D3 p: u* h! i, z* b
  56. ; S$ W4 v- z, f- l. h; o+ C# g
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();  i) i* @( j, s* F5 [: m( ?6 Y

  58. ' [# d6 a! J- s/ Z, J
  59.                 projectCurveBuilder1->Destroy();
      x# a: x5 o! H7 B/ S3 O9 t6 }& {

  60. # v! R( `2 m2 w
  61.         }1 D2 A' @$ M: e7 M" J6 w1 e1 J
  62.         catch(exception& ex)
    # x7 N+ L- e$ n4 B8 e
  63.         {
    . \/ ?1 Q+ i' @+ m
  64.                 //---- Enter your exception handling code here -----
    ' z5 n( Q- D2 F' P1 B: d
  65.                 errorCode = 1;
    3 {" ^% ?4 s- \* [; c
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());; d. U3 r. Z& o( T& T' L1 m7 d# C
  67.         }
    " h7 l* L3 I& t5 e# B( o& K1 B

  68. 7 F* L" K4 [& Q$ V
  69.         return errorCode;" a- V$ Y) g; A- T2 W* h1 _
  70. }
    ! W+ e+ _  x% ]! [' P# W- ]& `
复制代码

( D6 m  E0 I# S. \) J9 \$ z1 y3 Q5 Y" N2 y8 k
; T+ `, r" ?5 O# E/ z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了