Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Python Skript für Abaqus

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 Skript für Abaqus (3554 mal gelesen)
sportgangg
Mitglied


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

Beiträge: 4
Registriert: 17.08.2011

erstellt am: 17. Aug. 2011 15:36    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 allerseits,
Ich habe folgendes Problem:
Ich will ein Programm in Python schreiben welches vorhandene odb Dateien einliest und diese Dateien in der Reihenfolge des Einlesens wieder ausliest.
Das Ziel ist es am Ende Art Daumenkino in abaqus zu haben , welches das eindringen eines Fräsers in ein Metallteil darstellt.
Ich wollte das Programm folgendermaßen aufbauen:
1.) Eine while schleife öffnet die vorhandenen odbs
2.)Diese Dateien werden in einem Array gespeichert
3.) Das Array wird ausgelesen in gleicher Reihenfolge wie es eingelesen wurde
Nun habe ich folgende Probleme weil ich das erste mal mit Python programmiere:
1.)Ich will die odbs öffnen aber sämtliche Befehle die ich in der abaqus Manual finde funktionieren nicht.Ich bräuchte jemanden der mir sagt wie ich die while schleife programmiere mit den eingelesenen odbs
2.) wie ich ein array erstelle weiß ich ,auch wie man elemente hinzufügt!Allerdings hab ich keinen Plan ,wie man die Dateien aus der Schleife in das array bekommt!
Wäre echt klasse wenn man jemand mir hier helfen könnte
Gruß

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

dabauer82
Mitglied



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

Beiträge: 121
Registriert: 22.11.2007

Pro/E WiFi3 M050
Win 7
ABQ 6-14

erstellt am: 17. Aug. 2011 15:57    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 sportgangg 10 Unities + Antwort hilfreich

Lass mal das auf dich wirken:

Code:

# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
from caeModules import *
from math import *
import __main__

from datetime import datetime, date, time

def ODBPath():
    import section
    import regionToolset
    import displayGroupMdbToolset as dgm
    import part
    import material
    import assembly
    import step
    import interaction
    import load
    import mesh
    import job
    import sketch
    import visualization
    import xyPlot
    import displayGroupOdbToolset as dgo
    import connectorBehavior
    import math

myFolder = 'C:/Temp/'
myFile = 'ZM_G15X5T2_1HG6_P250_D70_V70_M5k-1.odb'
myOdbPath = myFolder+myFile
myOdbFile = session.openOdb(name=myOdbPath, readOnly=True)


und damit kannst du dann loslegen und deine ODB auslesen.

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: 18. Aug. 2011 09:56    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 sportgangg 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von sportgangg:
Nun habe ich folgende Probleme weil ich das erste mal mit Python programmiere:
1.)Ich will die odbs öffnen aber sämtliche Befehle die ich in der abaqus Manual finde funktionieren nicht.Ich bräuchte jemanden der mir sagt wie ich die while schleife programmiere mit den eingelesenen odbs
2.) wie ich ein array erstelle weiß ich ,auch wie man elemente hinzufügt!Allerdings hab ich keinen Plan ,wie man die Dateien aus der Schleife in das array bekommt!

1. Wozu die while-Schleife? Geh doch einfach mit einer for-Schleife duch alle Elemente der Liste.

Code:
for x in liste:
    mach was mit x

2. Du willst etwas an die Liste anhängen? listenname.append(element)

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

sportgangg
Mitglied


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

Beiträge: 4
Registriert: 17.08.2011

erstellt am: 18. Aug. 2011 10:40    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 nochmal,
Ersteinmal Vielen Dank für die Antworten!
@Mustaine ich wollte eine while Schleife nehmen weil ich eine Variable Anzahl von odbs habe (s0 ca zw 120 u 150)
Geht das auch mit der for schleife ?
@erster Beitrag:
Sehe ich das richtig das ich diese pfaddefinition für jedes odb machen müsste?
Sorry für die nachfragen aber ich bin noch komplett neu in der Materie
Merci

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

dabauer82
Mitglied



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

Beiträge: 121
Registriert: 22.11.2007

Pro/E WiFi3 M050
Win 7
ABQ 6-14

erstellt am: 18. Aug. 2011 10:46    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 sportgangg 10 Unities + Antwort hilfreich

Ich bin mir nicht 100% sicher aber ich glaube das ABQ nur eine ODB-Session verwalten kann, daher müsstest du in der Tat dein Auslesen nacheinander durchführen und hierfür jede ODB nacheinander öffnen. Aber ggf. kann jmd anderes hierzu noch etwas sagen.

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: 18. Aug. 2011 11:37    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 sportgangg 10 Unities + Antwort hilfreich

Eine for-Schleife geht durch alle Einträge einer Liste, egal wieviele es sind.

Das aktuelle Arbeitsverzeichnis bekommt man mit os.getcwd(). Alle Datei in einem Pfad/Ordner dann mit os.listdir(pfad)

Man kann beliebeig viele odbs öffnen, aber natürlich muss man angeben mit welcher man nun bestimmte Aktionen machen möchte.

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

sportgangg
Mitglied


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

Beiträge: 4
Registriert: 17.08.2011

erstellt am: 04. Okt. 2011 12:16    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 nochmal zusammen,
Mir ist nun klar ,dass ich die odbs in ne liste machen will und diese liste dann mit einer for schleife auslesen will!Wie ich ne liste erstelle ist mir klar und auch wie ich Elemente dranhänge!
Was mir immernoch schleierhaft ist wie ich meine odbs im Endeffekt bekomme
Könnte mir jemand nen Code schreiben sagen wir meine odbs liegen im Ordner:
C:/Ordner 1
Mein Files heißen :Odb1,odb2 ,odb3
Ich weiß das ich irgendwas mit os.getcwd machen muss aber so ganz is mir das noch net klar
Merci

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: 04. Okt. 2011 13:06    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 sportgangg 10 Unities + Antwort hilfreich

Code:

import os


inputs = []

pfad = 'c:\Ordner 1'
dateiliste = os.listdir(pfad)

for datei in dateiliste:
    if datei.endswith('.odb'):
        inputs.append(datei)
       
print inputs


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

sportgangg
Mitglied


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

Beiträge: 4
Registriert: 17.08.2011

erstellt am: 23. Jan. 2012 13:24    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 ,
Also das funktioniert jetzt soweit hab es in die Abaqus kommandozeile eingegeben ,ich will mir diese odbs in bildform anzeigen lassen?
Wie ist das denn möglich?
Greetz

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: 24. Jan. 2012 10:24    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 sportgangg 10 Unities + Antwort hilfreich

So wie man es auch manuell machen würde: Du verwendest die Python-Befehle um CAE zu starten, die odb zu öffnen und ein Plot zu generieren. welche Befehle das sind bekommst du ja über das Replay-File oder ein aufgezeichnetes Makro raus.

[Diese Nachricht wurde von Mustaine am 24. Jan. 2012 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