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

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

  [复制链接]

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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
3 _9 S3 q. c4 [1 G/ a
$ Q; p# D7 J; [, a& j

  x( j6 x5 X  m- F  yUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves/ O4 {8 u# @6 W: |; }
/ a) y* i2 e1 U
此处使用的是 通过面的法向创建投影曲线,可以参考下!6 h/ G1 B! H0 Z7 o
$ \- [6 j4 l- r

& @' D4 _6 n( W- U0 ~! F  F$ J/ Y% a9 D; {% M. v
8 u; ~& G; l( ~) _4 b

1 t8 c2 @2 W* p4 N# H
! ^, b+ P& n2 C/ P! k# F. \( Q; N

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

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

! _- m4 T% h: m1 ^
* _8 h! V9 L/ d9 R0 \0 R5 L% N' _, m1 D

  1. 0 {, n& G8 q  r8 `
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    9 M2 F, F! B7 Y, e, i4 T2 i
  3. {
    & L4 s0 v: b9 f* o) ^% b! j
  4.         int errorCode = 0;1 R  e- a/ F8 _9 C! N
  5.         try
    4 N. S; p# O* d5 M2 R- V
  6.         {( y0 x* V4 u9 s& n; Y7 a
  7.                 // createProject curves1 j8 s5 H5 N" _% F" p8 V" Y

  8. + Y" v- A& U/ ^! X
  9.                 Features::Feature *nullFeatures_Feature(NULL);* B" J, n9 T* t/ N, L! q2 ?

  10. 4 d# Z9 L0 k4 g3 S( ?
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;5 j6 Z* P0 j) i; R

  12. 8 A' o$ a& f1 s$ X
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);+ q" c$ F  p8 E

  14. ; z- H, x* _5 O. w
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);6 }, T$ W7 U! g

  16. : `- W0 q% x- y( z3 p+ ~# T: l/ i# i
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);
    % B7 }# u* H, k
  18. ) S" _- s9 O5 H, T* Z
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);# F: w8 C7 V0 T1 J. `5 ^
  20. * q4 s( n' w1 v% X* z6 o
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);. V: T# h/ V* w- q5 ~
  22.   [8 N5 X* @6 s! g
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);
    1 G8 t  I& L0 v1 l0 T
  24. $ M; |  ^/ G$ X# C: T; J# u1 ~& ?
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);
    % {' J: r, o. @9 ~3 Z
  26. * j* m! d* g. t
  27.                 int size = (int)inputObjects.size();5 [' l4 i" b4 s
  28.                 std::vector<IBaseCurve *> curves1;% c' e4 C5 r6 l/ b$ S
  29.                 for (int ii = 0 ; ii < size; ++ii)) _2 z8 c& _$ v  s' X: P
  30.                 {* K; c# Y. o$ Z5 o: o
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));' s: G  ?1 ]  {" v" D; s- `7 V
  32.                 }
    # B* A( z) b* m: T: I

  33. # J7 V9 _/ j5 x7 q: P8 j% K" M
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;; r, Y. T; @# W1 z5 W7 }
  35. * _+ q' Q7 V, S$ n) e
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);0 L- y/ v) E$ b; i8 C3 e

  37. 7 J' D4 o& k( M6 D, a
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);3 N2 @+ h0 _, D9 h3 G; }) x

  39. . \: W" A, w$ O/ s+ M
  40.                 std::vector<SelectionIntentRule *> rules1(1);1 L, H( Q5 u% k
  41.                 rules1[0] = curveDumbRule1;: E& I; X) T& [" ~
  42.                 NXObject *nullNXObject(NULL);8 \6 m* d, G& ]; b% H! D0 M
  43.                 Point3d helpPoint1(0, 0, 0);
    * N' N9 C' x' M/ O
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);& n2 p( H" v! M* x" j) L6 s

  45. 5 c3 ]) U2 |* e4 m- r. |# ^" u
  46.                 plane1->Evaluate();) S$ W# O& n& E4 j9 S: o) ^; D

  47. 4 W0 x! @, I$ `/ X/ U) r, j
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    7 j2 u6 ?4 j' K4 E% d" }2 Y3 a

  49. : V$ g, {4 V+ p" C( z
  50.                 projectCurveBuilder1->SetGapOption(true);
    ; G9 m4 k2 X$ K' T: D& E
  51. ( ]5 S& G0 x3 p2 L
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);5 g$ y+ [1 U- v9 `# g. K5 }) K
  53. 8 X5 S9 P1 S' k  I, H
  54.                 NXObject *nXObject1;. c, K' R' V+ h6 S
  55.                 nXObject1 = projectCurveBuilder1->Commit();+ i! {+ i: l% g# w
  56. 2 h* W/ ]+ n: v7 t
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();! A$ n: b8 `0 F9 ^  J( \& V! a

  58. * S& K7 _2 H: R3 {/ }" ]4 s
  59.                 projectCurveBuilder1->Destroy();
    $ x/ A4 t8 h. \" ]4 S" v

  60. 9 R' B! ]' s* u9 H8 }
  61.         }4 X, k% K% b# m+ Y; i8 @, Q9 t
  62.         catch(exception& ex)  h% V8 W. B2 P  g
  63.         {
    , K9 j$ G* Y; r% Q7 O+ y
  64.                 //---- Enter your exception handling code here -----/ R" i6 R! o- F6 n, o! ^
  65.                 errorCode = 1;3 @# l, c$ j8 i
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());  g$ O# }+ x0 y
  67.         }
    2 [) @# Y) f4 B/ R2 X
  68. - a' |/ [  _! h5 H5 w
  69.         return errorCode;
    ( i& X" z& ^, G/ `- `! `
  70. }
    ) i. o( o; P2 R% o& b3 X" _% m
复制代码

" g8 |4 c; D7 r9 k; [; t- H& w* l9 w  v3 C. n+ m) y0 I/ ~

0 L# i2 q1 D8 [5 l8 X0 W* n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了