← Back to CoursesBlendercursus
Blendercursus
46. Python Console
schoolium · Blendercursus
Blendercursus
46. Python Console
DDeel D · De editors

Hoofdstuk 46Python Console

Een interactieve Python-prompt binnen Blender zelf, direct op de lopende sessie

De Python Console is een interactieve regel-voor-regel Python-prompt met directe toegang tot de lopende Blender-sessie (bpy). Waar de Text Editor voor complete scripts dient, is dit de plek om snel één ding uit te proberen of een waarde op te vragen.

4× uitleg1× naslag1× zelf doen1 oefenbestand4 beelden
beeld-tegel-d046-python-consoleRECCONCEPT00:00:00:00schoolium
Uitleg · 46.1

Waarvoor de Python Console dient

1/6

Typ een regel Python en druk Enter: het resultaat verschijnt meteen eronder, net als in elke interactieve Python-shell. Omdat de console in dezelfde sessie draait als de rest van Blender, zie je effecten direct terug in de 3D-viewport — bpy.context.object.location.x = 2 verplaatst het actieve object meteen.

Wat hij niet doet: hij bewaart niets automatisch tussen sessies (in tegenstelling tot een Text-datablock) en hij is niet bedoeld voor lange scripts — meerdere regels tikken kan, maar wordt al snel onhandig zonder de gewone editorfuncties (zoeken, uitcommentariëren, regelnummers) van de Text Editor.

De Python Console met een paar uitgevoerde regels en hun resultaat.RECBLENDER 5.1 · EDITOR-PYTHON-CONSOLE00:00:00:001920×1080
shot-editor-python-consoleDe Python Console met een paar uitgevoerde regels en hun resultaat.
Uitleg · 46.2

Autocomplete en het gebruik van Tab

2/6

De Tab-toets vult aan op basis van wat er al getypt is — begin je bpy.context.o en druk Tab, dan toont de console de mogelijke vervolgnamen (object, objects, ...). Dit is de snelste manier om de enorme bpy-API te verkennen zonder de documentatie te moeten opzoeken: tik een paar letters, Tab, en lees wat er beschikbaar is op dat punt in de datastructuur.

Pijl-omhoog/omlaag doorloopt de geschiedenis van eerder getypte regels binnen deze sessie, net als in een terminal.

Na 'bpy.context.object' + Tab toont de console alle mogelijke vervolgnamen (hier 's_in_mode' en 's_in_mode_unique_data') zonder de documentatie te raadplegen.RECBLENDER 5.1 · D46-CONSOLE-MASTER00:00:00:00576×130
shot-d46-console-masterNa 'bpy.context.object' + Tab toont de console alle mogelijke vervolgnamen (hier 's_in_mode' en 's_in_mode_unique_data') zonder de documentatie te raadplegen.
Uitleg · 46.3

Context kopiëren vanuit de Info-editor

3/6

Elke operator die je met de muis uitvoert (een object verplaatsen, een modifier toevoegen) verschijnt als Python-regel in de Info-editor (hoofdstuk 47). Rechtsklik op zo'n regel en kies Copy (Ctrl+C) om de exacte bpy.ops-aanroep naar het klembord te zetten, en plak hem in de Python Console om meteen uit te voeren — de brug tussen 'ik weet hoe het met de muis moet' en 'ik wil dit in een script automatiseren'.

Rechtsklik op een regel in de Info-editor: Copy zet de exacte bpy.ops-aanroep op het klembord, klaar om in de Console te plakken.RECBLENDER 5.1 · D46-INFO-CONTEXTMENU00:00:00:00499×151
shot-d46-info-contextmenuRechtsklik op een regel in de Info-editor: Copy zet de exacte bpy.ops-aanroep op het klembord, klaar om in de Console te plakken.
Naslag · 46.4

Sneltoetsen — Console

