标题: 【原创】动态调整特征参数的例子 [打印本页] 作者: mazhiguo 时间: 2003-7-15 10:39 标题: 【原创】动态调整特征参数的例子 在参数化CAD系统的二次开发中,我们不可避免的需要图形随控件的值动态的变化,以增加可视化的效果。以下是一个用滑动条控件控制长方体特征其中一个参数的例子,虽然例子比较简单,但如果可以抛砖引玉,能够给各位一个小小的启发,已达到我所期望。下面是创建过程和部分源代码,请各位给予指导!
进入UG界面后,Application->User Interface Styler...进行对话框的设置。加入滑动条控件,并设置Drag一项的回调函数,进行对话框的回调函数设置!保存生成*.h,*.template.c和*.dlg三个文件。
将*.dlg放入相应的application目录下。利用VC建立工程,删除系统生成的文件,添加*.h,*.template.c两个文件,设置用户入口函数
//#ifdef DISPLAY_FROM_USER_EXIT
extern void ufusr (char *param, int *retcode, int rlen)
然后在对话框的构造函数中生成立方体特征。
tag_t blk_obj;//全局变量
int DT_construction ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
/* Make sure User Function is available. */
char *block_len[3]={"25","25","25"};
double block_orig[3]={0.0,0.0,0.0};
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
/* ---- Enter your callback code here ----- */
UF_MODL_create_block1(UF_NULLSIGN,block_orig,block_len,[$blk_obj)]
UF_terminate ();
/* Callback acknowledged, do not terminate dialog */
return (UF_UI_CB_CONTINUE_DIALOG);
/* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
/* for this callback type. You must continue dialog construction.*/
}
在滑动条控件回调函数中进行动态更新
int DT_scale_real_valuechanged ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
/* Make sure User Function is available. */