找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 3307|回复: 6

[求助] 如何在ug中建立坐标系 并且读取坐标系中的数据,试过一些方法 但是ug会崩掉

[复制链接]

2

主题

9

回帖

119

积分

上等兵

积分
119
发表于 2019-2-21 22:11:51 | 显示全部楼层 |阅读模式
UF_initialize();
struct Robot {
        NXOpen::Vector3d xdir, ydir;
        NXOpen::Point3d originPoint;
};
Robot robot;
PropertyList* CoordSystemRobotProps = CoordSystemRobot->GetProperties();
std::vector<NXOpen::TaggedObject*>CoordSystemRobotObjects = CoordSystemRobotProps->GetTaggedObjectVector("SelectedObjects");
NXOpen::CartesianCoordinateSystem *coord = dynamic_cast<NXOpen::CartesianCoordinateSystem *>(CoordSystemRobotObjects[0]);
coord->GetDirections(&robot.xdir, &robot.ydir);
robot.originPoint = coord->Origin();
delete CoordSystemRobotProps;
CoordSystemRobotProps = NULL;
char a[100];
sprintf(a, "机器人坐标:%.2f  %.2f  %.2f\nX轴方向:(%.1f, %.1f, %.1f)  Y轴方向:(%.1f, %.1f, %.1f)", robot.originPoint.X, robot.originPoint.Y, robot.originPoint.Z,robot.xdir.X, robot.xdir.Y, robot.xdir.Z, robot.ydir.X, robot.ydir.Y, robot.ydir.Z);
uc1601(a, 1);
CoordSystemRobotObjects.clear();
UF_terminate();
uc1601("1", 1);



尝试过以上代码,虽然能读取坐标原点及方向向量等参数 但是读取完代码运行结束之后ug就会崩溃退出
注:使用的是ug8.0

4

主题

158

回帖

5940

积分

上尉

积分
5940
发表于 2019-2-22 09:06:08 | 显示全部楼层
UF_CSYS_create_csys,创建坐标系
UF_CSYS_ask_csys_info,读取坐标系信息
UF_CSYS_ask_matrix_values,获取坐标系矩阵值信息

2

主题

9

回帖

119

积分

上等兵

积分
119
 楼主| 发表于 2019-2-25 13:01:34 | 显示全部楼层
谢谢,不过我用的是block ui做的开发,这一点我一开始没讲清楚。
我想知道通过ug block ui里的控件建立坐标系 然后读取参数  该怎么做?
这三个函数方法我记得是MFC风格的,也可以做吗?

2

主题

9

回帖

119

积分

上等兵

积分
119
 楼主| 发表于 2019-2-25 13:02:09 | 显示全部楼层
蓝摩羯 发表于 2019-2-22 09:06
UF_CSYS_create_csys,创建坐标系
UF_CSYS_ask_csys_info,读取坐标系信息
UF_CSYS_ask_matrix_values, ...

谢谢,不过我用的是block ui做的开发,这一点我一开始没讲清楚。
我想知道通过ug block ui里的控件建立坐标系 然后读取参数  该怎么做?
这三个函数方法我记得是MFC风格的,也可以做吗?

4

主题

158

回帖

5940

积分

上尉

积分
5940
发表于 2019-2-25 17:01:47 | 显示全部楼层
我知道你用的是block ui。你从你的指定坐标系控件中得到临时坐标系的tag_t的值,然后再用这些函数读取。

4

主题

158

回帖

5940

积分

上尉

积分
5940
发表于 2019-2-25 17:06:30 | 显示全部楼层
以下为UG11对应的代码,仅供参考:
tag_t t_csys = coord_system0->GetSelectedObjects().at(0)->Tag();

                        tag_t t_wcsMatrix;
                        double wcsMtx[9];
                        double wcsOrigin[3];
                        double xDir[3];
                        double yDir[3];
                        double zDir[3];

                        UF_CSYS_ask_csys_info(t_csys, &t_wcsMatrix, wcsOrigin);
                        UF_CSYS_ask_matrix_values(t_wcsMatrix, wcsMtx);

                        UF_MTX3_x_vec(wcsMtx, xDir);
                        UF_MTX3_y_vec(wcsMtx, yDir);
                        UF_MTX3_z_vec(wcsMtx, zDir);

                        UF_UI_open_listing_window();
                        char aa[256] = "";

                        sprintf(aa, "%f,%f,%f", xDir[0], xDir[1], xDir[2]);
                        UF_UI_write_listing_window(aa);

2

主题

9

回帖

119

积分

上等兵

积分
119
 楼主| 发表于 2019-2-25 23:05:28 | 显示全部楼层
蓝摩羯 发表于 2019-2-25 17:06
以下为UG11对应的代码,仅供参考:
tag_t t_csys = coord_system0->GetSelectedObjects().at(0)->Tag();
...

十分感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2024-12-23 04:45

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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