iCAx开思工具箱

标题: api如何求对象最大外形尺寸------我这代码 怎么测的很不准啊 [打印本页]

作者: 63455    时间: 2012-4-14 11:26
标题: api如何求对象最大外形尺寸------我这代码 怎么测的很不准啊
api如何求对象最大外形尺寸------我这代码 怎么测的很不准啊
char *message="请选择对象:";
  char *title="请选择对象:";
  int  scope=UF_UI_SEL_SCOPE_NO_CHANGE;
  int  response;
  tag_t object_tag;
  double  cursor[3];
  tag_t view;
  UF_UI_select_with_single_dialog(message,title,scope,NULL,NULL,&response,&object_tag,cursor,&view);  //选择框】
  UF_DISP_set_highlight(object_tag,0); //1高亮显示 0不高亮显示
  //UF_OBJ_set_color(object_tag,20);     //改颜色

double  bounding_box[ 6 ];
    UF_MODL_ask_bounding_box (object_tag, bounding_box ); //查询极点坐标 目前测试很不准 问题不断?


  double point_coords_a1[3]={bounding_box[ 1 ],bounding_box[ 2 ],bounding_box[ 3 ]};//点坐标xyz
  double point_coords_a2[3]={bounding_box[ 4 ],bounding_box[ 5 ],bounding_box[ 6 ]};
  tag_t point_tag_a1,point_tag_a2;                     
  UF_CURVE_create_point(point_coords_a1,&point_tag_a1); //调用API创建点
  UF_CURVE_create_point(point_coords_a2,&point_tag_a2);
   
   char box_x_x[22],box_x_y[22],box_x_z[22];
   char box_d_x[22],box_d_y[22],box_d_z[22];
   sprintf(box_x_x, "%d",bounding_box[ 1 ]);      //数字转字符串
   sprintf(box_x_y, "%d",bounding_box[ 2 ]);     
   sprintf(box_x_z, "%d",bounding_box[ 3 ]);     
   sprintf(box_d_x, "%d",bounding_box[ 4 ]);      
   sprintf(box_d_y, "%d",bounding_box[ 5 ]);     
   sprintf(box_d_z, "%d",bounding_box[ 6 ]);   
   UF_UI_open_listing_window(); //打开窗口
   UF_UI_write_listing_window("最小坐标 "); //输入信息
   UF_UI_write_listing_window(box_x_x);
   UF_UI_write_listing_window(",");
   UF_UI_write_listing_window(box_x_y);
   UF_UI_write_listing_window(",");
   UF_UI_write_listing_window(box_x_z);
   UF_UI_write_listing_window("\n");
   UF_UI_write_listing_window("最大坐标 ");
   UF_UI_write_listing_window(box_d_x);
   UF_UI_write_listing_window(",");
   UF_UI_write_listing_window(box_d_y);
   UF_UI_write_listing_window(",");
   UF_UI_write_listing_window(box_d_z);


作者: 63455    时间: 2012-4-14 11:27
那里有问题呢
作者: SWORDINHAND    时间: 2012-6-10 09:37
好象 UF_MODL_ask_bounding_box  这个函数 查不准 的, 要 做 六个极远 辅助面,查询 距离
作者: gao264    时间: 2012-6-10 15:06
  double point_coords_a1[3]={bounding_box[ 1 ],bounding_box[ 2 ],bounding_box[ 3 ]};//点坐标xyz
   double point_coords_a2[3]={bounding_box[ 4 ],bounding_box[ 5 ],bounding_box[ 6 ]};

LZ不会刚学C吧?居然123456的引用,是012345才对啊!
作者: gao264    时间: 2012-6-10 15:07
补充一句,这个ask boundingbox的函数应该没啥问题,你的代码有问题
作者: ScmTools    时间: 2014-5-18 12:35
支持一个
作者: olympic    时间: 2014-7-13 20:01
gao264 发表于 2012-6-10 15:06
double point_coords_a1[3]={bounding_box[ 1 ],bounding_box[ 2 ],bounding_box[ 3 ]};//点坐标xyz
    ...

是呀,楼主根本性错误。

如果发现某个数据完全不对,肯定是寻址出问题了。


另外 UF_MODL_ask_bounding_box 是不准的,但比较快, 好像有一个叫UF_MODL_ask_bounding_box_exact的会好些。

作者: yanjin    时间: 2014-10-4 16:01
UF_MODL_ask_bounding_box_exact 用这个才能测得准的




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3