找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 21066|回复: 13
打印 上一主题 下一主题

求助 :UG--api函数UF_CURVE_create_line_point_point的用法

[复制链接]
跳转到指定楼层
1
发表于 2008-4-16 13:08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我想编一个利用两个点创建一条直线的小程序,但函数UF_CURVE_create_line_point_point当中的参数不知该如何设置,请大家帮忙。

extern int UF_CURVE_create_line_point_point (
tag_t point1,
tag_t point2,
UF_CURVE_limit_p_t limit_p[ 2 ],
tag_t support_plane,
logical is_asso,
tag_p_t line_feature_id );

tag_t  point1 Input tag of start point
tag_t  point2 Input tag of end point
UF_CURVE_limit_p_t  limit_p[ 2 ] Input extension limits
tag_t  support_plane Input tag of support plane of the line
logical  is_asso Input true - if associative, false - if not associative
tag_p_t  line_feature_id Output if is_asso == TRUE - object identifier of new associtive line feature
if is_asso == FALSE - object identifier of new associtive line

红色部分 limit_p[2] 该如何设置啊?
哪位大哥能给一个写好的代码让我学习学习么?  我看了半天帮助也没弄明白。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2010-8-17 14:47:13 | 只看该作者
1# batigol_cj
真的很悲剧,08年的问题,到现在都没人回帖,以至于我也不知道答案
3
发表于 2010-8-17 17:40:54 | 只看该作者
用这个来划线了UF_CURVE_create_line(&line_coords,&line_tag);

UF_CURVE_line_t line_coords;
        line_coords.start_point[0]=x0
        line_coords.start_point[1]=y0;
        line_coords.start_point[2]=z0;
        line_coords.end_point[0]=x1
        line_coords.end_point[1]=y1
        line_coords.end_point[2]=z1
   其中 x0,y0,z0  x1,y1,z1 就是起点与终点坐标值
4
发表于 2010-8-18 09:34:07 | 只看该作者
3# zjs
#include <uf.h>
#include"stdio.h"
#include<uf_ui.h>
#define UF_CALL(X)(report(__FILE__,__LINE__,#X,(X)))
static int report( char *file, int line, char *call, int irc)
{
  if (irc)
  {
     char  messg[133];
     printf("%s, line %d:  %s\n", file, line, call);
     (UF_get_fail_message(irc, messg)) ?
       printf("    returned a %d\n", irc) :
       printf("    returned error %d:  %s\n", irc, messg);
  }
  return(irc);
}
static void do_ugopen_api(void)
{
UF_CURVE_line_p_t line_coords ;
tag_t line;
line_coords->start_point[0]=0.0;
line_coords->start_point[1]=0.0;
line_coords->start_point[2]=0.0;
line_coords->end_point[0]=1.0;
line_coords->end_point[1]=1.0;
line_coords->end_point[2]=1.0;
//创建一条直线;
UF_CALL(UF_CURVE_create_line(line_coords,&line));
extern DLLExport void ufusr (char*parm,int*returnCode,int rlen)
{
if(!UF_CALL(UF_initialize()))//获取二次开发许可
{
  do_ugopen_api();
  UF_CALL(UF_terminate());//释放二次开发许可
}
else
{
  uc1601("获取二次开发失败",1);
}
}
//添加卸载函数
int ufusr_ask_unload(void)
{
return (UF_unload_IMMEDIATELY);
}

你给看一下这个程序吧,谢谢了
qq409456559
能不能留下你的qq
5
发表于 2010-8-18 10:10:15 | 只看该作者
这里是正解
           tag_t pt1=NULL_TAG,pt2=NULL_TAG;
        double pos1[3]={0,0,0},pos2[3]={100,0,0};

        UF_CURVE_create_point(pos1,&pt1);
        UF_CURVE_create_point(pos2,&pt2);

        UF_CURVE_limit_s limit[2];
        UF_CURVE_limit_p_t pLimit[2]={&limit[0],&limit[1]};
        limit[0].limit_type=UF_CURVE_limit_to_entity;
        limit[0].limiting_obj=pt1;
        limit[1].limit_type=UF_CURVE_limit_to_entity;
        limit[1].limiting_obj=pt2;

        tag_t lineTag=NULL_TAG;
        UF_CALL(UF_CURVE_create_line_point_point(pt1,pt2,pLimit,NULL_TAG,FALSE,&lineTag));
6
发表于 2010-8-18 10:12:40 | 只看该作者
调试没问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7
发表于 2010-8-18 10:16:02 | 只看该作者
UF_CURVE_limit_s limit用于限制线的长度,可以选UF_CURVE_limit_value方式指定值来控制
3楼4楼也是创建曲线,不过是非参数的,不是楼主想要的

本帖最后由 look_tfq 于 2010-8-18 10:20 编辑
8
发表于 2010-8-18 10:27:54 | 只看该作者
6# look_tfq
谢谢了
我的这个程序不能用吗
就是用uf_curve_create_line这个函数
9
发表于 2010-8-18 10:36:50 | 只看该作者
8# litao1128

楼主是说UF_CURVE_create_line_point_point的用法,不是怎么创建直线,创建直线的方法有好多种
10
发表于 2010-8-18 10:42:25 | 只看该作者
UF_CURVE_create_line这个函数的用法在我的程序里面不知道错误在哪里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-31 02:07 , Processed in 0.027344 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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