找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

[求助] 有没有人知道如何获取椭圆长轴短轴

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

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

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

x
有没有人知道如何能够获得一个椭圆面的Edge的椭圆长轴和短轴长度?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2008-7-21 12:38:04 | 只看该作者
首先必须有一个椭圆面tag_t  face;
再定义几个变量
uf_list_p_t   edge_list;
int   list_count;
tag_t  edge_temp;
tag_t  curve_ellipse;

UF_MODL_ask_face_edges(face,&edge_list);    //根据面得到边界
UF_MODL_ask_list_count(edge_list,&list_count);      //查询边界数量
UF_MODL_ask_list_item(edge_list,0,&edge_temp);      //得到第一个边界即椭圆边界,
                 //如果数量大于1,就是说边界是多个,需要用循环查询全部。如果椭圆标准,边界只有一个,这里投机一下。
UF_MODL_create_curve_from_edge(edge_temp,&curve_ellipse);      //通过椭圆边界创建一个椭圆tag_t

UF_EVAL_p_t evaluator;
UF_EVAL_ellipse_s  ellipse_a;
UF_EVAL_initialize(curve_ellipse,&evaluator);
UF_EVAL_ask_ellipse(evaluator,&ellipse_a);
完成OK。

另外椭圆结构为
struct UF_EVAL_ellipse_s
{
    logical     is_periodic;  /* Is the curve periodic or not? */
    double      limits[2];    /* Curve limits: [0] = min; [1] = max */
    double      minor;        /* Minor radius */
    double      major;        /* Major radius */
    double      center[3];    /* Center (ABS coordinates) */
    double      x_axis[3];    /* Unit direction vector of the x axis (ABS) */
    double      y_axis[3];    /* Unit direction vector of the y axis (ABS) */
};
在ellipse_a中可以查询椭圆的任何属性。
申明一下:必须是标准的椭圆,如果是类似椭圆实际是不规则形状,此方法无效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-1-6 05:42 , Processed in 0.023348 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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