~abdullah-tahiri-yo/freecadtesting/freecad-system-wide-macros

« back to all changes in this revision

Viewing changes to src/Mod/Fem/ccxFrdReader.py

  • Committer: Yorik van Havre
  • Author(s): fandaL
  • Date: 2015-12-03 20:50:06 UTC
  • Revision ID: git-v1:cf22522290fa126f0f55fe08570100f01f4842a8
FEM: frd mesh import rearrange repeating if

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
        if elements_found and (line[1:3] == "-1"):
82
82
            elem = int(line[4:13])
83
83
            elemType = int(line[14:18])
84
 
        #then the 8 id's for the HEXA8 element
85
 
        if elements_found and (line[1:3] == "-2") and elemType == 1:
86
 
            node_id_5 = int(line[3:13])
87
 
            node_id_6 = int(line[13:23])
88
 
            node_id_7 = int(line[23:33])
89
 
            node_id_8 = int(line[33:43])
90
 
            node_id_1 = int(line[43:53])
91
 
            node_id_2 = int(line[53:63])
92
 
            node_id_3 = int(line[63:73])
93
 
            node_id_4 = int(line[73:83])
94
 
            elements_hexa8[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8)
95
 
        #then the 6 id's for the PENTA6 element
96
 
        if elements_found and (line[1:3] == "-2") and elemType == 2:
97
 
            node_id_4 = int(line[3:13])
98
 
            node_id_5 = int(line[13:23])
99
 
            node_id_6 = int(line[23:33])
100
 
            node_id_1 = int(line[33:43])
101
 
            node_id_2 = int(line[43:53])
102
 
            node_id_3 = int(line[53:63])
103
 
            elements_penta6[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6)
104
 
        #then the 4 id's for the TETRA4 element
105
 
        if elements_found and (line[1:3] == "-2") and elemType == 3:
106
 
            node_id_2 = int(line[3:13])
107
 
            node_id_1 = int(line[13:23])
108
 
            node_id_3 = int(line[23:33])
109
 
            node_id_4 = int(line[33:43])
110
 
            elements_tetra4[elem] = (node_id_1, node_id_2, node_id_3, node_id_4)
111
 
        #then the 20 id's for the HEXA20 element
112
 
        if elements_found and (line[1:3] == "-2") and elemType == 4 and input_continues == False:
113
 
            node_id_5 = int(line[3:13])
114
 
            node_id_6 = int(line[13:23])
115
 
            node_id_7 = int(line[23:33])
116
 
            node_id_8 = int(line[33:43])
117
 
            node_id_1 = int(line[43:53])
118
 
            node_id_2 = int(line[53:63])
119
 
            node_id_3 = int(line[63:73])
120
 
            node_id_4 = int(line[73:83])
121
 
            node_id_13 = int(line[83:93])
122
 
            node_id_14 = int(line[93:103])
123
 
            input_continues = True
124
 
        elif elements_found and (line[1:3] == "-2") and elemType == 4 and input_continues == True:
125
 
            node_id_15 = int(line[3:13])
126
 
            node_id_16 = int(line[13:23])
127
 
            node_id_9 = int(line[23:33])
128
 
            node_id_10 = int(line[33:43])
129
 
            node_id_11 = int(line[43:53])
130
 
            node_id_12 = int(line[53:63])
131
 
            node_id_17 = int(line[63:73])
132
 
            node_id_18 = int(line[73:83])
133
 
            node_id_19 = int(line[83:93])
134
 
            node_id_20 = int(line[93:103])
135
 
            input_continues = False
136
 
            elements_hexa20[elem] = ( node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8, node_id_9, node_id_10, 
137
 
                                     node_id_11,node_id_12,node_id_13,node_id_14,node_id_15,node_id_16,node_id_17,node_id_18,node_id_19, node_id_20)
138
 
        #then the 15 id's for the PENTA15 element
139
 
        if elements_found and (line[1:3] == "-2") and elemType == 5 and input_continues == False:
140
 
            node_id_4 = int(line[3:13])
141
 
            node_id_5 = int(line[13:23])
142
 
            node_id_6 = int(line[23:33])
143
 
            node_id_1 = int(line[33:43])
144
 
            node_id_2 = int(line[43:53])
145
 
            node_id_3 = int(line[53:63])
146
 
            node_id_10 = int(line[63:73])
147
 
            node_id_11 = int(line[73:83])
148
 
            node_id_12 = int(line[83:93])
149
 
            node_id_13 = int(line[93:103])
150
 
            input_continues = True
151
 
        elif elements_found and (line[1:3] == "-2") and elemType == 5 and input_continues == True:
152
 
            node_id_14 = int(line[3:13])
153
 
            node_id_15 = int(line[13:23])
154
 
            node_id_7 = int(line[23:33])
155
 
            node_id_8 = int(line[33:43])
156
 
            node_id_9 = int(line[43:53])
157
 
            input_continues = False
158
 
            elements_penta15[elem] = ( node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8, node_id_9, node_id_10, 
159
 
                                      node_id_11,node_id_12,node_id_13,node_id_14,node_id_15)
