UG爱好者
标题:
UG二次开发_体素特征创建_创建块
[打印本页]
作者:
奇塔车饰
时间:
2015-3-20 14:49
标题:
UG二次开发_体素特征创建_创建块
本例参考《图表详解 UG NX 二次开发》莫蓉、常智勇等,因为版本不同,自己做了细微调整。
目标:在UG中创建一个块
实现:利用UG中的
UF_MODL_create_block1
复制代码
来实现block的创建。
函数介绍:
UF_MODL_create_block
复制代码
和
UF_MODL_create_block1
复制代码
,目前还没怎么搞明白两者之间的根本差别。
#include <uf.h>
#include <uf_ui.h>
#include <uf_exit.h>
#include <uf_modl.h>
#include <uf_modl_primitives.h>
extern DllExport void ufsta( char *parm, int *returnCode, int rlen )
{
// UF_FEATURE_SIGN sign Input The sign of the operation to be performed.
//动作标志,到底是新建还是增加还是去除等,通过这个SIGN来控制
//UF_NULLSIGN = create new target solid
//UF_POSITIVE = add to target solid
//UF_NEGATIVE = subtract from target solid
//UF_UNSIGNED = intersect with target solid
//double corner_pt [ 3 ] Input Corner point (origin) of block一个角的坐标,现在也没弄明白到底以哪个//角为基准,有可能是有一个基准点,后续的三条边的长宽高,可以用负数去控制,等下我去试试
//char * edge_len [ 3 ] Input Three edge lengths of block 三个边长
//tag_t * blk_obj_id Output Feature object identifier of created block. 目标特征的tag
if(!UF_initialize())
{
UF_FEATURE_SIGN sign_new=UF_NULLSIGN;
UF_FEATURE_SIGN sign_add=UF_POSITIVE;
double corner_pt [ 3 ]={0.0,0.0,0.0};
double corner_pt1 [ 3 ]={0.0,0.0,3.0};
char * edge_len [ 3 ]={"1","2","3"};
char * edge_len1 [ 3 ]={"1","1","1"};
tag_t blk_obj;
tag_t blk1_obj;
UF_MODL_create_block1(sign_new,corner_pt,edge_len,&blk1_obj);
UF_MODL_create_block1(sign_add,corner_pt1,edge_len1,&blk1_obj);
uc1601("The block is ready.",1);
return;
}
UF_terminate();
}
extern int ufusr_ask_unload( void )
{
return( UF_UNLOAD_IMMEDIATELY );
}
复制代码
捕获.PNG
(16.96 KB, 下载次数: 64)
下载附件
块创建成功
2015-3-20 14:48 上传
作者:
奇塔车饰
时间:
2015-3-20 14:55
试了一下,把这行注释掉也可以,可能uf_modl已经包含了这个头文件了
//#include <uf_modl_primitives.h>
char * edge_len [ 3 ]={"1","2","3"};
char * edge_len1 [ 3 ]={"1","1","1"};
复制代码
但是这两个边长里,输入负数不行,可能是因为其定义的是边的长度,不能为负数。
作者:
visahc*
时间:
2015-6-12 22:21
两个在指定布尔运算的方式不同,一个是可以自定义的,一个是上一个特征的体
作者:
nx9.0
时间:
2015-9-10 08:00
很好很强大
欢迎光临 UG爱好者 (https://www.ugsnx.com/)
Powered by Discuz! X3.2