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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
1 g- V7 S7 f. l* E8 o) p/ e! [

% J: R1 R/ P( m# O+ t: c4 g8 ?
6 D# B* q; G( ~UG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves6 k) _! H1 ^7 a

( o; z- K; Z$ w: \4 Z& ^此处使用的是 通过面的法向创建投影曲线,可以参考下!
# m' h3 x; X' ?: ?2 r2 C$ Q. d# K% F. d$ J! n/ [% I+ z% f; x/ J

6 r1 [- K; m/ f& E
9 ]  r. ~7 J; F# I
! G8 o4 g3 P# @) o2 l& b
# ?$ x2 X1 w4 t
# |8 @4 X4 R5 x2 B; P. h1 J( w9 F0 f2 E; b' p

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

 NX Open C++ 创建投影曲线 project curves
9 z& P! ^" K, H: u3 f
8 X& `3 J& ?. k1 l& h4 u

& g- m6 G  I* V. l; C0 Y
  1. ) ]0 z  T1 B0 N! p6 `5 U4 }
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    * s' e* |5 i* C; s/ F, z
  3. {/ U" {) A- D2 ^' J& ?
  4.         int errorCode = 0;# P' l+ ]* v; E* g8 }! \8 G
  5.         try
    / E  h$ T- q3 x  Z; A( r
  6.         {  W6 R; X* u7 e7 D& i& f
  7.                 // createProject curves2 s$ @4 d: w" U
  8. " a5 S1 ?7 V; q6 l
  9.                 Features::Feature *nullFeatures_Feature(NULL);3 ^$ J; M" N4 v# O* j/ ]

  10. 6 M& r6 k, [( @. E0 W
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    # J+ v" b! ?; I3 o

  12. * A+ k5 L( C/ h' O# z- ^
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);1 m) e' ^) i0 ~  O7 l( L' S0 x
  14. 9 N  B' f5 F$ g5 |. _0 _) ?
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);
    - B5 h3 y% ~( v

  16. # [" T9 |" I; ~! y' V4 z
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    ) H+ ]. l' ^: C* H9 a1 J

  18. ; \  h1 ?, X" U- ]( w: h
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);3 \, K# N* _1 r/ _9 l+ m6 d& v( s
  20. / ^) a* K: v/ m3 M" C( u
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    ; T. K5 U) |8 I0 A* W6 E* c
  22. ) F/ @2 k/ `! E2 `0 r, B: s7 g
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);: s+ B5 J- n1 B

  24. ' X6 _" |$ W! Y3 N5 s5 Z' |
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
    - i, o7 n7 W1 v( ~9 @

  26. # a8 n# e2 ^5 u: @4 ~
  27.                 int size = (int)inputObjects.size();
    0 H; `+ S" X, v* f) U, _6 {6 y0 N
  28.                 std::vector<IBaseCurve *> curves1;9 L: a8 m$ _( G7 r" Y( y
  29.                 for (int ii = 0 ; ii < size; ++ii)
    # F6 K( p  \! q
  30.                 {
    7 a2 I& m2 B# s; r+ C9 {; W
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));
    4 U) ?5 ~$ q2 m. y  K
  32.                 }2 D4 `: o* S+ i; M( r

  33. 2 c  q" K( B/ J
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;
    / W; g  U4 D* b3 P6 N9 p
  35. ; x  f- Z. I* H% i
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    * q" J2 s1 b# n

  37. # o' I9 U' r: x$ W5 \' w2 D
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    2 P' W* [$ w; h: m  w

  39. + G" L5 k. Z) F' m& X8 q
  40.                 std::vector<SelectionIntentRule *> rules1(1);1 x# [8 i7 o8 m+ U# B
  41.                 rules1[0] = curveDumbRule1;
    # [/ L% Q9 b& n
  42.                 NXObject *nullNXObject(NULL);
    5 c* L2 W+ h+ Y# ]  v
  43.                 Point3d helpPoint1(0, 0, 0);
    ) U) K! S9 ~9 K) U8 n1 A
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);% }& }; |6 w- S, e$ o

  45. : P' v% D4 c' ?% P3 W
  46.                 plane1->Evaluate();  O3 G, w# o+ F6 u

  47. " b9 c$ p! Q1 @- x4 `
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    6 \5 E; Z, j/ ^% j. M! [. j
  49. 8 S7 O0 Z, j8 t0 X. R) N; B, D5 A
  50.                 projectCurveBuilder1->SetGapOption(true);* V% ^. H+ h$ W, O( |

  51. 4 G; K/ P9 ~. ~, r
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    " W- B, ?6 Y& e
  53. & b  Z3 ?- N1 _
  54.                 NXObject *nXObject1;* {9 [' `+ n- \" r( y
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    ' J; _% ~0 u6 j- P

  56. 4 n1 w) t$ K' a" Q
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();. B5 e' L* O5 q; W- o. ]

  58. 0 _; s1 _) ]0 F' W
  59.                 projectCurveBuilder1->Destroy();* Y: s4 R& Z/ q7 }# [3 G

  60. + a4 E+ J6 e% n8 m
  61.         }( r* Q9 o( T1 D( b4 S' i
  62.         catch(exception& ex)* {- R; ~- o: I: q
  63.         {1 r( f( R% U$ j; o! ]- \9 l
  64.                 //---- Enter your exception handling code here -----
    ! Q- y# `5 W1 Q. ^# L" f
  65.                 errorCode = 1;
    , j+ A' ]4 U0 o* B5 I6 u' d
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());7 b, {7 X" p0 g- q% g+ K' J0 V
  67.         }
    0 j: y4 D; I9 q- T9 W9 u
  68.   m+ R+ b2 \, E- n/ e
  69.         return errorCode;
    ; S1 O9 w+ Y  E7 H7 G6 h
  70. }
    : i" t/ K% s- H8 h
复制代码
8 U, o. H& W0 w% w) ?/ o% j6 C

) w! k+ t: S3 N- B' A$ C
  _% e9 t" I% C% 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二次开发专题模块培训报名开始啦

    我知道了