PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

! q$ C9 v' k, _  i: C5 `. o: X6 E1 R2 H  ~, f
% `" \* h% o3 R, x
UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
4 P: s& Z* K- F7 z. Y4 [5 T) e: W9 P
: [9 J+ |1 n" K; i! g% |此处使用的是 通过面的法向创建投影曲线,可以参考下!
! [& u( Z; H( s3 L' m* n* ]- J7 v4 h/ P3 q

) }: ~/ T, J" q3 U. l' ], P
' M1 j. w& c+ W+ O7 t$ y9 s8 r" }! ]8 _

# S0 e$ @4 `/ e5 L* m3 x( a
1 e: p9 u& j% V4 J4 u) p
# T0 s( a4 J, q, G* {, \9 u

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

 NX Open C++ 创建投影曲线 project curves
; i8 D- E$ a8 W9 b

; v0 V9 L& a0 Y1 y; l% T/ t
( E4 o! P% X9 U( |& ^1 `

  1. 7 u; ~) ^6 `$ \% A6 x
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)0 U9 `( @$ _' g0 Z1 `- W
  3. {% }) _9 @  K' t# }/ l- e) F3 r; \8 w5 R
  4.         int errorCode = 0;5 [8 S# W3 g9 I1 F* Z: b3 b
  5.         try
    % F  t. i$ _; u% i0 b: ^
  6.         {: z9 p, D7 F/ }7 y4 u( Z
  7.                 // createProject curves
    - i3 d; o) P; q( U

  8. ; v7 G5 a/ m% l" N- G7 ^
  9.                 Features::Feature *nullFeatures_Feature(NULL);3 B) {/ p4 t' F. T9 b
  10. 4 Q( \1 l" `4 {( @' A: J+ S: {3 y
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    / u/ d$ X. |* J2 T+ _) c  ^9 ]/ |
  12. 7 E3 Y: c0 E7 V1 \: @  L9 v( a' |  B
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);
    / ~: N6 q0 S# N0 |8 p
  14. * P. G0 c! H! `
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);9 P5 T# e4 A; {) m" b% c9 ^

  16. 9 P9 D3 q4 \$ q9 ?3 L5 ~" C5 B! [
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    9 i' k3 Z* C" R

  18. % b& G3 S7 k/ {" ]- T0 J' v+ m
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);% Y# [& X# ]+ g) [0 w) M" R

  20. ' _! w+ j. o( E$ }( q- ?) u  D# O
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);: P; d  C. Q8 M. h2 W

  22. 7 i' e5 {, o2 }, w
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);! i$ J/ f% t+ v! I% }, H6 x8 [
  24. ' d, G7 V1 |2 `3 w# `
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);; J  z. D; W- m" p' w) P
  26. ) \* p: E+ Z+ Q7 f
  27.                 int size = (int)inputObjects.size();0 B5 A7 o# J) t6 M3 F  `
  28.                 std::vector<IBaseCurve *> curves1;; u+ _1 S, N; a% g, p; z! w
  29.                 for (int ii = 0 ; ii < size; ++ii)8 R. w' ]; u! v5 Q* ^' J. I
  30.                 {  \) u  G" N' U) d; g
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    ( O8 S/ `0 a7 d
  32.                 }
    . ~3 S+ P# k$ t& o6 f2 Z# O

  33. 5 a' h+ I. v: q8 {/ I  P
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;1 C  q( k/ a3 L, I* b

  35. ( @/ k1 |6 K$ ?% Z# u3 L& {
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);- `- }; C' {% J( J, e" U! h

  37. 0 |. B5 b) ^7 x) G8 r) y
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    . K: ~2 ~7 A& G1 v) R
  39. ) a/ X4 Q; V8 M# g7 J5 {5 M) p, j
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    ' `, O# n% t$ D( t; l) E9 }
  41.                 rules1[0] = curveDumbRule1;9 s4 s; b9 R/ @$ @) l$ Z9 w: p
  42.                 NXObject *nullNXObject(NULL);& N( E0 D0 O. |4 ?8 W' R, b
  43.                 Point3d helpPoint1(0, 0, 0);  w. [  h4 Z% T" ]) N, V" h* m
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);) N: g& @, a4 z, h: A9 c" Q

  45. 3 x& d, z' @5 C
  46.                 plane1->Evaluate();
    5 g: i- _0 d7 d$ {0 P2 w' z# R- |

  47. ( F$ ~  \6 u+ ^4 B& b0 Y
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    - q3 `* Z4 |* m4 X  a1 G" a3 b
  49. 5 x6 O; ^( q3 X) j7 M
  50.                 projectCurveBuilder1->SetGapOption(true);/ |: g! z6 i1 E4 G, [

  51. 9 ~1 j  B: z* M9 [# {$ d3 n! b
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);& m3 a: ?, M3 m* ]0 ~* x( m

  53. % M- b. \1 V2 A9 K( J
  54.                 NXObject *nXObject1;4 A; U( _7 R8 m, @
  55.                 nXObject1 = projectCurveBuilder1->Commit();* q0 D5 x: G2 g# ?( G' H) x4 C# I8 p

  56. + g  _1 O  C* S% E( c% w. m
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();  J% O0 s( J# C8 p

  58. 7 S! y3 J) R. v- q8 H: J& ^
  59.                 projectCurveBuilder1->Destroy();
    ; _* c/ o- \$ Y
  60. ' ^! t# ]* k" c* t( S
  61.         }
    ! t0 M' W- {) R) y2 D# q
  62.         catch(exception& ex)
    * O2 A: ?' {; {$ b
  63.         {  [* s8 X  y6 l7 i' i- Q/ `) }
  64.                 //---- Enter your exception handling code here -----
    & c) U/ |- J7 |
  65.                 errorCode = 1;
    , @3 f4 ~" p1 z# x) S4 b
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    ! t/ Y2 \% h. z& Q% p# H8 b' x4 W
  67.         }3 H8 f" a# q) w& S5 O6 B

  68. ( H* X' l5 U) `
  69.         return errorCode;1 T: r3 P+ A/ A8 [# r
  70. }" s4 b( u9 {8 f3 q8 f9 K
复制代码
! [! I$ h0 o- E/ V
5 d8 a9 E, P0 ~& k9 P) l* e' E

6 k8 v: D- S, T9 u& c$ ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了