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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
9 r; x8 y$ k2 @- d
% L& T6 E  Z0 [" @" G
3 y4 R; s# n$ K( y+ V
UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
" }% P1 v+ y0 Q3 R4 N9 W) \5 O. G' F: Q2 Q' s" D- H: `, ^, g! x
此处使用的是 通过面的法向创建投影曲线,可以参考下!* t6 f* p$ l* _5 ?: C

( j( ]: v% }: z4 ]/ L/ [0 _: [6 `, c3 V. x. r5 }& W1 ?# L+ q
3 G" |) [: b1 F. d
7 q/ f+ d" J4 f9 Z; c3 y
4 ~8 O+ w& i. s1 [# X8 W% R& C* P

4 ?3 [2 I6 u) g; ?! V
% J. S. s/ n& J

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

 NX Open C++ 创建投影曲线 project curves
8 q1 L. h, R/ `
3 T3 F# N8 {  x$ [7 Z) N/ {

# _  ?# Y: s# c$ u- U5 k
  1. 8 `9 W; F/ \  V% r# b
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    & q- `" f: W, z1 H; M- p  X
  3. {
    / b9 V6 g1 K) S" \# p4 R
  4.         int errorCode = 0;/ C$ w& a8 I6 b' J9 R  {
  5.         try
    + b9 _  C# {9 |$ R
  6.         {+ g! x6 b6 N# W! v, [
  7.                 // createProject curves+ {/ X( C* g. h* j3 s

  8. : Q2 u1 m' G4 Q' g: e( F* W& f
  9.                 Features::Feature *nullFeatures_Feature(NULL);
    * o2 P6 }  _& N; z$ t5 N

  10. 9 N* X0 ?7 A, O9 t' y7 \3 j
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    1 g7 G2 X; ?  v" E0 y$ n) M% M
  12. - k4 _, V- ~+ p. w/ K
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);
    + Y8 ?+ e' K) {8 D

  14. 4 e2 s8 j# [; R! J' x: E6 E) z
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    , l# I) V  E( h. b' {3 h/ G9 H
  16. 9 ^6 }/ v. a5 _8 F& x
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);8 u- D1 R% U+ U/ D) M2 ~/ b
  18. ) l# B0 }2 G4 s6 k  H. p" }
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
      R  Q6 V1 ?3 M; s. _

  20.   O, [& S4 a: U4 J
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);6 r) s$ [7 v# e2 H$ w9 a* C# b# {

  22. ' v/ u& s5 P' d+ l" }
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    : l$ L0 V3 r- c$ e5 `( l
  24. ' Y, T- l9 F* x" X
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);+ h+ |& P% {6 N% R
  26. : U: Z  n$ M4 g
  27.                 int size = (int)inputObjects.size();+ _- l6 y" B5 c' d4 s
  28.                 std::vector<IBaseCurve *> curves1;
    . G5 z3 H  l" C4 C& E8 n* [
  29.                 for (int ii = 0 ; ii < size; ++ii)! M( v3 p/ I- x4 V. ]2 u+ i0 h
  30.                 {
    ' E1 S' X7 f& ]' R/ M0 t$ K
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    ! @; i$ |% F4 A$ A5 O
  32.                 }
    1 }" d% H8 V  s  a9 v, d% B, b
  33. " Y  x' E0 e) z
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    0 [* U: F+ [8 y5 U( P

  35. / r& L3 Z( @3 E0 J
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);2 q2 a# j# m4 Q1 b& s2 `2 m9 ]
  37. 2 b5 i/ u* N8 m; ?$ ]7 x
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    ' ?) l, Z& u  x

  39. $ k, r. d4 B3 M( c/ R7 y$ Z
  40.                 std::vector<SelectionIntentRule *> rules1(1);; N4 T7 X; h* F3 T# }6 }
  41.                 rules1[0] = curveDumbRule1;
    % d& j! u8 C/ A" ~) x+ S
  42.                 NXObject *nullNXObject(NULL);9 z: i: K- Z; `& i; H
  43.                 Point3d helpPoint1(0, 0, 0);" f  G$ ^0 I- M5 _( Y
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);9 S' R+ Q3 y5 j% i

  45. " x/ V+ F) s- l0 T0 R4 j
  46.                 plane1->Evaluate();; @5 p; u0 Y* P' |7 M- {7 L9 {6 V

  47. & c1 @' p' R9 w9 X4 P  P
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);1 X3 b& V* m! M1 R6 H

  49. 8 R/ s: W# F( y* j" R/ H
  50.                 projectCurveBuilder1->SetGapOption(true);4 L0 }0 Y5 B5 a3 j( n$ j
  51. + h! n0 u# {1 j# n4 N" H. x
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    ) E' j1 e9 ^; H: |1 _# W" A) S% {

  53. ( h4 n2 D1 K) j  Q: ^
  54.                 NXObject *nXObject1;
    1 K/ {2 B6 K. }* y1 @6 i
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    / R: z7 V- l9 t0 @5 H

  56. ( ^/ x4 m% O* f% l+ W. i: |' K/ |
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();$ _! I' r% ]9 F, L9 ^- s

  58. 6 }- F* P' A/ S& ^, f
  59.                 projectCurveBuilder1->Destroy();! Z8 I. |9 V- c  g% ]8 J$ ^8 ^

  60. 3 k# h1 i3 w+ M3 E7 X4 p
  61.         }
    4 Y) \. b- X8 O0 X# q
  62.         catch(exception& ex)
    8 R9 o5 b' \8 q) g4 @1 @5 n
  63.         {1 y2 T, g; c2 q- g' S
  64.                 //---- Enter your exception handling code here -----
    6 p: d9 a: s6 \7 h$ Z
  65.                 errorCode = 1;
    6 e) E+ A. P% J
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    + x6 {3 e' P6 B" k) ?
  67.         }2 m/ r! p" B* z! n/ R& k$ E' S
  68. : z" J. ]5 C: F6 e& B, c' w5 d
  69.         return errorCode;* p$ n- ~1 k- O, C! V
  70. }9 N& I0 ?% |$ Q# C' e! o. p- R! `9 ]2 e# o
复制代码

2 Z7 V; X% m+ ]  K# s2 a5 K, i& l  g
9 e+ P1 ~0 \6 y7 _. Q; I- I/ i7 p% B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了