160
 
        #then the 10 id's for the TETRA10 element
161
 
        if elements_found and (line[1:3] == "-2") and elemType == 6:
162
 
            node_id_2 = int(line[3:13])
163
 
            node_id_1 = int(line[13:23])
164
 
            node_id_3 = int(line[23:33])
165
 
            node_id_4 = int(line[33:43])
166
 
            node_id_5 = int(line[43:53])
167
 
            node_id_7 = int(line[53:63])
168
 
            node_id_6 = int(line[63:73])
169
 
            node_id_9 = int(line[73:83])
170
 
            node_id_8 = int(line[83:93])
171
 
            node_id_10 = int(line[93:103])
172
 
            elements_tetra10[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8, node_id_9, node_id_10)
173
 
        #then the 3 id's for the TRIA3 element
174
 
        if elements_found and (line[1:3] == "-2") and elemType == 7:
175
 
            node_id_1 = int(line[3:13])
176
 
            node_id_2 = int(line[13:23])
177
 
            node_id_3 = int(line[23:33])
178
 
            elements_tria3[elem] = (node_id_1, node_id_2, node_id_3)
179
 
        #then the 6 id's for the TRIA6 element
180
 
        if elements_found and (line[1:3] == "-2") and elemType == 8:
181
 
            node_id_1 = int(line[3:13])
182
 
            node_id_2 = int(line[13:23])
183
 
            node_id_3 = int(line[23:33])
184
 
            node_id_4 = int(line[33:43])
185
 
            node_id_5 = int(line[43:53])
186
 
            node_id_6 = int(line[53:63])
187
 
            elements_tria6[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6)
188
 
        #then the 4 id's for the QUAD4 element
189
 
        if elements_found and (line[1:3] == "-2") and elemType == 9:
190
 
            node_id_1 = int(line[3:13])
191
 
            node_id_2 = int(line[13:23])
192
 
            node_id_3 = int(line[23:33])
193
 
            node_id_4 = int(line[33:43])
194
 
            elements_quad4[elem] = (node_id_1, node_id_2, node_id_3, node_id_4)
195
 
        #then the 8 id's for the QUAD8 element
196
 
        if elements_found and (line[1:3] == "-2") and elemType == 10:
197
 
            node_id_1 = int(line[3:13])
198
 
            node_id_2 = int(line[13:23])
199
 
            node_id_3 = int(line[23:33])
200
 
            node_id_4 = int(line[33:43])
201
 
            node_id_5 = int(line[43:53])
202
 
            node_id_6 = int(line[53:63])
203
 
            node_id_7 = int(line[63:73])
204
 
            node_id_8 = int(line[73:83])
205
 
            elements_quad8[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8)
206
 
        #then the 2 id's for the SEG2 element
207
 
        if elements_found and (line[1:3] == "-2") and elemType == 11:
208
 
            node_id_1 = int(line[3:13])
209
 
            node_id_2 = int(line[13:23])
210
 
            elements_seg2[elem] = (node_id_1, node_id_2)
 
84
        #then import elements
 
85
        if elements_found and (line[1:3] == "-2"):
 
86
            if elemType == 1: # HEXA8 element
 
87
                node_id_5 = int(line[3:13])
 
88
                node_id_6 = int(line[13:23])
 
89
                node_id_7 = int(line[23:33])
 
90
                node_id_8 = int(line[33:43])
 
91
                node_id_1 = int(line[43:53])
 
92
                node_id_2 = int(line[53:63])
 
93
                node_id_3 = int(line[63:73])
 
94
                node_id_4 = int(line[73:83])
 
95
                elements_hexa8[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8)
 
96
            elif elemType == 2: # PENTA6 element
 
97
                node_id_4 = int(line[3:13])
 
98
                node_id_5 = int(line[13:23])
 
99
                node_id_6 = int(line[23:33])
 
100
                node_id_1 = int(line[33:43])
 
101
                node_id_2 = int(line[43:53])
 
102
                node_id_3 = int(line[53:63])
 
103
                elements_penta6[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6)
 
104
            elif elemType == 3:  # TETRA4 element
 
105
                node_id_2 = int(line[3:13])
 
106
                node_id_1 = int(line[13:23])
 
107
                node_id_3 = int(line[23:33])
 
108
                node_id_4 = int(line[33:43])
 
109
                elements_tetra4[elem] = (node_id_1, node_id_2, node_id_3, node_id_4)
 
110
            elif elemType == 4 and input_continues == False: # HEXA20 element (1st line)
 
111
                node_id_5 = int(line[3:13])
 
112
                node_id_6 = int(line[13:23])
 
113
                node_id_7 = int(line[23:33])
 
114
                node_id_8 = int(line[33:43])
 
115
                node_id_1 = int(line[43:53])
 
116
                node_id_2 = int(line[53:63])
 
117
                node_id_3 = int(line[63:73])
 
118
                node_id_4 = int(line[73:83])
 
