Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Kanten über Python Seeden

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:  Kanten über Python Seeden (1355 mal gelesen)
Harr
Mitglied
student


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

Beiträge: 36
Registriert: 11.08.2011

erstellt am: 07. Jan. 2013 15:08    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


Kanten.jpg

 
Hallo zusammen!

Ich habe ein recht großes komplexes Modell erstellt, welches aus sehr vielen Parts und somit noch mehr Kanten besteht!
Im Anhang befindet sich ein Bildausschnitt aus diesem Modell.

Diese Kanten sollen jetzt über Python mit Seeds versetzt werden.
Folgenden Code habe ich mir dafür erstellt:

Code:

Liste1 = []                                                                   
loop = loop + 1                                                               
yKriteriumMin = ts+1                                                          
yKriteriumMax = Quaderlaenge-1                                                
xKriteriumMin = ls+aw*2/2**(0.5)-Quaderbreite/2+1                             
xKriteriumMax = ls+aw*2/2**(0.5)+Quaderbreite/2-1                             
                                                                              
                                                                              
for Kante in i.edges:                                                         
    v=Kante.getVertices()                                                     
    for vertex in v:                                                          
        coords=i.vertices[vertex].pointOn                                     
        if coords[0][1]>yKriteriumMin and coords[0][1]<yKriteriumMax:         
           if coords[0][0]>xKriteriumMin and coords[0][0]<xKriteriumMax:      
             if Liste1.count(Kante.index)<1:                                  
                  Liste1.append(Kante.index)                                  
                                                                              
                                                                              
index = len(Liste1)                                                           
for k in range(index):                                                        
   Coordinat = i.edges[Liste1[k]].pointOn[0]                                  
   pickedEdges = e1.findAt(((Coordinat[0],Coordinat[1],Coordinat[2]), ))      
   try:                                                                       
         a2.seedEdgeBySize(edges=pickedEdges, size=2.0, deviationFactor=0.1,  
             constraint=FINER)                                                
   except:                                                                    
         print 'Versuch3 gescheitert'

Dieser Code sucht mir also alle Kanten in einem bestimmten Bereich aus und setzt die Seeds mit der Größe 2.0.

Dieser Code ist jedoch zu Ungenau!
Die "Kriterium" Variablen erhalten Werte die die Eckpunkte der Kanten im Koordinatensystem darstellen.

Es werden nicht immer die Kanten ausgewählt die durch die "Kriterium" Variablen eingegrenzt werden.

Kann mir bitte jemand einen Verbesserungsvorschlag geben?
Sollte ich die Kanten anders ansprechen?

Vielen Dank im Voraus !!

[Diese Nachricht wurde von Harr am 07. Jan. 2013 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: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 07. Jan. 2013 16:51    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 Harr 10 Unities + Antwort hilfreich

Wenn du in der erste for-Schleife die Kritierien prüfst, warum schreibst du die Kante dann in eine Liste anstatt gleich den Seed darauf anzuwenden? Damit sparst du dir die ganze zweite for-Schleife (welche übrigens auch noch Fragen aufwerfen würde).

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



Entwicklungsingenieur (m/w/d) Automotive
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte OEMs und Zulieferer der Automobilindustrie und übernehmen Verantwortung für komplexe Entwicklungsprojekte....
Anzeige ansehenEntwicklung
Harr
Mitglied
student


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

Beiträge: 36
Registriert: 11.08.2011

erstellt am: 14. Jan. 2013 13:55    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

Hi Mustaine,
vielen Dank für Deine Antwort!
Ich habe das ganze jetzt noch einmal etwas überarbeitet und viel im Code weggekürzt!!
Der erste Test dieses Codes lief ganz gut.

Hier einmal die gekürzte Version:

Code:
for Kante in i.edges:
  CoordX = i.edges[Kante.index].pointOn[0][0]
  CoordY = i.edges[Kante.index].pointOn[0][1] 
  CoordZ = i.edges[Kante.index].pointOn[0][2]       
  if CoordY > yKriteriumMin and CoordY < yKriteriumMax:         
    if CoordX > xKriteriumMin and CoordX < xKriteriumMax:     
        pickedEdges = e1.findAt(((CoordX,CoordY,CoordZ), ))   
        a2.seedEdgeBySize(edges=pickedEdges, size=2.0, deviationFactor=0.1, 
                constraint=FINER)                                   

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