def exteriorFaces(): if CTK.t == []: return if CTK.__MAINTREE__ <= 0: CTK.TXT.insert('START', 'Fail on a temporary tree.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return nzs = CPlot.getSelectedZones() if nzs == []: CTK.TXT.insert('START', 'Selection is empty.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return CTK.saveTree() CTK.t = C.addBase2PyTree(CTK.t, 'CONTOURS', 1) p = Internal.getNodesFromName1(CTK.t, 'CONTOURS') gnob = C.getNobOfBase(p[0], CTK.t) fail = False errors = [] for nz in nzs: nob = CTK.Nb[nz] + 1 noz = CTK.Nz[nz] try: ext = P.exteriorFaces(CTK.t[2][nob][2][noz]) ext = T.splitConnexity(ext) for i in ext: CTK.add(CTK.t, gnob, -1, i) except TypeError as e: # type d'element non reconnu fail = True errors += [0, str(e)] except ValueError: # empty set pass #C._fillMissingVariables(CTK.t) (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t) CTK.TKTREE.updateApp() if not fail: CTK.TXT.insert('START', 'Exterior faces done.\n') else: Panels.displayErrors(errors, header='Error: exteriorFaces') CTK.TXT.insert('START', 'Exterior faces fails for at least one zone.\n') CTK.TXT.insert('START', 'Warning: ', 'Warning') CPlot.render()
# - plaster (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Transform.PyTree as T import Post.PyTree as P import Geom.PyTree as D a = D.sphere((0, 0, 0), 1) a = T.subzone(a, (6, 1, 1), (50, 200, 1)) a = C.convertArray2Hexa(a) a = G.close(a) # contours c = P.exteriorFaces(a) cs = T.splitConnexity(c) # plaster hole p = G.plaster([cs[0]], [a]) t = C.newPyTree(['Sphere', 2, 'Contours', 1, 'Plaster', 2]) t[2][1][2].append(a) t[2][2][2] += cs t[2][3][2].append(p) C.convertPyTree2File(t, 'out.cgns')
# - splitConnexity (pyTree) - import KCore.test as test import Transform.PyTree as T import Geom.PyTree as D import Converter.PyTree as C # Non structure + champs a = D.text2D("CASSIOPEE") a = C.addVars(a, 'Density') a = C.initVars(a, 'centers:cellN', 1) B = T.splitConnexity(a) t = C.newPyTree(['Base', 2]) t[2][1][2] += B test.testT(t, 1)