Source code for pyNastran.op2.tables.geom.dit

from six.moves import range
from struct import unpack

from pyNastran.bdf.cards.aero import GUST
from pyNastran.bdf.cards.bdf_tables import (TABLED1, TABLED2, TABLED3, TABLEM1,
                                        TABLEM2, TABLEM3, TABLEM4)


[docs]class DIT(object): def _read_dit_4(self, data): return self._read_geom_4(self._dit_map, data) def __init__(self): self._dit_map = { (1005, 10, 174): self.readGust, # record 1 (1105, 11, 133): self.readTableD1, # record 4 (1205, 12, 134): self.readTableD2, # record 5 (1305, 13, 140): self.readTableD3, # record 6 #(105,1,93): self.readTableM1, # record 9 (205, 2, 94): self.readTableM2, # record 10 (305, 3, 95): self.readTableM3, # record 11 #(405,4,96): self.readTableM4, # record 12 (15, 21, 162): self._readFake, (56, 26, 303): self._readFake, (3105, 31, 97): self._readFake, # record 13 - TABLES1 }
[docs] def readGust(self, data, n): """ GUST(1005,10,174) - the marker for Record 1 """ #print("reading GUST") nEntries = (len(data) - n) // 20 # 5*4 for i in range(nEntries): eData = data[n:n + 20] out = unpack('ii3f', eData) (sid, dload, wg, x0, V) = out gust = GUST(None, out) self.add_GUST(gust) n += 20 return n
#TABDMP1 #TABLE3D
[docs] def readTableD1(self, data, n): """ TABLED1(1105,11,133) - the marker for Record 4 """ #self.skippedCardsFile.write('skipping TABLED1 in DIT\n') return #print("reading TABLED1") func = TABLED1 n = self.readTable1(func, data, n) return n
[docs] def readTable1(self, func, data, n): #nEntries = len(data)//40 # 10*4 n = 0 ndata = len(data) while ndata - n >= 40: eData = data[n:n + 40] out = unpack('8iff', eData) (sid, codeX, codeY, a, a, a, a, a, x, y) = out dataIn = [sid, codeX, codeY] n += 40 while 1: (xInt, yInt) = unpack('ii', data[n:n + 8]) (x, y) = unpack('ff', data[n:n + 8]) n += 8 if [xInt, yInt] != [-1, -1]: break else: dataIn += [x, y] dataIn += [x, y] table = func(None, out) self.add_table(table) return n
[docs] def readTableD2(self, data, n): """ TABLED2(1205,12,134) - the marker for Record 5 """ #print("reading TABLED2") func = TABLED2 n = self.readTable2(func, data) return n
[docs] def readTable2(self, func, data): n = 0 return len(data) while len(data) >= 40: eData = data[n:n + 40] out = unpack('ifiiiiiiff', eData) (sid, x1, a, a, a, a, a, a, x, y) = out dataIn = [sid, x1] n += 40 while 1: (xInt, yInt) = unpack('ii', data[n:n + 8]) (x, y) = unpack('ff', data[n:n + 8]) n += 8 if [xInt, yInt] != [-1, -1]: break else: dataIn += [x, y] dataIn += [x, y] table = func(None, out) self.add_table(table) return len(data)
[docs] def readTableD3(self, data, n): """ TABLED3(1305,13,140) - the marker for Record 6 """ #print("reading TABLED3") func = TABLED3 n = self.readTable3(func, data) return n
[docs] def readTable3(self, func, data): n = 0 ndata = len(data) while ndata - n >= 40: eData = data[n:n + 40] out = unpack('iffiiiiiff', eData) (sid, x1, x2, a, a, a, a, a, x, y) = out dataIn = [sid, x1, x2] n += 40 while 1: (xInt, yInt) = unpack('ii', data[n:n + 8]) (x, y) = unpack('ff', data[n:n + 8]) n += 8 if [xInt, yInt] != [-1, -1]: break else: dataIn += [x, y] dataIn += [x, y] table = func(None, out) self.add_table(table) return len(data)
#TABLEDR
[docs] def readTableM1(self, data, n): """ TABLEM1(105,1,93) - the marker for Record 9 """ self.skippedCardsFile.write('skipping TABLEM1 in DIT\n') return #print("reading TABLED1") func = TABLEM1 n = self.readTable1(func, data) return n
[docs] def readTableM2(self, data, n): """ TABLEM2(205,2,94) - the marker for Record 10 """ #print("reading TABLEM2") func = TABLEM2 n = self.readTable2(func, data) return n
[docs] def readTableM3(self, data, n): """ TABLEM3(305,3,95) - the marker for Record 11 """ #print("reading TABLED3") func = TABLEM3 n = self.readTable3(func, data) return n
[docs] def readTableM4(self, data, n): """ TABLEM4(405,4,96) - the marker for Record 12 """ #print("reading TABLED3") func = TABLEM4 n = self.readTable4(func, data) return n
#TABLES1 #TABLEST #TABRND1 #TABRNDG