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

[二次开发源码] NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码

[复制链接]

2013-11-27 15:21:12 2937 0

admin 发表于 2013-11-27 15:21:12 |阅读模式

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码; o1 A, c8 I: o" P0 j" {+ \1 i

$ I3 l# }" V5 J" X# `
  1. <p>static void do_UGopenapi()
    : i) f- \1 g& j) H- Y
  2. {) y! n8 J5 m1 J% L+ L
  3. /*- r) L, k' I7 {6 @1 `; n
  4. Create Curve# O2 Z0 {" V# N  J" O
  5. */
    + Q  z, H2 S, v! o/ n6 m
  6. // create line4 O; [# }  \" h0 O' u& T, L; U  C. Q
  7. UF_CURVE_line_t line_coords;
    & J5 R& E, N; ^- ]
  8. tag_t line;, M* j2 y0 P0 j
  9. line_coords.start_point[0]=0;
    % {+ n, [! g  B
  10. line_coords.start_point[1]=0;8 M9 X" X& Q' Q/ t9 y
  11. line_coords.start_point[2]=0;
      f8 n8 M" ]5 p7 u, l
  12. line_coords.end_point[0]=100;- H- {- ?( r/ b$ L+ T
  13. line_coords.end_point[1]=100;. x/ y* e1 r) ?8 ~1 ^  r: Q
  14. line_coords.end_point[2]=100;2 }' f" }3 b! R* L1 c* Y4 T3 U
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    - y- a" n" M7 F! N
  16. UF_CURVE_arc_t arc_coords;) \9 f9 Q8 V, \+ O, @
  17. tag_t arc,marix,wcs;* S4 F  G6 M; x0 U$ m4 ~
  18. UF_CSYS_ask_wcs(&wcs);& P2 j* }6 ~2 o
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    * G* ~9 ~8 I& R- n" R
  20. arc_coords.arc_center[0]=0;
    , \% n: [% I8 @5 ?3 P
  21. arc_coords.arc_center[1]=0;
    - s$ c- v8 s  I: H- W& n" C1 i
  22. arc_coords.arc_center[2]=0;, {0 c+ t/ K5 d7 i* u
  23. arc_coords.start_angle=90*DEGRA;9 x# y8 I5 h  r# f
  24. arc_coords.end_angle=270*DEGRA;: V: s. {  t: K' l
  25. arc_coords.radius=100;
    # h) M+ P, R) W4 R
  26. arc_coords.matrix_tag=marix;
    , V1 }8 o+ d  H4 m7 Q
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    ! C6 C  Y0 {- B0 S! B, c
  28. // create point % ]5 L, i$ _% {& _3 `' ]5 G
  29. double point_coords[3]={100,100,100};, e1 P5 i  M: p2 X+ o
  30. tag_t point;
    9 l( G8 F8 _5 g
  31. UF_CURVE_create_point(point_coords,&point);$ M% M' \- e) ]' v* @( S
  32. 2 X, c  y1 L' {9 y3 A9 f0 G
  33. // create Plane
    ( |& B( H2 @. G
  34. double    origin_point[3]={100,100,100};, [" A( x6 f$ |# a) g
  35. double    plane_normal[3]={1,0,0};* h0 h# j5 N/ q7 ?: D* P" h
  36. tag_t     plane_tag;    7 ^- k1 K+ a( ]+ O# \% Z4 A
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    ! b- B" a8 V' i2 `
  38. Get the curve information
    & Z! g) g4 ~. ~
  39.   */
    ) G/ j/ U: |, {3 ]- e
  40. UF_UI_open_listing_window();
      _& `6 u6 c, [
  41. char msg[132];. p# w3 [2 I4 q/ D( H: z8 q+ t
  42. // get line information$ A( @) y# C: f1 N: L
  43. UF_CURVE_line_t line_info;
    . T3 i' M8 \& i& ?' y% F! y
  44. UF_CURVE_ask_line_data(line,&line_info);! Q* ^4 U0 T7 s/ U- a# Y
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    3 E7 m6 J" c. F" ^
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    ; s! }! z. G% T3 I
  47.   line_info.end_point[2]);6 T" Y8 W$ \0 ]' {
  48. UF_UI_write_listing_window(msg);9 v! g8 r3 F% r$ a0 [9 w4 N4 g, b
  49. //get the point information2 J5 v/ R% C# a- [- K1 x. W
  50. double point_info[3];
    , F/ B: V8 B  n$ I- ]( H- V
  51. UF_CURVE_ask_point_data(point,point_info);, E: ~! C. x8 s! ~1 a
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);! m* M- ]4 s4 `; W8 m* M9 ?
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    " k/ C( O4 P7 ^- ~
  54. UF_CURVE_arc_t arc_info;
    2 a5 U: k6 b5 {% [1 z
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    $ W$ j! R6 E! i0 S
  56. sprintf(msg,"\nArc Center coords:\n\t%lf,%lf,%lf;\nArc start Angle:\n\t%lf;\nArc End Angle:\n\t%lf;\nArc Radius:\n\t%lf;",
    ) L) }% U* k: @7 l6 Q: U
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    6 A5 \4 l! I5 k( h$ H% D
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius3 M3 {& E+ m/ X$ S, C. d
  59.   );
    ! B. s! s) k1 s' i0 j% H
  60. UF_UI_write_listing_window(msg);: W/ T3 N% R+ }' W: O  \, C1 s
  61. // calculate the arc length! Z# M3 Y1 T, A
  62. double arc_length;1 i2 K7 I8 ]9 K( R9 `6 J( r
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    / Z! ]! U$ {# a
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);" n7 z5 |0 M9 b% B# h; ^" X
  65. UF_UI_write_listing_window(msg);: `8 A$ n4 `7 X" \# ?9 I4 ^* q
  66. }
    9 k5 e: q4 y4 b6 a- G, }- T
  67. </p><p> </p>
复制代码
% j8 v( Q' B  N  K" O9 l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了