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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x

5 U8 L* [0 F7 S
* c- _# z& ]* H2 G6 k0 p& z! F7 [$ Q6 ]
UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
. R2 _, s0 }, E( w) m2 I
  s) X! W( m# S0 s- g5 v; ?& U5 b此处使用的是 通过面的法向创建投影曲线,可以参考下!
- q/ ~. ?% @8 |- `+ B/ D: Z+ C
+ T2 q. h8 O1 m9 B5 b& u4 W
  X  r0 i+ a2 m2 f; h" N$ f
8 O" b6 G( I! E2 w$ L6 N8 c( U
+ X( g1 K; |. {' D- ]& w( b/ C% D8 _6 F$ ^
% b; W5 B% O* H

, s, D% c( m4 j' L0 {1 a4 ~

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

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

3 v& _0 l/ M, z+ c% U7 ]8 Q) o/ y$ R8 I

% T5 y$ ^. l- n2 c* j/ w0 U
  1. 3 L! a- t/ N# X+ u: |
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    " X. M! F/ [: d4 f) D; k
  3. {
    / H( l! `. p  `/ M  S& T5 L" F
  4.         int errorCode = 0;( |& k2 O) p# J* N+ b
  5.         try, R% `5 F, n8 S* g! b0 s
  6.         {8 e8 `4 h, `( `% Q$ `. u
  7.                 // createProject curves5 w9 E5 t9 b: r$ H! ?5 V/ L

  8. ( j" I: {+ ]4 S% ]. q
  9.                 Features::Feature *nullFeatures_Feature(NULL);* l% A0 x" o$ s' \: @/ M% l

  10. " _4 s+ p: j( Z! [& F6 C: {
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    4 K8 p' l0 T: d+ l

  12. ' q, `, g- [) V& v$ p. i
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);% n7 o1 P: `# |, ]& P+ q, a. ~
  14. ( K$ o2 O6 d- A( V
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);8 W8 D; v! l, o( G1 B

  16. , j2 m/ @- f$ ]
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);8 V* ]/ N$ J/ s1 Z* o3 X
  18. * N- O/ J' [& m8 j
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);) z" N+ K" `. b9 o8 `$ i

  20. / f1 ~* P/ K* J& G, N) R
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);. Z5 A% Q/ s  Z5 W; P/ m! A; h/ ?
  22. ) ]- q# \& Q! i2 ~* B
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);6 o" Z1 o  ]3 y* R
  24. 7 ~2 Q- n; k+ N( V
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
    9 T# v9 x- H9 t  [# d4 T

  26. 2 F* [. A2 [% G4 a' o- u
  27.                 int size = (int)inputObjects.size();
    9 x! |( a$ i- M% p8 _  {
  28.                 std::vector<IBaseCurve *> curves1;2 }, [, Y6 M3 u
  29.                 for (int ii = 0 ; ii < size; ++ii)" ~$ M6 e; m4 t8 h! M- i
  30.                 {
    - D) ?" P$ W0 h9 y1 ]; E
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));' h# u3 [3 l: f
  32.                 }4 H' Z# V7 u4 |$ Q. X5 X" |5 E
  33. : p$ s- T# ~8 N% i" L
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    - I8 V+ s$ ^; P$ j/ R) S7 e% G

  35. 6 a, O  x& u1 X+ L0 ~
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);, H" A) G. Y0 g; f' L
  37. 3 H. f; ]( C! f9 C
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    4 L+ k8 Y' l1 H) v9 E4 m% G
  39. ) e8 J% a1 G2 I4 g- `
  40.                 std::vector<SelectionIntentRule *> rules1(1);
    , [, p5 }/ e' o4 F* V/ E
  41.                 rules1[0] = curveDumbRule1;; y( Y! f8 H$ i
  42.                 NXObject *nullNXObject(NULL);/ t% D3 ~) C( ~
  43.                 Point3d helpPoint1(0, 0, 0);
    3 |8 \. j/ P- u" O7 I* z8 k" W
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    & v# Q0 e9 x: |6 |7 s! w- B
  45. ) t, g, o  e2 B% _0 y
  46.                 plane1->Evaluate();
    : C' p$ [4 o" i# s
  47. ; a$ D. m8 V( G) {' _- e: H
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    6 f6 F: [& |7 y

  49. 8 t3 l3 ]8 ]3 I. ~' q
  50.                 projectCurveBuilder1->SetGapOption(true);
    : O/ G3 s5 ?: p2 @- F
  51. + D8 M5 N9 Q' m/ \  ?' y6 v
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    " n1 F% S3 u) }) S1 {: O

  53. ! Y* k' `. @4 Z# o& Y, y0 ?: ?% ^
  54.                 NXObject *nXObject1;0 o5 v6 o# c, X
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    & C& K, q# x: T4 f3 F) s6 A

  56. 0 k8 R* O( w1 q
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();
    $ L3 c% C/ O0 }6 }, u, ?2 y  s

  58. : B+ S8 |4 D* S4 |" w
  59.                 projectCurveBuilder1->Destroy();% R# t- m( E. W. f1 f: J
  60. - B0 M, C& x8 J! u! c
  61.         }8 m4 p1 y- p( P4 h* u  `. G1 J0 E
  62.         catch(exception& ex)
    3 @: T& f2 p4 y, m) f/ [6 [1 U
  63.         {3 e# L: s" f( ~; Q
  64.                 //---- Enter your exception handling code here -----
    : }4 \  e5 C1 r' c+ M6 m6 z$ e1 `
  65.                 errorCode = 1;  h# y. |0 |4 \, x& e9 c
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());( v8 h' E3 Q2 H* M) E7 k1 N" f
  67.         }, O' J0 T/ ~- u$ J; I1 N

  68. $ S4 h0 J3 H+ ^% A+ y' k
  69.         return errorCode;
    2 p+ y' K. n/ e4 t) o
  70. }
    . k8 o0 ~7 E) |
复制代码
9 G' ?/ f' M+ {, W9 I* O7 T/ K' |5 V

1 ^5 Z) U  Z5 @/ i: _: N% F7 s6 \0 l" K7 |- a1 O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了