iCAx开思网

标题: UG 二次开发 标注 选择问题 [打印本页]

作者: olympic    时间: 2010-2-6 01:37
标题: UG 二次开发 标注 选择问题
我想写个程序.出UG的孔位表 .
只想出我选择的.UG 里有个命令,可以出全部的,但不适合
现在的问题是.假如,我想标注两条边之间的距离尺寸,我要手动选择的话,
用UG open c , 我无论如何都不能选择.肯定是我函数用错了.
目前我用的形式如下:
  1. tatic int init_proc_curve(UF_UI_selection_p_t select, void* user_data)
  2. {
  3. int num_triples = 5;
  4. UF_UI_mask_t mask_triples[] =
  5. {
  6. UF_line_type, 0, 0,
  7. UF_circle_type, 0, 0,
  8. UF_conic_type, 0, 0,
  9. UF_spline_type, 0, 0,
  10. UF_solid_type, 0, UF_UI_SEL_FEATURE_ANY_EDGE
  11. };
  12. // enable only solid body
  13. UF_UI_set_sel_mask(
  14. select,
  15. UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
  16. num_triples,
  17. mask_triples
  18. );
  19. return (UF_UI_SEL_SUCCESS);
  20. }

  21. int select_draft(tag_t select[], int *body_no)
  22. {
  23. char cue[] = "选择所有曲线";
  24. char title[] = "选择所有曲线";
  25. int response, count, i;
  26. tag_p_t objects;
  27. UF_UI_select_with_class_dialog(cue,title,UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY,init_proc_curve,NULL,&response,&count,&objects);

  28. if (count > 0 && count < 100) //write out info & turn off highlight
  29. {
  30. *body_no = count;
  31. for(i = 0; i < count; i++)
  32. select = objects;
  33. response = 100;
  34. }
  35. if (count > 0)
  36. for(i = 0; i < count; i++)
  37. UF_DISP_set_highlight(objects, 0);
  38. UF_free(objects);
  39. return response;
  40. }
复制代码

本帖最后由 olympic 于 2010-2-6 01:39 编辑
作者: ssy871120    时间: 2012-11-12 17:08
在选择函数前加UF_UI_set_cursor_view()




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3