PLM之家PLMHome-工业软件践行者

[二次开发源码] 【NX二次开发源码分享】通过弦长,角度 公差创建曲线上点

[复制链接]

2015-4-28 13:17:38 3914 0

admin 发表于 2015-4-28 13:17:38 |阅读模式

admin 楼主

2015-4-28 13:17:38

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

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

x
: {- y$ g; i, i6 k: A
可能大家用的到,选择一条曲线,通过输入的公差,自动创建一些列的点集!5 O4 c6 A& w( K0 O- D
* k+ f- R! l! j5 J( t* ^

# ]' U/ \: W* Dvoid testSimulation::do_it()
* H6 y" Y6 j7 T( L# |+ K{0 V. n5 Y& D7 b& P' U! l
         //TaggedObject* toolbody = select_by_mask();
+ }( N) k5 j+ N  E7 w2 Q        TaggedObject* pathCurve = select_by_type();- z3 H" T" `" [6 y8 \  C
        //std::vector< NXOpen::TaggedObject * > any_objs = select_any_objects();/ V* [- g! a1 ^$ `0 h3 `' o
        // get the path point
- h1 ?# `- @; d/ }' Z, `6 j& E! Y( F        double ctol = 0.0;
* J/ g, t) _3 \    double atol = 0.0;( y, A9 @2 t3 }4 W( y) Q6 R( i
        double stol = 10.0;
  O0 q4 d% V  y         double *pts;
: \! G( v0 H3 U' x( F         int num =0;
. s  L8 S9 Q: ]( a3 Y8 W         char msg[256];/ @& [. b' P9 M9 ^: f- n7 s% r
         int error =0;* Q8 M# |0 E- Y: w0 \4 T
         double (*points)[3];# u7 V, ?5 w2 P. X
         tag_t pointTag;
  ?+ ~/ }  o& N        7 v" `9 `* _2 ~' y4 L

& W0 {2 f4 Z+ B        UF_initialize();/ ~2 s. U4 n; h* h; U! s# F! {4 F

: X# _$ z$ ^$ j' V/ F' u        UF_MODL_ask_curve_points(pathCurve->Tag(),ctol,atol,stol,&num,&pts);  L/ D' z+ p1 V; M  {3 x
        sprintf(msg,"the number of points:%d",num);
5 }" U3 X% l+ `# _9 X        print(msg);
( w3 c5 o* t% N- I+ O( o
7 o0 G4 g- X2 _1 ^        points = (double(*)[3])(UF_allocate_memory(num*sizeof(double[3]),&error));. }9 V+ i- q- F6 V8 p# L

% U; h9 ~5 `% K        for(int i =0 ; i < 3*num;++i)5 Y! X1 p1 p' I, J3 [
        {
! _* S$ i! a5 U$ G                sprintf(msg,"The points are: %f\n",pts[i]);
+ R3 [( V, Z$ a: J7 o                print(msg);: C2 a8 P' x/ H* p/ _% g
                ) @' [8 j; h; d+ ]7 H8 Y
        }
/ r- h" q  _$ u* B: L. }# ~        for (int j = 0; j < num; j++)( O, G# t3 E: \* `8 |. B. ^- A
        {9 U! B# |4 u* w
                points[j][0] = pts[j*3];. w! G/ f/ d8 H9 U4 ]/ N
                points[j][1] = pts[j*3+1];
; P0 t. n2 {6 b7 F; d: F. a- ~  k( ~                points[j][2] = pts[j*3+2];( ?6 a9 h, `! T) c4 ?- h0 u
                UF_CURVE_create_point(points[j],&pointTag);
& o9 O" [. o* g  }# D7 e+ i, m        }
7 U, e4 _% o9 g1 t9 Z; f3 u' Q# v( u" K- B
        UF_free(points);1 ]* Z1 `% e/ [$ r1 d
        UF_free(pts);
5 ?' C, L$ F8 S" H: E/ U7 Z. u        UF_terminate();8 S% @; C) T! I& @; T. Y( v5 a
/ ?* ^* L  h6 y2 W
        // TODO: add your code here
. o' \' d3 }' A6 g& n) Y1 {* k, B' x        / d3 k  J" d, G
}; @6 B" ]) }# k% l; G- g2 C! H

0 J6 ^+ s- v+ R; F6 o- I
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了