关于UG实体着色问题,有源代码,,
UG实体着色疑问这段代码是实体着色,当我先对实体进行了面着色后,再进行体着色时,却不能改变面得颜色
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_object_types.h>
#include <uf_disp.h>
#include <uf_modl.h>
#include <uf_obj.h>
static int init_proc(UF_UI_selection_p_t select,
void *user_data);
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
static int report( char *file, int line, char *call, int irc)
{
if (irc)
{
char messg;
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)
{
char cue[] = "选择对象";
char title[] = "对象选择对话框";
int response=0;
tag_p_t object;
int count=0;
int i=0;
double pt={0,0,0};
double z1={0,0,1};
UF_OBJ_translucency_t cyt=0;
UF_UI_select_with_class_dialog(cue,title,0, init_proc, NULL,&response,&count, &object);
if (response == UF_UI_OK&&count>0){
for(i=0;i<count;i++){
UF_OBJ_set_color(object,186);
UF_DISP_set_highlight(object,0);//取消对象的高亮显示
UF_OBJ_set_translucency(object,cyt); //设置透明度
}
}
}
static int init_proc(
UF_UI_selection_p_t select,
void* user_data)
{
int num_triples = 1;
UF_UI_mask_t mask_triples[] = {UF_solid_type ,0,0,};//过滤对象选择
if((UF_CALL(UF_UI_set_sel_mask(select,
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
num_triples, mask_triples))) == 0)
{
return (UF_UI_SEL_SUCCESS);
}
else
{
return (UF_UI_SEL_FAILURE);
}
}
void ufusr(char *param, int *retcode, int param_len)
{
if (!UF_CALL(UF_initialize()))
{
do_ugopen_api();
UF_CALL(UF_terminate());
}
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
:) 你手工着色也是这样的吧
如果你对面改了颜色,体的颜色就不会变,除非你一开始就是对体着色
录制个JA看看吧
ufun对这方面支持并不是很好,看看NXOpen的JA 代码 很简单的就是 一个 modification
ufun代码太长了,nxopen不需要这么长的代码
页:
[1]