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

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

PLM之家NX 楼主

2014-5-5 22:45:05

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

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

x
% @/ ]* d: K7 ~1 ^

% O* ^7 |$ ^5 G2 R( c
) w% [. L1 L& `: r: HUG NX二次开发源码分享: NX Open C++ 创建投影曲线 project curves
  [$ K" V: O. s/ o
& Z% u$ V, j# }# z" s( w) Q$ l此处使用的是 通过面的法向创建投影曲线,可以参考下!
2 K6 l* T3 v. I1 I- E1 G% F( w8 m' L' q% h6 G
8 t3 H4 m/ z) d( C  z- W

0 b5 S7 i5 N8 f- u9 {" T9 C# B- T0 J9 K
' B( T- C; q, x7 `% O: P! T" s

1 g9 [: l$ l3 ]
5 s0 S9 Y) \- M/ `

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

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

7 Y& f6 ?( L: X* h4 D% C; ]! x. r% T3 r1 W( M

9 B9 k% Q0 C* T4 B+ Q% @7 F

  1. 6 i" q0 T* v: k
  2. int trimSteels::project_curves(vector<TaggedObject *>inputObjects,Plane *plane1)
    & e7 Q4 a# J5 q" v
  3. {
    ' i4 C* W$ N6 `+ S6 f, c. C
  4.         int errorCode = 0;& a! E) p9 d6 Z: ~2 n
  5.         try$ B  P. p& n7 M
  6.         {
    3 V) Q: i. Y  }- c$ r% G
  7.                 // createProject curves
    / y% L/ ~& M6 m4 Y7 Z
  8. - E: c: m. L* K, z: D6 w
  9.                 Features::Feature *nullFeatures_Feature(NULL);5 u* p! r+ |) c4 ]2 F* L+ ^
  10. . H1 ?& B; j1 J
  11.                 Features::ProjecTCurveBuilder *projectCurveBuilder1;
    # C4 t/ G. g& s, C+ {5 z, n+ }- s

  12. 3 o- s9 L: y) ~) o3 F
  13.                 projectCurveBuilder1 = workPart->Features()->CreateProjectCurveBuilder(nullFeatures_Feature);# `: V. h. W' ^1 V5 B+ m$ L! |0 p

  14.   ^- w- u5 p+ I5 V- t# U% ]* J, J6 N
  15.                 projectCurveBuilder1->SectionToProject()->SetDistanceTolerance(DISTANCETOLERANCE);& \# @: E2 e* Z5 |
  16. + n" n2 F2 f' J1 T; }9 X7 a
  17.                 projectCurveBuilder1->SectionToProject()->SetChainingTolerance(CHAININGTOLERANCE);7 Y- @& f' f( C& y  W7 |3 |

  18. 9 t2 v/ W8 t$ Q" i
  19.                 projectCurveBuilder1->SectionToProject()->SetAngleTolerance(ANGLETOLERANCE);
    4 G4 S) I, o; c( B3 y0 b
  20. 6 z( V' K! s1 K0 x, @! k; z. e, U( s
  21.                 projectCurveBuilder1->SectionToProject()->SetAllowedEntityTypes(Section::AllowTypesOnlyCurves);
    4 H7 N# v4 w& F6 X! j2 b$ q0 T3 [
  22. ' K; Z6 s: u9 {7 v+ D- v" m, ~
  23.                 projectCurveBuilder1->CurveFitData()->SetTolerance(DISTANCETOLERANCE);2 A- E* f: P  w: Y! x

  24. : }, f, G$ p' g* Z
  25.                 projectCurveBuilder1->CurveFitData()->SetAngleTolerance(ANGLETOLERANCE);! g& A& Z6 @2 x5 p; J" x8 k
  26. + h1 p/ B6 d. v& v; S; g
  27.                 int size = (int)inputObjects.size();2 ?6 w, F! H8 T5 e2 {
  28.                 std::vector<IBaseCurve *> curves1;
    6 Z. o. Y. e( \& s" f2 @7 k
  29.                 for (int ii = 0 ; ii < size; ++ii)0 t* [9 E* `: _1 q! c
  30.                 {
    5 B( G3 I& M# e! ~' ~
  31.                         curves1.push_back(dynamic_cast<IBaseCurve*>(inputObjects[ii]));: z( q1 A7 b" Y3 Y2 E
  32.                 }" D" a1 [, Z+ X1 ~/ C% @! ?; R" n
  33. ' Z" R) {. A! q  G
  34.                 NXOpen::CurveDumbRule *curveDumbRule1;& L$ X0 N# ^: Q; A' I0 Z, Z
  35. * K, v6 L+ t( z
  36.                 curveDumbRule1 = workPart->ScRuleFactory()->CreateRuleBaseCurveDumb(curves1);
    ; O+ e# N+ y& X  j' U/ I2 j
  37. 9 g+ E/ `4 V: S* p( X" e: x# }
  38.                 projectCurveBuilder1->SectionToProject()->AllowSelfIntersection(true);
    . O! g) e; o1 E2 N4 W) F
  39. 9 D( l3 F' d/ t1 \
  40.                 std::vector<SelectionIntentRule *> rules1(1);- [4 Y1 Z3 y1 l3 q: z) h0 u
  41.                 rules1[0] = curveDumbRule1;4 }/ V4 z6 o6 o8 P0 |
  42.                 NXObject *nullNXObject(NULL);
    . g; y& ~' W; G1 M) P! m
  43.                 Point3d helpPoint1(0, 0, 0);
    ) U6 S6 q5 R  J: n- S  z
  44.                 projectCurveBuilder1->SectionToProject()->AddToSection(rules1, nullNXObject, nullNXObject, nullNXObject, helpPoint1, Section::ModeCreate, false);
    6 R, j) O+ `% u

  45. 0 J$ i& u. q8 I
  46.                 plane1->Evaluate();4 B! G+ h# F# Z6 K

  47. % t4 C& N) e# b% R/ R6 J1 L
  48.                 projectCurveBuilder1->SetPlaneToProjectTo(plane1);
    ; C( T5 V/ o" L% f9 l6 A

  49. 0 B6 y6 w+ a: {% \6 G
  50.                 projectCurveBuilder1->SetGapOption(true);# v0 O% H$ E5 N$ t& C5 I- w, z/ p
  51. & F6 \4 C9 C- }# D+ c
  52.                 projectCurveBuilder1->CurveFitData()->SetCurveJoinMethod(GeometricUtilities::CurveFitData::JoinGeneral);
    1 B) |- C+ a' y5 v4 c+ X1 X
  53. $ v9 S! l, D  x1 V8 h
  54.                 NXObject *nXObject1;1 v. P! J7 I# @  x
  55.                 nXObject1 = projectCurveBuilder1->Commit();
    5 b+ y4 W) n& n% Z  U' q6 o! X
  56. % E; q, X# s, ]) n3 y: i8 Z! a% \1 {
  57.                 projectCurveBuilder1->SectionToProject()->CleanMappingData();$ v9 U0 s% j( R9 B+ t; `1 N
  58. 1 h. c9 p! q. ?
  59.                 projectCurveBuilder1->Destroy();
    0 p( ^; N' N' ~; C" f

  60. + }% X: D4 r  f& R8 ?5 @; \
  61.         }
    4 U/ m/ t/ C4 R9 J/ g  A6 C9 q8 d
  62.         catch(exception& ex)8 I& n4 p# V6 u+ y1 B. }
  63.         {
    . Z; _: ]5 V3 S
  64.                 //---- Enter your exception handling code here -----0 j- ]- U% R4 x  n. e
  65.                 errorCode = 1;( g5 j8 B! n( t8 V: m
  66.                 trimSteels::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    + ^7 w# F2 i9 c! O3 q+ h
  67.         }
    . H, A' Q7 I/ {8 k% _

  68. 2 O: p% d( V% _/ u" y% E5 C( u3 U
  69.         return errorCode;. k( Y5 _2 x2 S
  70. }$ e& `3 v, {+ a" v4 h% ]
复制代码
) F1 k5 H: x; ~, B. o3 w/ `  Z

$ Q; v5 U4 ~+ }' j' P& D0 s
6 f9 T" W7 D2 h# L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了