| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
|
Autor
|
Thema: RemoveFaces durch findAt (1200 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 >>)
 |