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

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

[复制链接]

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

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

admin 楼主

2015-4-28 13:17:38

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

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

x
9 U6 ?4 ]0 H+ a4 \. e
可能大家用的到,选择一条曲线,通过输入的公差,自动创建一些列的点集!
* ?# p) [6 C& `; ]/ X1 H0 m
! v: I" l4 \1 G6 ^3 d! F" |" u$ A+ M) Q; Y( Z; H
void testSimulation::do_it()
; ], e& A! _2 h5 I9 X{" S3 W! a' i0 n) z9 ]) ^- @/ r
         //TaggedObject* toolbody = select_by_mask();
( F. Y7 C' \5 \, b+ H        TaggedObject* pathCurve = select_by_type();
$ G4 ?1 A/ {) t7 [  `/ N6 c: b        //std::vector< NXOpen::TaggedObject * > any_objs = select_any_objects();
0 e& z  ?- o/ x( L        // get the path point
' {4 g/ h; q. U% y0 M( ~        double ctol = 0.0;
) A! d7 `" s) f9 q7 X3 ?    double atol = 0.0;
: B, ]3 X) i* ]) T        double stol = 10.0;; K3 e3 L7 M& S2 ]8 M
         double *pts;0 _1 g' l/ l& s* R
         int num =0;# X$ s7 M/ y& h( P0 p3 `8 ^9 [
         char msg[256];" x# Q$ J; ]8 q
         int error =0;1 E% D- E4 z4 |1 C+ Z  b
         double (*points)[3];
# R# J4 w) T( |5 P! S         tag_t pointTag;3 }+ t2 Y0 Q% f
       
8 B7 U  L! g5 D3 m. _; i
; {9 X9 l* N5 H" y        UF_initialize();; k% l9 L3 Z/ b; \

& e: _5 C8 J; }        UF_MODL_ask_curve_points(pathCurve->Tag(),ctol,atol,stol,&num,&pts);* K5 K+ k, c0 P. g) S4 k
        sprintf(msg,"the number of points:%d",num);
0 b- A( j( ^6 f  |8 E        print(msg);
0 ~+ ?! D- K- B+ }! Z3 P6 n8 j% x  o" w  ]; K
        points = (double(*)[3])(UF_allocate_memory(num*sizeof(double[3]),&error));
- F1 b7 T+ G; u2 @7 c2 }# r  }* [/ b  Z& g3 g0 t7 [
        for(int i =0 ; i < 3*num;++i)9 T" a6 i2 k! O4 a4 `
        {
+ f9 a9 Q  ?9 {& v+ ^( q9 L4 v                sprintf(msg,"The points are: %f\n",pts[i]);; o' ^' S. h) q' M# Z& E4 P
                print(msg);
7 l% I2 l' E( a6 f) p                0 S& _# P: m2 A
        }; ~- n* H' e" W3 P4 z7 l( r3 I- l! c
        for (int j = 0; j < num; j++)$ k0 y+ I+ d/ l& Y/ C& F5 _
        {
6 t$ K, Z& M: e6 m                points[j][0] = pts[j*3];
2 K. h- I# L; Y7 ~" J                points[j][1] = pts[j*3+1];
  h+ p* y% g& ]6 L                points[j][2] = pts[j*3+2];
* V- I0 K# V( U* H$ y9 g  `) j/ \                UF_CURVE_create_point(points[j],&pointTag);
0 }0 W. |( T( H6 D, B) I5 K; K        }7 j) H+ X7 \: D0 ^/ r5 t

8 j6 ]+ ~- N0 X: O8 l+ K/ V        UF_free(points);6 M/ W5 ?9 \3 S9 p
        UF_free(pts);
9 m3 ?; _. i- p        UF_terminate();
1 _6 F# e, c+ L5 o0 U8 V- ]5 J& w2 @
        // TODO: add your code here( U+ k* k2 O; P3 E, c1 U
       
5 L9 ^0 q1 ~7 [* w" e3 z0 N+ j% C}: ]% W! ^* J( R; q
6 h  m) c0 P* V+ k) Y( U8 ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了