iCAx开思工具箱

标题: 高手請進!!!! [打印本页]

作者: cctvilove    时间: 2008-11-24 15:32
标题: 高手請進!!!!
各位大俠,我現在想把UG prt中点的坐標输出去,首先在UG中遍历模型中的点对象,然後获取坐标之后再写文件。請問怎樣遍历模型中的点对象?怎樣获取坐标?                                              謝謝!!!!
作者: my_dear2002    时间: 2008-11-24 15:36
找找是不是有个ask_object方法
btw:mm好pp啊 口水.....
作者: dianzi24    时间: 2008-11-25 09:00
tag_t tem_point=NULL_TAG;
point_num=-1;
tag_t point[200];
tag_t part_tag;

part_tag = UF_ASSEM_ask_work_part();
do
{
        UF_OBJ_cycle_objs_in_part(part_tag,2,&tem_point);
        if(tem_tag == NULL_TAG) break;
        point_num++;
    point[point_num] = tem_point;               
}while(tem_point);

整个part中的所有点都会保存在数组point中。此循环会把part遍历一次。
UF_OBJ_cycle_objs_in_part中的第二个参数是类型的意思。2表示点,3是直线,5是圆弧,随便改。
作者: dianzi24    时间: 2008-11-25 09:04
查询点坐标用UF_CURVE_ask_point_data
这个简单死了,应该会吧。
作者: cctvilove    时间: 2008-11-25 11:17
非常感謝!本人是剛剛才學開發的,所以....嘿嘿
作者: cctvilove    时间: 2008-11-25 11:34
請問怎麼獲得點的坐標啊???
作者: dianzi24    时间: 2008-11-26 08:40
上面说的UF_CURVE_ask_point_data不就是获得点的坐标的么?晕死。
在库里搜索这个函数看看,就俩参数,没有再简单的了。
作者: cctvilove    时间: 2008-11-26 14:02
呵呵 ̄!能不能幫忙把程式寫完一下,我還想用UF_UI_write_listing_window()函數把坐標一個個顯示出來。拜托了!!!
作者: dianzi24    时间: 2008-11-26 14:27
算服了你了
#include <uf_assem.h>
#include <uf_curve.h>
#include <uf_obj.h>
#include <uf_ui_ugopen.h>

tag_t point=NULL_TAG;
double pp[3];
tag_t part_tag;
char export[50];
int pp_number = 0;
               
part_tag = UF_ASSEM_ask_work_part();
UF_UI_open_listing_window();
do
{
        UF_OBJ_cycle_objs_in_part(part_tag,2,&point);
        if(point == NULL_TAG) break;
        pp_number++;
        UF_CURVE_ask_point_data(point,pp);
        sprintf(export,"点%d的坐标:%.4f,%.4f,%.4f\n",pp_number,pp[0],pp[1],pp[2]);
        UF_UI_write_listing_window(export);
}while(point);
作者: cctvilove    时间: 2008-11-26 15:14
非常感謝!!!!
作者: zhangcanwei    时间: 2008-11-26 15:30
原帖由  于 2008-11-26 14:27 发表
算服了你了
#include
#include
#include
#include

tag_t point=NULL_TAG;
double pp[3];
tag_t part_tag;
char export[50];
int pp_number = 0;
               
part_tag = UF_ASSEM_ask_work_part();
UF_UI_o ...


很热心!支持!
作者: cctvilove    时间: 2008-11-28 08:06
請問怎麼樣取到點的工作坐標呀????
作者: dianzi24    时间: 2008-11-28 09:59
double  p1[3];        //绝对坐标系下的点
double  p2[3];       //工作坐标系下的新点

UF_CSYS_map_point( UF_CSYS_ROOT_COORDS, p1, UF_CSYS_WORK_COORDS, p2);

用此函数将点映射过去。因为用函数查询出来的数据都在在绝对坐标系下的,想得到工作坐标系下的数据就需要转换。
作者: 大雁山    时间: 2008-12-9 03:23
学习中。。。谢谢各位!
作者: zenghong789    时间: 2008-12-26 22:39

路过的。




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