Исходник для Unigraphics NX Рисование линий и коробок в среде Unigraphics


Добавил:DMT
Дата создания:5 апреля 2008, 22:19
Дата обновления:5 апреля 2008, 22:25
Просмотров:4197 последний сегодня, 0:48
Комментариев: 0

Рисование линий и коробок в среде Unigraphics

Рисование линий и коробок в среде Unigraphics
Код на C++
  1. tag_t ctreate_line(double *p1, double *p2,long color){
  2. UF_CURVE_line_t line_coords;
  3. line_coords.start_point[0]=p1[0];
  4. line_coords.start_point[1]=p1[1];
  5. line_coords.start_point[2]=p1[2];
  6. line_coords.end_point[0]=p2[0];
  7. line_coords.end_point[1]=p2[1];
  8. line_coords.end_point[2]=p2[2];
  9. tag_t line_tag;
  10. UF_CURVE_create_line(&line_coords,&line_tag);
  11. UF_OBJ_set_color(line_tag,color);
  12. return (line_tag);
  13. }
  14.  
  15. void Draw_box(double *box,int color,tag_t *box_id){
  16. box_id[0]=ctreate_line(box, &box[3* 1],color);
  17. box_id[1]=ctreate_line(box, &box[3* 2],color);
  18. box_id[2]=ctreate_line(box, &box[3* 3],color);
  19.  
  20. box_id[3]=ctreate_line(&box[12], &box[3* 5],color);
  21. box_id[4]=ctreate_line(&box[12], &box[3* 6],color);
  22. box_id[5]=ctreate_line(&box[12], &box[3* 7],color);
  23. }
  24. void Draw_box_not_rettag(double *box,int color){
  25. ctreate_line(&box[0], &box[3* 1],color);
  26. ctreate_line(&box[0], &box[3* 2],color);
  27. ctreate_line(&box[0], &box[3* 3],color);
  28. ctreate_line(&box[12], &box[3* 5],color);
  29. ctreate_line(&box[12], &box[3* 6],color);
  30. ctreate_line(&box[12], &box[3* 7],color);
  31. }
  32.  
  33. // Рисование пустой коробки по 2м точкам ( минимальной и максимальной )
  34. void draw_box(double *box){
  35. UF_CURVE_line_t lc; //
  36. tag_t lt; //
  37. tag_t pset;
  38.  
  39. lc.start_point[0] = box[0];
  40. lc.start_point[1] = box[1];
  41. lc.start_point[2] = box[2];
  42. lc.end_point[0] = box[3];
  43. lc.end_point[1] = box[1];
  44. lc.end_point[2] = box[2];
  45. UF_CURVE_create_line(&lc,&lt);
  46.  
  47. lc.start_point[0] = box[0];
  48. lc.start_point[1] = box[1];
  49. lc.start_point[2] = box[2];
  50. lc.end_point[0] = box[0];
  51. lc.end_point[1] = box[4];
  52. lc.end_point[2] = box[2];
  53. UF_CURVE_create_line(&lc,&lt);
  54.  
  55.  
  56. lc.start_point[0] = box[0];
  57. lc.start_point[1] = box[1];
  58. lc.start_point[2] = box[2];
  59. lc.end_point[0] = box[0];
  60. lc.end_point[1] = box[1];//
  61. lc.end_point[2] = box[5];
  62. UF_CURVE_create_line(&lc,&lt);
  63.  
  64. lc.start_point[0] = box[3];
  65. lc.start_point[1] = box[4];
  66. lc.start_point[2] = box[5];
  67. lc.end_point[0] = box[0];
  68. lc.end_point[1] = box[4];
  69. lc.end_point[2] = box[5]; //
  70. UF_CURVE_create_line(&lc,&lt);
  71.  
  72.  
  73. lc.start_point[0] = box[3];
  74. lc.start_point[1] = box[4];
  75. lc.start_point[2] = box[5];
  76. lc.end_point[0] = box[3];
  77. lc.end_point[1] = box[1];
  78. lc.end_point[2] = box[5]; //
  79. UF_CURVE_create_line(&lc,&lt);
  80.  
  81. lc.start_point[0] = box[3];
  82. lc.start_point[1] = box[4];
  83. lc.start_point[2] = box[5];
  84. lc.end_point[0] = box[3];
  85. lc.end_point[1] = box[4];
  86. lc.end_point[2] = box[2]; //
  87. UF_CURVE_create_line(&lc,&lt);
  88.  
  89. //--------------------------------------------
  90.  
  91. UF_CURVE_create_point(&box[3], &pset);
  92. UF_CURVE_create_point(&box[0], &pset);
  93. }
При использовании обязательна ссылка на http://DMTSoft.ru
up