iCAx开思工具箱

标题: ug二次开发的问题,急求 [打印本页]

作者: detelear    时间: 2012-7-10 15:10
标题: ug二次开发的问题,急求
具体怎么添加颜色设置函数把这个拉伸体设置成红色?小弟刚学不会呀
#include <stdio.h>
#include <uf.h>
#include <uf_modl.h>
#include <uf_curve.h>

#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
static int report( char *file, int line, char *call, int irc)
{
   if (irc)
    {
      char messg[133];
      printf("%s, line %d: %s\n", file, line, call);
      (UF_get_fail_message(irc,messg )) ?
      printf(" returned a %d\n", irc) :
      printf(" returned error %d: %s\n", irc, messg);
    }
return(irc);
}

static void do_ugopen_api(void)
{
double pt1[3]= {0.0,0.0,0.0};
double pt2[3]= {1.0,0.0,0.0};
double pt3[3]= {3.0,3.0,0.0};
double pt4[3]= {0.0,1.0,0.0};
tag_t  line1;
tag_t  line2;
tag_t  line3;
tag_t  line4;
UF_CURVE_line_t line_coords1;
UF_CURVE_line_t line_coords2;
UF_CURVE_line_t line_coords3;
UF_CURVE_line_t line_coords4;


line_coords1.start_point[0] = pt1[0];
line_coords1.start_point[1] = pt1[1];
line_coords1.start_point[2] = pt1[2];
line_coords1.end_point[0] = pt2[0];
line_coords1.end_point[1] = pt2[1];
line_coords1.end_point[2] = pt2[2];
   
UF_CALL(UF_CURVE_create_line(&line_coords1, &line1));
line_coords2.start_point[0] = pt2[0];
line_coords2.start_point[1] = pt2[1];
line_coords2.start_point[2] = pt2[2];
line_coords2.end_point[0] = pt3[0];
line_coords2.end_point[1] = pt3[1];
line_coords2.end_point[2] = pt3[2];
   
UF_CALL(UF_CURVE_create_line(&line_coords2, &line2));
line_coords3.start_point[0] = pt3[0];
line_coords3.start_point[1] = pt3[1];
line_coords3.start_point[2] = pt3[2];
line_coords3.end_point[0] = pt4[0];
line_coords3.end_point[1] = pt4[1];
line_coords3.end_point[2] = pt4[2];
   
UF_CALL(UF_CURVE_create_line(&line_coords3, &line3));
line_coords4.start_point[0] = pt4[0];
line_coords4.start_point[1] = pt4[1];
line_coords4.start_point[2] = pt4[2];
line_coords4.end_point[0] = pt1[0];
line_coords4.end_point[1] = pt1[1];
line_coords4.end_point[2] = pt1[2];
   
UF_CALL(UF_CURVE_create_line(&line_coords4, &line4));
    double  direction[3] = {0.0, 0.0, 1.0};
UF_FEATURE_SIGN sign = UF_NULLSIGN;
char * taper_angle = "0.0";
double point[3];
char * limit[2] = {"0.0", "10"};
uf_list_p_t objects, body;
UF_CALL(UF_MODL_create_list(&objects));
UF_CALL(UF_MODL_put_list_item(objects, line1));
UF_CALL(UF_MODL_put_list_item(objects, line2));
UF_CALL(UF_MODL_put_list_item(objects, line3));
UF_CALL(UF_MODL_put_list_item(objects, line4));
UF_CALL(UF_MODL_create_extruded (objects, taper_angle, limit, point, direction, sign, &body));



}
/*ARGSUSED*/
extern void ufusr(char *param, int *retcode, int paramLen)
{
if (!UF_CALL(UF_initialize()))
{
  do_ugopen_api();
  UF_CALL(UF_terminate());
}
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}

作者: jackie2003    时间: 2012-7-10 17:04
UF_MODL_ask_list_count(body, &count);
for (int inx = 0; inx < count; ++inx)
{
    UF_MODL_ask_list_item(body, inx, &featTag);
    UF_MODL_ask_feat_body(featTag, &bodyTag);
    UF_OBJ_set_color(bodyTag, 6);
}
UF_MODL_delete_list(&body);
作者: detelear    时间: 2012-7-10 22:26
jackie2003 发表于 2012-7-10 17:04
UF_MODL_ask_list_count(body, &count);
for (int inx = 0; inx < count; ++inx)
{

谢谢 可是我运行之后出线这几个错误 怎么解决?
e:\open api\001\001.cpp(103) : error C2065: 'count' : undeclared identifier
e:\open api\001\001.cpp(106) : error C2065: 'featTag' : undeclared identifier
e:\open api\001\001.cpp(107) : error C2065: 'bodyTag' : undeclared identifier
作者: 猪扒皮    时间: 2012-7-10 22:30
每次看到你们二次开发的放出来一串代码我就头晕
作者: upoint    时间: 2012-7-11 06:40
detelear 发表于 2012-7-10 22:26
谢谢 可是我运行之后出线这几个错误 怎么解决?
e:\open api\001\001.cpp(103) : error C2065: 'count'  ...

帅哥,刚学开发的吧。声明一下就可以了
作者: detelear    时间: 2012-7-11 10:25
upoint 发表于 2012-7-11 06:40
帅哥,刚学开发的吧。声明一下就可以了

怎么样声明啊?求教
作者: detelear    时间: 2012-7-11 17:31
upoint 发表于 2012-7-11 06:40
帅哥,刚学开发的吧。声明一下就可以了

请教大侠具体怎么样声明?在哪声明?
作者: hyfjy    时间: 2012-7-11 22:42
猪扒皮 发表于 2012-7-10 22:30
每次看到你们二次开发的放出来一串代码我就头晕

读懂代码是编程的起步,如果连代码的含义都看不懂,那就得先练基本功了。
作者: 88138lu    时间: 2012-7-12 14:51
在代码前输入以下代码:
int count
Tag featTag
Tag bodyTag


作者: 钟贞语    时间: 2012-7-12 15:00
楼上正解
作者: detelear    时间: 2012-7-12 17:02
88138lu 发表于 2012-7-12 14:51
在代码前输入以下代码:
int count
Tag featTag

谢谢了大侠 解决了 在代码前加上:
int count;
tag_t featTag;
tag_t bodyTag;

作者: john09    时间: 2012-7-16 14:27
建议补一下C
作者: wangjiahui885    时间: 2012-12-12 22:47
XUEXILE




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