iCAx开思工具箱

标题: 太冷清了。。出一题目,感兴趣的来练习下。。 [打印本页]

作者: sincosxu    时间: 2007-11-20 21:44
标题: 太冷清了。。出一题目,感兴趣的来练习下。。
已知一曲面和曲面上一点,求曲面在该点的矢量方向。。。。
我的思路是:1.过该点做一矢量
                        2.查询矢量的信息。。
难点有二:1.如何创建该矢量
                     2.有可能当前部件中有多个坐标系。如何保证获得想要的矢量方向。。
希望大家踊跃发言。。。呵呵

作者: sincosxu    时间: 2007-11-21 14:51
我来说一个思路:
    使用函数UF_SO_create_dirr_normal_to_surface_point()
   其中又涉及到选点和面,查询Datum信息的函数:类选择器UF_UI_select_with_single_dialog,点构造器UF_UI_point_construct,UF_MODL_ask_datum_axis_parms,当然可能在获得方向后,需要构建Datum这时要使用函数UF_MODL_create_point_dirr_daxis..
   还没写代码,晚上写写看看..
  上面只是个人思路....大家可以发发言啊..
比如说是否可以使用UF_MODL_ask_face_props()

作者: sincosxu    时间: 2007-11-22 20:20
此程序,我已经做好。。只是有个瑕疵:我用UF_UI_select_with_single_dialog()函数来选择片体,只是该函数在选好片体后,一直成高亮显示,好不苦闷。。
大家有什么好的建议。。

作者: sincosxu    时间: 2007-11-22 20:30
高亮显示的问题也解决了。。使用UF_DISP_set_highlight()就可以了。。[/color]
作者: sincosxu    时间: 2007-11-22 20:35
程序原代码上传。。写的比较粗糙。。
作者: 春泉    时间: 2007-11-22 21:09
看你比较活跃,想看看你的代码质量的,竟然还搞个加密,晕
作者: sincosxu    时间: 2007-11-22 22:51
哈哈,等我看达到活跃了气氛的目的后再把密码给大家。。
作者: ssdt    时间: 2007-11-23 09:07
能否1.选择多个片体
         2.选择多个片体上的多个点
         3.能否考虑多个坐标系的问题
         4.能否通过读取.TXT文件来获得点的信息..
作者: sincosxu    时间: 2007-11-23 10:50
超级郁闷(调试浪费了两个晚上的时间):

如上图1:在蓝,黄,红上三面上对应三个点:pt1,pt2,pt3;
在使用我调试出的程序时Pt2和pt3都没问题,但是pt1一直有问题。。
兰色的片体是我通过through curve做出来的,而且我已经去参数了。
使用程序后结果一直是:
Pt1=(-92559631349317831000000000000000000000000000000000000000000000.000000,-92559631349317831000000000000000000000000000000000000000000000.000000,-92559631349317831000000000000000000000000000000000000000000000.000000),
Direction=(-92559631349317831000000000000000000000000000000000000000000000.000000,-92559631349317831000000000000000000000000000000000000000000000.000000,-92559631349317831000000000000000000000000000000000000000000000.000000)
Pt2=(-29.284503,-71.823843,-2.796029),Direction=(-0.809455,0.052007,0.584874)
Pt3=(-28.970087,-136.543593,-10.950246),Direction=(-0.569331,-0.378791,0.729643)
我已经验证过了,2和3的结果没问题。。
对于1,解决方法是对兰色的片,把它表面抽取出来(如下图2)在使用程序测量就可以了。。

Pt1=(-31.613342,-43.285110,-7.465657),Direction=(-0.130996,-0.075997,-0.988466)
然后仔细想想,觉得肯定是由于使用函数有限制的原因,但是这个只是原因之一吧。。
所以,我觉得这种方法还不是很好。 觉得最好的方法还是先把矢量做出来,再查询矢量的信息,这样才是最好的方法,但是这个矢量的创建有点难度,实际操作中,先选择点再选择片体就可以出来想要的向量了,但是函数中好象没有这样创建矢量的(原因比较简单:因为这样创建矢量有歧义),感觉是不是要另外想一个思路。
而且程序还有很多要改善的地方:比如说第一步在选择时只能选择片体,这个局限性太大了。。
还有就是经高人指正,说我代码质量不高,哎,还需要多多研究。
暂时想出了个思路:1.选择特征-------管它什么东西,抽出表面再说(这样总该没错了吧)---隐藏上面的特征,只剩下表面-------再进行选点操作-------后面的获取矢量步骤就不用说了---删除上面抽出来的表面,并显示特征(当然要去高亮效果了)。。。
      Ssdt同学说的东西也蛮好,我在研究下,争取可以解决坐标系的问题,使它是在用户坐标系也能用,还有就是读取文本文档来获得点的信息,想法不错,看样子就这么个小问题,也有很多有意思的东西。。哈哈。。心情稍微舒畅点了。。

作者: ftftftftft    时间: 2007-11-24 23:53
高手
啊!

只能学习
作者: 张少杰    时间: 2010-11-21 15:49
谢谢楼主分享啊
作者: LIUCHANGLIN    时间: 2011-3-26 09:44
密码多少,!楼主不厚道




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