iCAx开思工具箱
标题:
【求助】UG二次开发中UF_MODL_move_feature()函数的使用问题
[打印本页]
作者:
songjian1030
时间:
2004-12-24 12:31
标题:
【求助】UG二次开发中UF_MODL_move_feature()函数的使用问题
UF_MODL_move_feature()函数是否是对特征体进行移动操作,如何正确使用,程序代码如下,系统报错:
uf_list_p_t car_list_for_move;
UF_MODL_create_list([$car_list_for_move)]
UF_MODL_put_list_item(car_list_for_move, blk_obj);
UF_MODL_put_list_item(car_list_for_move, tyre1);
UF_MODL_put_list_item(car_list_for_move, dplane);
UF_MODL_put_list_item(car_list_for_move, mirror_tag);
double move_points[2][12]={0,0,0,13587,0,0};
UF_MODL_move_feature (car_list_for_move,0,move_points);
UF_MODL_update();
作者:
hmjjh
时间:
2004-12-31 21:17
兄弟,把你的代码贴的完整点儿。
你用的是point_to_point方式,你的坐标好像也不对。
应该设置如下:
move_pt[0][0] = 0;
move_pt[0][1] = 0;
move_pt[0][2] = 0;
move_pt[1][0] = 5;
move_pt[1][1] = 5;
move_pt[1][2] = 5;
作者:
hcq2010
时间:
2009-12-13 23:47
我在使用这个函数时也遇到了问题。建立了一个BLOCK,想用UF_MODL_move_feature移动到另一点,不知为什么就是不成功。我已经做了一整天了就是不成功。请教各位了。代码如下:
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_modl.h>
#include "moveblock.h"
static void PrintErrorMessage( int errorCode );
static void dougopenapi(void)
{
int errorCode;
tag_t blocktag;
static double corner_pt[3]={0,0,0};
char *edge_len[3]={"10","10","10"};
uf_list_p_t feat_list;
static int mode=0;
static double movecoor[2][3]={{0.0,0.0,0.0},{10.0,10.0,10.0}};
errorCode=UF_MODL_create_block( UF_NULLSIGN, NULL,
corner_pt, edge_len, &blocktag );
PrintErrorMessage( errorCode );
UF_MODL_create_list(&feat_list);
UF_MODL_put_list_item(feat_list, blocktag);
UF_MODL_move_feature(feat_list, mode, movecoor);
UF_MODL_update();
}
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
{
int errorCode = UF_initialize();
if ( 0 == errorCode )
{
dougopenapi();
errorCode = UF_terminate(); /* Terminate the API environment */
}
PrintErrorMessage( errorCode ); /* Print out any error messages */
}
extern int ufusr_ask_unload( void )
{
return( UF_UNLOAD_IMMEDIATELY );
}
static void PrintErrorMessage( int errorCode )/* PrintErrorMessage*/
{
if ( 0 != errorCode )
{
/* Retrieve the associated error message */
char message[133];
UF_get_fail_message( errorCode, message );
/* Print out the message */
UF_UI_set_status( message );
uc1601(message,1);
}
}
作者:
ffhi
时间:
2009-12-14 10:22
移动特征的例子:将方块沿X方向移动10mm,采用点到到的方式。
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
{
/* Initialize the API environment */
if( UF_CALL(UF_initialize()) )
{
/* Failed to initialize */
return;
}
/* TODO: Add your application code here */
double adCornerPnt[3] = {0.0};
char *asEdgeLen[3] = {"100", "60", "36"};
tag_t tBlock = NULL_TAG;
UF_MODL_create_block1(UF_NULLSIGN, adCornerPnt, asEdgeLen, &tBlock);
uf_list_p_t move_list;
UF_MODL_create_list(&move_list);
UF_MODL_put_list_item(move_list, tBlock);
double adRealData[2][12] = {{ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0},
{ 10.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0}
};
UF_CALL(UF_MODL_move_feature(move_list, 0, adRealData));
UF_MODL_update();
/* Terminate the API environment */
UF_CALL(UF_terminate());
}
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3