UG模型边界上的点集生成及获取其三维坐标

文章目录

  • 前言
  • 一、三维模型添加点集
  • 二、存为.IGS文件
  • 三、程序读取每个点的三维坐标
  • 附录

前言

UG上自己画的三维模型(.prt)在边界上添加点集,得到边界上密集的点,然后另存为.IGS文件,获取该模型上边界点集三维坐标信息,自己写了个程序读取所有点坐标。
参考: 将UG里面的点批量导出并得到其三维坐标

一、三维模型添加点集

首先,在UG(笔者UG10.0)画好一个三维模型。
打开点集功能:菜单——插入——基准/点——点集,或者,曲线下的点集快捷按钮。


在点集界面,根据需求设置点数,然后选择要添加点集的一条线。示例设置点数为5000,红色箭头所指的边是笔者选择添加点集的边界线。


选择了边界线后,点就已经加上了,放大看是一个个绿色小球。


点击应用后,新添加的绿色点很密集,整体看就是一条绿色边界线。


上面点完应用后,点数不换的话,可直接点下一条线,再继续点应用,或者更改点数后,选择其他的线,每选一条线一定要点击“应用”再选下一条,否则会有警告,用以上步骤将其余边界线都添加上点集。

二、存为.IGS文件

除点集以外的所有部件都隐藏。

文件——保存——另存为,保存类型选择IGES文件(*.igs),保存后得到两个文件(.log和.igs)。.log中有该文件的总点数。


.igs文件可以用记事本打开。该文件中,以“116,”开头的行就是点坐标所在行,“116,”后面紧跟着的第一个逗号就是X坐标,第二个逗号是Y坐标,第三个逗号是Z坐标。


例如,上图蓝底部分的数字,该行以“116,”开头,该行就是一个点的信息行,该点的三维坐标是(0.0400080016003201,0.0,3.0)。

三、程序读取每个点的三维坐标

依据.igs文件内容,得到需要读取的目标信息为:以“116,”开头的行,且只需要留下“116,”之后的三个逗号内的数值。

import numpy as np

file = "E:/panel-dataset/cap_2/cap_2.igs"
IGS_file = open(file, 'r')
IGS_lines = IGS_file.readlines()
temp2 = []

# print(IGS_lines)
for line in IGS_lines:
    if line[:4] == "116,":
        temp1 = line.split(',')
        temp2.append(temp1[1:4])

L = len(temp2)
point = np.zeros((L, 3), np.float32)
for i in range(len(temp2)):
    point[i, 0] = float(temp2[i][0])
    point[i, 1] = float(temp2[i][1])
    point[i, 2] = float(temp2[i][2])

# print(point)
np.savetxt('cap_2_point.txt', point)

得到该三维模型添加点集后,所有点的三维坐标TXT文件,把TXT文件拖到CC里查看验证。

附录

还可以在UG里用焊点命令的方法获取边界线上点集的三维坐标:
NX软件:机器人焊点坐标数据导出为CSV格式文件操作方法
注意:用该方法中的焊点向导命令需要UG12.0版本以上。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年8月8日
下一篇 2023年8月8日

相关推荐