Autor
|
Thema: RemoveFaces durch findAt (1051 mal gelesen)
|
Harr Mitglied student
Beiträge: 36 Registriert: 11.08.2011
|
erstellt am: 12. Jul. 2012 21:06 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie in dem Bild unten gezeigt habe ich ein kleines Globales Modell über Python erstellt, aus dem ich jetzt ein Submodell erstellen möchte (das rote Kästchen). Ich habe mich dafür entschieden im Viewport Module:Part die restlichen Faces mit folgenden Code rauszulöschen:
Code: p1 = mdb.models['Submodel'].parts['Global_quer'] session.viewports['Viewport: 1'].setValues(displayedObject=p1) a = mdb.models['Submodel'].parts['Global_quer'] face1 = a.faces.findAt((2.,0.,tP+90.),) face2 = a.faces.findAt((1,1,0),) face3 = a.faces.findAt((1.,0.,1.),) FaceParts = (face1,face2,face3) for i in range(0,3): a.RemoveFaces(faceList = f[FaceParts[i].index:FaceParts[i].index+1], deleteCells=False)
Es handelt sich hierbei um eine ParameterStudie... Obwohl sich die Dimensionen ändern, dürfte sich doch eigentlich nicht der Index der einzelnen Flächen ändern, oder? Die Reihenfolge wie das GlobalModell erstellt wird, ist doch auch immer die Selbe! Und trotzdem bekomme ich durch manuelles löschen der Faces, aus unterschiedlich grossen GlobalModellen, aus der abaqus.py zwei verschiedene Befehle raus:
Code: p.RemoveFaces(faceList = f[6:7]+f[8:9]+f[10:15]+f[16:17]+f[18:19]+f[20:22]+\ f[25:32], deleteCells=False)
Code: p.RemoveFaces(faceList = f[1:2]+f[3:4]+f[5:12]+f[14:15]+f[16:17]+f[18:24]+\ f[25:28]+f[29:32], deleteCells=False)
Ich dachte man kann durch einen Punkt auf einer Ebene den Index der Fläche finden und somit diese Fläche löschen. Doch anscheinend werden nicht genau die Flächen gelöscht, die ich durch die Koordinaten mit z.B. "face3 = a.faces.findAt((1.,0.,1.),)" eingebe. Ist die Methode findAt hier zu umständlich oder sogar zu ungenau? Bitte um Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Harr Mitglied student
Beiträge: 36 Registriert: 11.08.2011
|
erstellt am: 13. Jul. 2012 14:06 <-- editieren / zitieren --> Unities abgeben:
Eine Nacht mal drüber schlafen... Da die Flächen anscheinend nicht mit findAt in meinem Skript angesprochen werden konnten habe ich es jetzt mit getClosest versucht und taste mich so also an mein Submodel ran. Der Code sieht jetzt so aus: Code: for i in range(12): face1=a.faces.getClosest(coordinates=((0.0,0.0,0.0),)) a.RemoveFaces(faceList = f[face1[0][0].index:face1[0][0].index+1], deleteCells=False)
eigentlich auch viel besser^^ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|