找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 2959|回复: 3

[分享] UG二次开发_体素特征创建_创建块

[复制链接]

11

主题

43

回帖

641

积分

三级士官

积分
641
发表于 2015-3-20 14:49:06 | 显示全部楼层 |阅读模式
本例参考《图表详解 UG NX 二次开发》莫蓉、常智勇等,因为版本不同,自己做了细微调整。
目标:在UG中创建一个块
实现:利用UG中的
  1. UF_MODL_create_block1
复制代码

来实现block的创建。
         函数介绍:
  1. UF_MODL_create_block
复制代码

  1. UF_MODL_create_block1
复制代码

,目前还没怎么搞明白两者之间的根本差别。

  1. #include <uf.h>
  2. #include <uf_ui.h>
  3. #include <uf_exit.h>
  4. #include <uf_modl.h>
  5. #include <uf_modl_primitives.h>
  6. extern DllExport void ufsta( char *parm, int *returnCode, int rlen )
  7. {
  8. //    UF_FEATURE_SIGN    sign    Input    The sign of the operation to be performed.
  9. //动作标志,到底是新建还是增加还是去除等,通过这个SIGN来控制
  10. //UF_NULLSIGN = create new target solid
  11. //UF_POSITIVE = add to target solid
  12. //UF_NEGATIVE = subtract from target solid
  13. //UF_UNSIGNED = intersect with target solid
  14. //double    corner_pt [ 3 ]     Input    Corner point (origin) of block一个角的坐标,现在也没弄明白到底以哪个//角为基准,有可能是有一个基准点,后续的三条边的长宽高,可以用负数去控制,等下我去试试
  15. //char *    edge_len [ 3 ]     Input    Three edge lengths of block 三个边长
  16. //tag_t *    blk_obj_id    Output    Feature object identifier of created block. 目标特征的tag

  17.     if(!UF_initialize())
  18.     {
  19.         UF_FEATURE_SIGN sign_new=UF_NULLSIGN;
  20.         UF_FEATURE_SIGN sign_add=UF_POSITIVE;
  21.         double corner_pt [ 3 ]={0.0,0.0,0.0};
  22.         double corner_pt1 [ 3 ]={0.0,0.0,3.0};
  23.         char *    edge_len [ 3 ]={"1","2","3"};
  24.         char *    edge_len1 [ 3 ]={"1","1","1"};
  25.         tag_t  blk_obj;
  26.         tag_t  blk1_obj;
  27.         UF_MODL_create_block1(sign_new,corner_pt,edge_len,&blk1_obj);
  28.         UF_MODL_create_block1(sign_add,corner_pt1,edge_len1,&blk1_obj);

  29.         uc1601("The block is ready.",1);
  30.           return;
  31.     }
  32.    
  33.     UF_terminate();
  34. }
  35. extern int ufusr_ask_unload( void )
  36. {
  37.     return( UF_UNLOAD_IMMEDIATELY );
  38. }
复制代码

块创建成功

块创建成功



评分

参与人数 1U币 +10 G币 +50 元宝 +1 收起 理由
副总经理 + 10 + 50 + 1 感谢分享

查看全部评分

11

主题

43

回帖

641

积分

三级士官

积分
641
 楼主| 发表于 2015-3-20 14:55:11 | 显示全部楼层
试了一下,把这行注释掉也可以,可能uf_modl已经包含了这个头文件了
  1. //#include <uf_modl_primitives.h>
  2. char *        edge_len [ 3 ]={"1","2","3"};
  3. char *        edge_len1 [ 3 ]={"1","1","1"};
复制代码

但是这两个边长里,输入负数不行,可能是因为其定义的是边的长度,不能为负数。

0

主题

19

回帖

240

积分

一级士官

积分
240
发表于 2015-6-12 22:21:51 | 显示全部楼层
两个在指定布尔运算的方式不同,一个是可以自定义的,一个是上一个特征的体

2

主题

464

回帖

6073

积分

上尉

积分
6073
发表于 2015-9-10 08:00:37 | 显示全部楼层
很好很强大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-1-19 14:33

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表