Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Python Script Schleife um automatische sets in eine Fläche umzuwandeln

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Python Script Schleife um automatische sets in eine Fläche umzuwandeln (657 / mal gelesen)
yustnlight
Mitglied



Sehen Sie sich das Profil von yustnlight an!   Senden Sie eine Private Message an yustnlight  Schreiben Sie einen Gästebucheintrag für yustnlight

Beiträge: 40
Registriert: 28.01.2005

erstellt am: 12. Apr. 2017 17:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,
über die CATIA associativ Schnittstelle importiere ich ein product via eaf file nach ABAQUS.
Darin enthalten sind immer zwei feste parts (lower-half, upper half) sowie unterschiedliche Schrauben parts, welche wiederum eine unterschiedliche Anzahl haben können. Die Schraubenlöcher richten sich demnach an die Zahl der Schrauben.

Beispiel: 2 Schrauben m42 + 3 Schrauben m72
(beim nächsten Modell könnten auch 7 Schrauben parts unterschiedlichster Anzahl vorkommen!)

Die parts besitzen dadurch folgende sets:

Für lower half:
-CATIA_thread
-CATIA_thread1

Für upper half:
-CATIA_thread
-CATIA_thread1
-CATIA_thread2

Für m42:
-CATIA_thread

Für m72:
-CATIA_thread

Ich möchte für einen *tie folgende Flächen im Assembly ansprechen und diese via python generieren:

- tie-01-thread-master = alle sets von lower-half und upper-half.
- tie-02-thread-slave  = alle sets von den schrauben

Ein einfaches python script habe ich geniert bekommen welches auch läuft! Nun geht es an die if Schleife um alle
sets in faces umzuwandeln und die dann gezielt über eine boolean operation zusammenzufassen.


Note: Meine Bauteile spreche ich im code via list an ist aber im Beispiel nicht berücksichtigt.

Hier mein Code Teil ohne if Schleifen
#####################################
# create surfaces TEST run!
#####################################
my_parts=['upper-half','lower-half', 'm42']

modelName = 'tms-ss'

m=mdb.models[modelName]
a=m.rootAssembly

my_parts=['upper-half','lower-half', 'm42']
m=mdb.models[modelName]
a=m.rootAssembly

myPart=m.parts['lower-half']

#sets in faces umwandeln im part
mySet  =myPart.sets['CATIA_thread'+'']
myFaces=mySet.faces
myPart.Surface(side2Faces=myFaces,name='thread')

mySet=myPart.sets['CATIA_thread'+'1']
myFaces=mySet.faces
myPart.Surface(side2Faces=myFaces,name='thread'+'1')

#surface im assembly generieren
a.SurfaceByBoolean(name='tie-01-thread-master',
    surfaces=(
    a.allInstances['lower-half'+'1'].surfaces['thread'],
    a.allInstances['lower-half'+'1'].surfaces['thread'+'1']))

Ich bitte um Hilfe mir so eine automische schleife einzubauen. Bin durch trail & error echt am verzweifeln!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 13. Apr. 2017 13:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für yustnlight 10 Unities + Antwort hilfreich

Wenn du in CATIA vernünftige Namen für die Sets vergibst, ist die Sache recht leicht. Die Region an der Schraube ist z.B. thread1 und die passende Bohrung hole1. Dann weiter mit thread2 und hole2, usw.

In Python wandelst du das in Surfaces* um, iterierst über alle Surfaces, nimmst die mit den String 'thread', fragst die Nummer am Ende ab und weißt damit die passende hole-Surface. Dann kannst du das Tie erstellen.


*Das umwandeln von Sets in Surfaces solltest du dir in Ruhe anschauen. Eine face in einem Set hat keine Richtungsinformation. Eine Surface hat aber eine. Da musst du mal prüfen, ob es in CAE eine Konvention gibt, die immer eingehalten wird. Z.B. die Flächen an einem Solid zeigen immer mit Seite 1 nach außen. Falls das nicht konsistent so ist, musst du die Normale der Fläche abfragen. Den Befehl dafür findest du im Scripting Reference Manual.

[Diese Nachricht wurde von Mustaine am 13. Apr. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz