Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Python Skript - SmallEdges - Abfrage

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 - SmallEdges - Abfrage (433 mal gelesen)
  
Die Gewinne der Zukunft werden mit intelligenten, autonomen Elektrofahrzeugen eingefahren. (3DEXPERIENCE)
runny
Mitglied



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

Beiträge: 33
Registriert: 06.09.2014

Creo Parametric 3.0 (Student Edition)
Keyshot 6 Pro
Abaqus 6.14-5
i7 5820k @3,3Ghz
nVidia GTX 750Ti
32GB DDR4-2400
Windows 10 Pro

erstellt am: 15. Jan. 2016 17:10    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,
Im Rahmen meiner Bachelorarbeit bin ich bei einer automatisierten Simulation mit einem Pythonskript auf folgendes Problem gestoßen:

Es werden in den CAD-Daten SmallEdges gesucht, die anschließend beseitigt werden. Jetzt habe ich bei einigen Modellen den Fall, dass keine SmallEdges in der entsprechenden Größe auftreten und die Modellerstellung abbricht, wenn er diese löschen möchte.
Ich würde nun gerne eine Abfrage einbauen, ob SmallEdges gefunden wurden - hat hierzu jemand einen Tipp wie ich das umsetzen kann?

Meine Pythonkenntnisse sind eher beschränkt und ich ändere nur sporadisch etwas im Skript. In der AbaqusDoku habe ich nichts gefunden, bin also für sämtliche Tipps dankbar!

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: 3393
Registriert: 04.08.2005

Abaqus

erstellt am: 15. Jan. 2016 17:52    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 runny 10 Unities + Antwort hilfreich

In Python gibt es try - except, womit man Befehle ausführen und ggf. auftretende Fehler abfangen kann.

https://docs.python.org/2/tutorial/errors.html

[Diese Nachricht wurde von Mustaine am 15. Jan. 2016 editiert.]

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

runny
Mitglied



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

Beiträge: 33
Registriert: 06.09.2014

Creo Parametric 3.0 (Student Edition)
Keyshot 6 Pro
Abaqus 6.14-5
i7 5820k @3,3Ghz
nVidia GTX 750Ti
32GB DDR4-2400
Windows 10 Pro

erstellt am: 19. Jan. 2016 22:12    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

Danke, das hat mir schon gut weitergeholfen!

Jetzt wäre noch die Frage um was für einen Fehler es sich handelt, der hier auftaucht, damit ich ihn in der except Bedingung umgehen kann?

Die Fehlermeldung in Abaqus gibt folgendes aus:

File "H:\AbaqusArbeitsverzeichnis\AutomaticGearSimulation.py", line 338, in __init__
    self.RepairGeometry(part)
File "H:\AbaqusArbeitsverzeichnis\AutomaticGearSimulation.py", line 451, in RepairGeometry
    part.RepairSmallEdges(edgeList=smallEdges)
No entities selected.

Der Code sieht so aus:

#kurze Kanten finden
smallEdges = ()
for e in part.edges:
if e.getSize(printResults=False) < self.config["Gear"]["SmallEdges"]:
smallEdges += e,

#kurze Kanten vereinen
try:
part.RepairSmallEdges(edgeList=smallEdges)
break
except: pass


edit:
Habe jetzt mit except ohne Angabe des Fehlers (s.o.) mein Problem lösen können. Schätze das ist unsauber so, also falls es doch noch Rückmeldung zum Fehler gibt wäre das super!

[Diese Nachricht wurde von runny am 19. Jan. 2016 editiert.]

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: 3393
Registriert: 04.08.2005

Abaqus

erstellt am: 19. Jan. 2016 23:21    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 runny 10 Unities + Antwort hilfreich

Man kann das except problemlos ohne spezifische Errorabfrage nutzen.

Die genaue Abfrage braucht man eigentlich nur, wenn man einem fremden Nutzer einen Hinweis auf eine Fehlerursache geben möchte.

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)2020 CAD.de | Impressum | Datenschutz