[PYTHON] [Blender] So ermitteln Sie die Auswahlreihenfolge von Scheitelpunkten, Seiten und Flächen eines Objekts

Ich werde vorstellen, wie Sie die ausgewählte Reihenfolge der Scheitelpunkte, Seiten und Flächen eines Objekts ermitteln, wenn Sie eine neue Funktion des Blender-Plug-Ins hinzufügen. Es werden nur diejenigen ausgewählt, die durch Klicken mit der rechten Maustaste ausgewählt wurden (unter der Annahme des Standard-Tastenlayouts im Folgenden). Mit der Taste B können Sie mehrere Scheitelpunkte, Seiten und Flächen gleichzeitig auswählen. Derzeit können Sie die Auswahlreihenfolge jedoch nicht mit Blender abrufen.

Quellcode

Das folgende Skript ruft die Auswahlreihenfolge für das aktuell ausgewählte Objekt ab. Vergessen Sie nicht, zusätzlich zu bpy auch bmesh zu importieren, um auf die interne Struktur des Mixers zuzugreifen. Es enthält eine versionierungsabhängige Verarbeitung für Blender, die ab Blender 2.73 erforderlich ist. Weitere Informationen finden Sie unter [http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.73/Addons](http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.73] / Addons).

Holen Sie sich die Reihenfolge der Gesichtsauswahl

get_face_selection_sequence.py


import bpy
import bmesh   #Benötigt zusätzlichen Import

obj = bpy.context.active_object

bpy.ops.object.mode_set(mode='EDIT')  #Die Verarbeitung muss im EDIT-Modus erfolgen
bm = bmesh.from_edit_mesh(obj.data)

#Mixer-Version ist 2.Erforderlich bei 73 oder höher
if bpy.app.version[0] >= 2 and bpy.app.version[1] >= 73:
    bm.faces.ensure_lookup_table()

#Gesichtsauswahlreihenfolge anzeigen
for e in bm.select_history:
    if isinstance(e, bmesh.types.BMFace) and e.select:
        print(repr(e))

Holen Sie sich die Auswahlreihenfolge der Kanten

get_edge_selection_sequence.py


import bpy
import bmesh   #Benötigt zusätzlichen Import

obj = bpy.context.active_object

bpy.ops.object.mode_set(mode='EDIT')  #Die Verarbeitung muss im EDIT-Modus erfolgen
bm = bmesh.from_edit_mesh(obj.data)

#Mixer-Version ist 2.Erforderlich bei 73 oder höher
if bpy.app.version[0] >= 2 and bpy.app.version[1] >= 73:
    bm.edges.ensure_lookup_table()

#Zeigen Sie die Auswahlreihenfolge der Seiten an
for e in bm.select_history:
    if isinstance(e, bmesh.types.BMEdge) and e.select:
        print(repr(e))

Holen Sie sich die Auswahlreihenfolge der Eckpunkte

get_vert_selection_sequence.py


import bpy
import bmesh   #Benötigt zusätzlichen Import

obj = bpy.context.active_object

bpy.ops.object.mode_set(mode='EDIT')  #Die Verarbeitung muss im EDIT-Modus erfolgen
bm = bmesh.from_edit_mesh(obj.data)

#Mixer-Version ist 2.Erforderlich bei 73 oder höher
if bpy.app.version[0] >= 2 and bpy.app.version[1] >= 73:
    bm.verts.ensure_lookup_table()

#Zeigen Sie die Auswahlreihenfolge der Scheitelpunkte an
for e in bm.select_history:
    if isinstance(e, bmesh.types.BMVert) and e.select:
        print(repr(e))

Ausführungsergebnis

Das Ergebnis der Ausführung ist unten dargestellt.

result.py


>>> for e in bm.select_history:
...     if isinstance(e, bmesh.types.BMFace) and e.select:
...         print(repr(e))
<BMFace(0x108482cf0), index=4, totverts=4>
<BMFace(0x108482c80), index=2, totverts=4>
>>>
>>> for e in bm.select_history:
...     if isinstance(e, bmesh.types.BMEdge) and e.select:
...         print(repr(e))
<BMEdge(0x11241f380)>, index=11, verts=(0x10849a960/6, 0x10849a998/7)>
<BMEdge(0x11241f1a0)>, index=5, verts=(0x10849a880/2, 0x10849a8b8/3)>
>>>
>>> for e in bm.select_history:
...     if isinstance(e, bmesh.types.BMVert) and e.select:
...         print(repr(e))
<BMVert(0x10849a960), index=6>
<BMVert(0x10849a8f0), index=4>
>>>

