QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 2781|回复: 3
打印 上一主题 下一主题

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

[复制链接]

三级士官

Rank: 3Rank: 3

11

主题

54

帖子

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 感谢分享

查看全部评分

有奖推广贴子: 

回复

使用道具 举报

三级士官

Rank: 3Rank: 3

11

主题

54

帖子

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"};
复制代码

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

使用道具 举报

一级士官

Rank: 2

0

主题

19

帖子

240

积分
板凳
发表于 2015-6-12 22:21:51 | 只看该作者
两个在指定布尔运算的方式不同,一个是可以自定义的,一个是上一个特征的体
回复 支持 反对

使用道具 举报

上尉

Rank: 6Rank: 6

2

主题

468

帖子

6073

积分
地板
发表于 2015-9-10 08:00:37 | 只看该作者
很好很强大
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-9-23 12:02

返回顶部