iCAx开思工具箱

标题: 【求助】判断点在哪条曲线上 [打印本页]

作者: tari    时间: 2004-9-8 10:00
标题: 【求助】判断点在哪条曲线上
我用点构造器在某条边上选了一个点,请问有没有办法得到这条边的tag?谢谢!
作者: csftiger    时间: 2004-9-8 10:17
点的构造器只能返回点的绝对坐标,不附带其他信息,估计只能遍历点在线上了
作者: acoka    时间: 2004-9-8 10:22
如果是catia了话
可以用拓朴结构的report来求点的father,从而得到线,如果它是线上点
作者: tari    时间: 2004-9-8 10:28
csftiger wrote:
点的构造器只能返回点的绝对坐标,不附带其他信息,估计只能遍历点在线上了

遍历得到线的tag,如何判断点是否在线上,谢谢!
作者: csftiger    时间: 2004-9-8 10:38
输入构造器得到的点和遍历的曲线作为输入,用函数UF_MODL_ask_curve_parm得到线上的实际点
使用函数UF_VEC3_distance 得到构造器点和实际点的距离
问距离是否小于系统的torlerance即可
作者: tari    时间: 2004-9-8 10:54
谢谢各位!
我要实现的是在指定的某点边做一个凸起(如图)帮助定位,大家帮我看看有没有其他的好办法实现,导师要我这几天把它做出来,大家帮忙看看还有没有更好的办法?恳请指点!
作者: csftiger    时间: 2004-9-8 12:20
先选择边,再选择点。大概没搞懂你的意思
作者: tari    时间: 2004-9-8 13:31
我的意思是只要选择一个点,其他的自动生成就好了
作者: tari    时间: 2004-9-8 14:17
请问edge和curve类型是不是不一样啊,下面的代码错误提示为:invalid object type,恳请指点,代码如下:
UF_MODL_ask_face_edges(section,[edge_list)]
while(edge_list!=NULL)
{
    double distance;
    rc=UF_MODL_ask_curve_parm(edge_list->eid,base_pt,param,curve_pt);
   if(rc)
{
    UF_get_fail_message(rc,msg);
    printf("error=%s\n",msg);
}
UF_VEC3_distance(base_pt,curve_pt,distance);
if(distance<0.1)
{
   edge=edge_list->eid;
   break;
}
else
{
   edge_list=edge_list->next;
}
}
if(edge!=NULL_TAG)
{
UF_OBJ_set_color(edge,50);
}
作者: tari    时间: 2004-9-8 16:41
我弄了一个下午,还是不知怎么修改,各位高手指点一下吧!
作者: tari    时间: 2004-9-9 08:23
请问如何求曲线上偏离指定点1mm的点的坐标?
zzz斑竹及各位高手指点一下吧!谢谢
作者: goodluckwu    时间: 2004-9-9 13:48
tari wrote:
   
  遍历得到线的tag,如何判断点是否在线上,谢谢!

  
UF_GEXP_create_distance()
UF_GEXP_create_length()
可以直接得到两个物体之间的最小位移和距离。
判断距离是不是足够小就可以了
作者: goodluckwu    时间: 2004-9-9 13:49
tari wrote:
请问如何求曲线上偏离指定点1mm的点的坐标?  
  zzz斑竹及各位高手指点一下吧!谢谢

  
以1mm为半径做圆,然后和曲线求交点
作者: tari    时间: 2004-9-9 14:34
谢谢goodluckwu兄!
通过函数UF_MODL_ask_curve_props()得到的切线方向同曲线所在平面的法线正交得到的向量有时跟曲线(或者直线)的外法线方向相同,有时相反,请问如何得到外法线方向?恳请各位高手继续指点!




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3