三级士官
UID2157254
U币21
G币502
技术0
主题11
精华1
阅读权限50
注册时间2014-3-2
最后登录2016-3-15
在线时间69 小时
三级士官
|
本例参考《图表详解 UG NX 二次开发》莫蓉、常智勇等,因为版本不同,自己做了细微调整。
目标:在UG中创建一个块
实现:利用UG中的
来实现block的创建。
函数介绍:
和
,目前还没怎么搞明白两者之间的根本差别。
- #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 );
- }
复制代码
|
评分
-
查看全部评分
|