119
                node_id_13 = int(line[83:93])
 
120
                node_id_14 = int(line[93:103])
 
121
                input_continues = True
 
122
            elif elemType == 4 and input_continues == True: # HEXA20 element (2nd line)
 
123
                node_id_15 = int(line[3:13])
 
124
                node_id_16 = int(line[13:23])
 
125
                node_id_9 = int(line[23:33])
 
126
                node_id_10 = int(line[33:43])
 
127
                node_id_11 = int(line[43:53])
 
128
                node_id_12 = int(line[53:63])
 
129
                node_id_17 = int(line[63:73])
 
130
                node_id_18 = int(line[73:83])
 
131
                node_id_19 = int(line[83:93])
 
132
                node_id_20 = int(line[93:103])
 
133
                input_continues = False
 
134
                elements_hexa20[elem] = ( node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8, node_id_9, node_id_10, 
 
135
                                         node_id_11,node_id_12,node_id_13,node_id_14,node_id_15,node_id_16,node_id_17,node_id_18,node_id_19, node_id_20)
 
136
            elif elemType == 5 and input_continues == False: # PENTA15 element (1st line)
 
137
                node_id_4 = int(line[3:13])
 
138
                node_id_5 = int(line[13:23])
 
139
                node_id_6 = int(line[23:33])
 
140
                node_id_1 = int(line[33:43])
 
141
                node_id_2 = int(line[43:53])
 
142
                node_id_3 = int(line[53:63])
 
143
                node_id_10 = int(line[63:73])
 
144
                node_id_11 = int(line[73:83])
 
145
                node_id_12 = int(line[83:93])
 
146
                node_id_13 = int(line[93:103])
 
147
                input_continues = True
 
148
            elif elemType == 5 and input_continues == True: # PENTA15 element (2nd line)
 
149
                node_id_14 = int(line[3:13])
 
150
                node_id_15 = int(line[13:23])
 
151
                node_id_7 = int(line[23:33])
 
152
                node_id_8 = int(line[33:43])
 
153
                node_id_9 = int(line[43:53])
 
154
                input_continues = False
 
155
                elements_penta15[elem] = ( node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8, node_id_9, node_id_10, 
 
156
                                          node_id_11,node_id_12,node_id_13,node_id_14,node_id_15)
 
157
            elif elemType == 6: # TETRA10 element
 
158
                node_id_2 = int(line[3:13])
 
159
                node_id_1 = int(line[13:23])
 
160
                node_id_3 = int(line[23:33])
 
161
                node_id_4 = int(line[33:43])
 
162
                node_id_5 = int(line[43:53])
 
163
                node_id_7 = int(line[53:63])
 
164
                node_id_6 = int(line[63:73])
 
165
                node_id_9 = int(line[73:83])
 
166
                node_id_8 = int(line[83:93])
 
167
                node_id_10 = int(line[93:103])
 
168
                elements_tetra10[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8, node_id_9, node_id_10)
 
169
            elif elemType == 7: # TRIA3 element
 
170
                node_id_1 = int(line[3:13])
 
171
                node_id_2 = int(line[13:23])
 
172
                node_id_3 = int(line[23:33])
 
173
                elements_tria3[elem] = (node_id_1, node_id_2, node_id_3)
 
174
            elif elemType == 8: # TRIA6 element
 
175
                node_id_1 = int(line[3:13])
 
176
                node_id_2 = int(line[13:23])
 
177
                node_id_3 = int(line[23:33])
 
178
                node_id_4 = int(line[33:43])
 
179
                node_id_5 = int(line[43:53])
 
180
                node_id_6 = int(line[53:63])
 
181
                elements_tria6[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6)
 
182
            elif elemType == 9: # QUAD4 element
 
183
                node_id_1 = int(line[3:13])
 
184
                node_id_2 = int(line[13:23])
 
185
                node_id_3 = int(line[23:33])
 
186
                node_id_4 = int(line[33:43])
 
187
                elements_quad4[elem] = (node_id_1, node_id_2, node_id_3, node_id_4)
 
188
            elif elemType == 10: # QUAD8 element
 
189
                node_id_1 = int(line[3:13])
 
190
                node_id_2 = int(line[13:23])
 
191
                node_id_3 = int(line[23:33])
 
192
                node_id_4 = int(line[33:43])
 
193
                node_id_5 = int(line[43:53])
 
194
                node_id_6 = int(line[53:63])
 
195
                node_id_7 = int(line[63:73])
 
196
                node_id_8 = int(line[73:83])
 
197
                elements_quad8[elem] = (node_id_1, node_id_2, node_id_3, node_id_4, node_id_5, node_id_6, node_id_7, node_id_8)
 
198
            elif elemType == 11: # SEG2 element
 
199
                node_id_1 = int(line[3:13])
 
200
                node_id_2 = int(line[13:23])
 
201
                elements_seg2[elem] = (node_id_1, node_id_2)
211
202
 
212
203
        #Check if we found new eigenmode
213
204
        if line[5:10] == "PMODE":