4/6
Sneltoetsen — Console CONSOLE / WINDOW
ToetsActieOperator
Ctrl+LEFT_ARROWMove Cursorconsole.move
Ctrl+Shift+LEFT_ARROWMove Cursorconsole.move
Ctrl+RIGHT_ARROWMove Cursorconsole.move
Ctrl+Shift+RIGHT_ARROWMove Cursorconsole.move
HOMEMove Cursorconsole.move
Shift+HOMEMove Cursorconsole.move
ENDMove Cursorconsole.move
Shift+ENDMove Cursorconsole.move
Ctrl+WHEELUPMOUSEContext Int Cyclewm.context_cycle_int
Ctrl+WHEELDOWNMOUSEContext Int Cyclewm.context_cycle_int
Ctrl+NUMPAD_PLUSContext Int Cyclewm.context_cycle_int
Ctrl+NUMPAD_MINUSContext Int Cyclewm.context_cycle_int
LEFT_ARROWMove Cursorconsole.move
Shift+LEFT_ARROWMove Cursorconsole.move
RIGHT_ARROWMove Cursorconsole.move
Shift+RIGHT_ARROWMove Cursorconsole.move
UP_ARROWHistory Cycleconsole.history_cycle
DOWN_ARROWHistory Cycleconsole.history_cycle
DELDeleteconsole.delete
BACK_SPACEDeleteconsole.delete
Shift+BACK_SPACEDeleteconsole.delete
Ctrl+DELDeleteconsole.delete
Ctrl+BACK_SPACEDeleteconsole.delete
Shift+RETClear Lineconsole.clear_line
Shift+NUMPAD_ENTERClear Lineconsole.clear_line
RETConsole Executeconsole.execute
NUMPAD_ENTERConsole Executeconsole.execute
Ctrl+Shift+CCopy to Clipboard (as Script)console.copy_as_script
Ctrl+CCopy to Clipboardconsole.copy
Ctrl+XCopy to Clipboardconsole.copy
Ctrl+VPaste from Clipboardconsole.paste
LEFTMOUSESet Selectionconsole.select_set
Ctrl+ASelect Allconsole.select_all
LEFTMOUSESelect Wordconsole.select_word
Ctrl+TABInsertconsole.insert
TABIndent or Autocompleteconsole.indent_or_autocomplete
Shift+TABUnindentconsole.unindent
RIGHTMOUSEConsolewm.call_menu
APPConsolewm.call_menu
Ctrl+Alt+Shift+Cmd+TEXTINPUTInsertconsole.insert
Uitleg · 46.5

Veelvoorkomend: 'mijn variabele is weg' en scripting-basis

5/6

Variabelen die je in de console aanmaakt, blijven alleen bestaan zolang Blender open blijft — sluit je het bestand of herstart je Blender, dan is de hele consolesessie weg, ook al blijft de scene zelf natuurlijk bewaard als je opgeslagen hebt. Voor iets dat je wil hergebruiken, kopieer je de werkende regels naar een Text-datablock (hoofdstuk 45) zodra ze doen wat je wil.

De meest gebruikte startpunten zijn bpy.context (wat er nú actief/geselecteerd is) en bpy.data (alle datablocks in het bestand, ongeacht selectie) — het eerste voor 'doe iets met wat ik nu heb geselecteerd', het tweede voor 'doorzoek alles in het bestand'.

De banner herinnert eraan: C = bpy.context (wat nu actief is), D = bpy.data (alles in het bestand) — twee ingebouwde afkortingen die elke sessie automatisch klaarstaan.RECBLENDER 5.1 · D46-CONSOLE-MASTER00:00:00:00921×140
shot-d46-console-masterDe banner herinnert eraan: C = bpy.context (wat nu actief is), D = bpy.data (alles in het bestand) — twee ingebouwde afkortingen die elke sessie automatisch klaarstaan.
Zelf doen · 46.6

Zelf proberen: objecten opvragen en wijzigen

6/6

Open start_console.blend met een paar objecten in de scene.

  1. 1Typ bpy.context.object.name en bekijk de naam van het actieve object.
  2. 2Typ bpy.data.objects en Tab om de lijst van alle objectnamen te zien.
  3. 3Verander de locatie van het actieve object met bpy.context.object.location.z = 3.
  4. 4Voer een operator uit met bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5).
  5. 5Zoek in de Info-editor de regel die deze laatste operator zelf gegenereerd heeft.
Gelukt als…Een nieuwe bol in de scene, volledig via getypte Python-code toegevoegd.
Sleep om rond te draaien
001
start_console.blend
VoorbeeldKubusAlfaBetaGamma5 materialen1.138 vertices