STEP ファイル形式を使用して解析し、情報を抽出して配列に保存し、後でプログラムでそれらを呼び出して数学演算を実行できるようにします。
以下は、私が使用しているデータの例です (advanced_face は、データ ファイルの後半で face_outer_bound を参照します。
#12 = ADVANCED_FACE ( 'NONE', ( #194 ), #326, .F. ) ;
...
#194 = FACE_OUTER_BOUND ( 'NONE', #159, .T. ) ;
これが私がこれまでに思いついたものです:
import re
with open('TestSlot.STEP', 'r') as step_file:
data = step_file.readlines()
NF = 0
faces = []
for line in data:
line = line.strip()
if re.search("ADVANCED_FACE", line):
NF = NF + 1
advface = re.compile('#\d+')
advfaceresult = advface.match(line)
faces.append(advfaceresult.group())
print("Face IDs =", faces)
print("Number of faces, NF =", NF)
これにより、次の出力が得られます。
Face IDs = ['#12', '#73', '#99', '#131', '#181', '#214', '#244',
'#273', '#330', '#358']
Number of faces, NF = 10
正規表現の一致を削除して、番号のみがリストに追加されるようにするにはどうすればよいですか?