UGモデル境界上の点集合の生成とその3D座標の取得


序文

UG上で私が描いた3Dモデル(.prt)は、境界上に点セットを追加して境界上の密な点を取得し、それを.IGSファイルとして保存して、モデル上にセットされた境界点の3D座標情報を取得し、全点座標を読み取るプログラムを書きます。
参考:UGでポイントを一括エクスポートして3次元座標を取得する


1. 3Dモデルに点セットを追加

まずはUG(筆者UG10.0)で3Dモデルを描きます。
点セット機能を開きます: メニュー—挿入—データム/点—点セット、または曲線の下にある点セットのショートカット ボタン。
ここに画像の説明を挿入
ここに画像の説明を挿入
ポイント セット インターフェイスで、要件に従ってポイントの数を設定し、ポイント セットを追加するラインを選択します。この例では、ポイントの数を 5000 に設定し、赤い矢印で示された側が、作成者がポイント セットを追加するために選択した境界線です。

ここに画像の説明を挿入
境界線を選択するとポイントが追加され、拡大すると小さな緑色のボールになります。

ここに画像の説明を挿入
[適用]をクリックすると、新しく追加された緑色の点が非常に密集し、全体的なビューが緑色の境界線になります。

ここに画像の説明を挿入
上の [適用] をクリックした後、ポイントが変更されない場合は、次の線を直接クリックして [適用] をクリックし続けるか、ポイントを変更した後、他の線を選択します。線を選択するたびに、[適用] をクリックして次の線を選択する必要があります。そうしないと警告が表示されます。上記の手順を使用して、残りの境界線をポイント セットに追加します。

ここに画像の説明を挿入

2. .IGS ファイルとして保存

点セットを除くすべてのコンポーネントが非表示になります。
ここに画像の説明を挿入
ファイル - 保存 - 名前を付けて保存、保存タイプとして IGES ファイル (*.igs) を選択すると、保存後に 2 つのファイル (.log と .igs) が取得されます。.log には、ファイルの合計ポイント数が記録されます。

ここに画像の説明を挿入
.igs ファイルはメモ帳で開くことができます。このファイルでは、「116」で始まる行が点座標を示す行で、「116」の直後の最初のカンマがX座標、2番目のカンマがY座標、3番目のカンマがZ座標です。

ここに画像の説明を挿入
例えば、上図の青い背景の数字は「116」で始まり、この線は三次元座標が(0.0400080016003201, 0.0, 3.0)である点の情報線です。


3. プログラムは各点の 3 次元座標を読み取ります

.igs ファイルの内容によれば、読み込む対象の情報は「116」で始まる行と、「116」以降のカンマ 3 つ以内の値だけを残せばよいことになります。

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)

3D モデルに追加されたポイント セット、すべてのポイントの 3D 座標 TXT ファイルを取得した後、TXT ファイルを CC にドラッグして表示して確認します。

ここに画像の説明を挿入


付録

UG の溶接点コマンド方法を使用して、境界線上に設定された点の 3 次元座標を取得することもできます。 NX ソフトウェア: ロボット
溶接点座標データを CSV 形式ファイルにエクスポートする操作方法
注: この方法で溶接点ウィザード コマンドを使用するには、UG12.0 以降のバージョンが必要です。

おすすめ

転載: blog.csdn.net/dreaming_song/article/details/127984289#comments_26031365