Referenzinformationen

Recommended Posts

[Blender] So ermitteln Sie die Auswahlreihenfolge von Scheitelpunkten, Seiten und Flächen eines Objekts
[Blender] So legen Sie die Auswahlelemente von EnumProperty dynamisch fest
Ruft die Attribute eines Objekts ab
Wie Sie die interne Struktur eines Objekts in Python kennen
[Python] So erhalten Sie den ersten und den letzten Tag des Monats
Eine Einführung in die Objektorientierung: Ändern Sie den internen Status eines Objekts
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
So erhalten Sie einen Überblick über Ihre Daten in Pandas
[Linux] [C / C ++] So ermitteln Sie den Wert der Rücksprungadresse einer Funktion und den Funktionsnamen des Aufrufers
So erhalten Sie den NTP-Servernamen per DHCP und legen ihn fest
So entfernen Sie die "Tags müssen ein Array von Hashes sein." Fehler in Qiita API
So erhalten Sie den Pixelwert des Punkts aus dem Satellitenbild, indem Sie den Breiten- und Längengrad angeben
So erhalten Sie die ID von Type2Tag NXP NTAG213 mit nfcpy
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
[EC2] So installieren Sie Chrome und den Inhalt jedes Befehls
So erhalten Sie die Python-Version
Blender hat keine Objektauswahlreihenfolge
So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
Ich habe zusammengefasst, wie die Boot-Parameter von GRUB und GRUB2 geändert werden
Ich habe ein npm-Paket erstellt, um die ID der IC-Karte mit Raspberry Pi und PaSoRi zu erhalten
[Python Kivy] So erhalten Sie den Dateipfad durch Ziehen und Ablegen
[Python] So legen Sie die Position und Größe der Fensteranzeige von matplotlib fest
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Python Hinweis: Wenn Sie die Attribute eines Objekts kennen möchten
Klicken Sie auf die Selenium-Links, um die Elemente der einzelnen Seiten abzurufen
__Getattr__ und __getattribute__, um die Erfassung von Objektattributen durch Punkte anzupassen
Versuchen Sie, den Hintergrund und das sich bewegende Objekt des Videos mit OpenCV zu trennen
So überprüfen Sie die Version von Django
So erhalten Sie eine farbige Ausgabe an die Konsole
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
So machen Sie VS Code auf die venv-Umgebung und ihre Vorteile aufmerksam
[NNabla] So erhalten Sie die Ausgabe (Variable) der mittleren Schicht des erstellten Netzwerks
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
Ich möchte die Ergebnisse von% time, %% time usw. in einem Objekt (Variable) speichern.
Hinweis: So erhalten Sie den letzten Tag des Monats mit Python (hinzugefügt am ersten Tag des Monats)
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
So berechnen Sie die Volatilität einer Marke
So finden Sie den Bereich des Boronoi-Diagramms
So erhalten Sie Hilfe in einer interaktiven Shell
So erhalten Sie Elemente vom Typ Wörterbuch von Python 2.7
So erhalten Sie die Dateien im Ordner [Python]
So erreichen Sie den Zugriff durch Attribut und Beibehaltung der Einfügereihenfolge in Python dict
Erste Schritte mit Visual Studio Online ~ Das Ende der Ära der Umgebungskonstruktion ~
Wie man den Satz von Persival mit Matplotlib und der Fourier-Transformation (FFT) von scipy bestätigt
Übergeben Sie ein Array von PHP an PYTHON und führen Sie eine Numpy-Verarbeitung durch, um das Ergebnis zu erhalten
Holen Sie sich den Titel der Yahoo News und analysieren Sie die Stimmung
So erstellen Sie einen Artikel über die Befehlszeile
Wie man die Portnummer des xinetd-Dienstes kennt
So erhalten Sie den Variablennamen selbst in Python
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
[Blender] Zusammenfassung der Installation / Aktualisierung / Deinstallation von Add-Ons
Ich habe mir die Versionen von Blender und Python angesehen
Verwendung des Befehls grep und häufiger Samples