pydev-blender-pl.pdf
(
6308 KB
)
Pobierz
Witold Jaworski
Programowanie dodatków
do Blendera 2.5
Pisanie skryptów w języku Python,
z wykorzystaniem Eclipse IDE
wersja 1.01
Programowanie dodatków do Blendera 2.5 - wersja 1.01
Copyright Witold Jaworski, 2011.
wjaworski@samoloty3d.pl
http://www.samoloty3d.pl
Recenzent: Jarek Karpiel
Chciałbym także podziękować Dawidowi Ośródce, za jego uwagi.
Ten utwór jest dostępny na
licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów
zależnych 3.0 Unported
.
ISBN: 978-83-931754-1-3
Rozdział 1 Instalacja oprogramowania
3
Spis treści
Spis treści .............................................................................................................................................................3
Wprowadzenie......................................................................................................................................................4
Konwencje zapisu ................................................................................................................................................5
Przygotowania .........................................................................................................................................................6
Rozdział 1.
Instalacja oprogramowania............................................................................................................7
1.1
Python .....................................................................................................................................................8
1.2
Eclipse ...................................................................................................................................................10
1.3
PyDev ....................................................................................................................................................13
Rozdział 2.
Pierwsze kroki w Eclipse .............................................................................................................17
2.1
Rozpoczęcie projektu ............................................................................................................................18
2.2
Uruchomienie najprostszego skryptu ....................................................................................................24
2.3
Debugowanie ........................................................................................................................................27
Tworzenie aplikacji Blendera .................................................................................................................................32
Rozdział 3.
Skrypt dla Blendera .....................................................................................................................33
3.1
Sformułowanie problemu.......................................................................................................................34
3.2
Dostosowanie Eclipse do API Blendera ................................................................................................39
3.3
Opracowanie podstawowego kodu .......................................................................................................48
3.4
Uruchamianie skryptu w Blenderze.......................................................................................................58
3.5
Rozbudowa skryptu: wykorzystanie poleceń Blendera .........................................................................65
Rozdział 4.
Przerabianie skryptu na wtyczkę Blendera (add-on)...................................................................74
4.1
Dostosowanie struktury skryptu ............................................................................................................75
4.2
Dodanie polecenia (operatora) do menu...............................................................................................84
4.3
Implementacja interakcji z użytkownikiem ............................................................................................92
Dodatki...................................................................................................................................................................98
Rozdział 5.
Szczegóły instalacji......................................................................................................................99
5.1
Szczegóły instalacji Pythona ...............................................................................................................100
5.2
Szczegóły instalacji Eclipse i PyDev ...................................................................................................103
5.3
Konfiguracja PyDev............................................................................................................................. 110
Rozdział 6.
Inne............................................................................................................................................ 113
6.1
Aktualizacja nagłówków API Blendera dla PyDev............................................................................... 114
6.2
Importowanie pliku do projektu PyDev................................................................................................ 118
6.3
Debugowanie skryptu w Blenderze — szczegóły ...............................................................................124
6.4
Co się kryje w pliku
pydev_debug.py
? ................................................................................................129
6.5
Pełen kod wtyczki
mesh_bevel.py
......................................................................................................131
Bibliografia ...........................................................................................................................................................134
Copyright Witold Jaworski, 2011.
4
Przygotowania
Wprowadzenie
Językiem skryptów Blendera jest Python. W tym języku zrealizowano wiele przydatnych dodatków do tego pro-
gramu. Niestety, w Blenderze brakuje czegoś w rodzaju zintegrowanego środowiska programisty (ang.
integrated development environment
— w skrócie
IDE
). „W standardzie” znajdziesz tylko zaadaptowany do
podświetlania składni Pythona edytor tekstowy, oraz konsolę. To wystarcza do tworzenia prostych skryptów, ale
zaczyna przeszkadzać, gdy tworzysz większe programy. Szczególnie uciążliwy jest brak „okienkowego” debu-
ggera. W 2007r opracowałem artykuł, w którym proponowałem użycie w tym charakterze dwóch programów:
Open Source:
SPE
(edytor) i
Winpdb
(debugger). Ten artykuł został potem opublikowany na
blenderwiki
przez
Jeffa Blanka.
W 2009r postanowiono, że przepisywana „od podstaw” nowa wersja Blendera (2.5) będzie miała zupełnie nowe
API. Ten Blender ma „wczepionego” Pythona w wydaniu 3.x, podczas gdy poprzednie wersje używały wydań z
serii 2.x. W dodatku twórcy Pythona także zdecydowali się w wersji 3.x zerwać wsteczną zgodność kodu. W
efekcie biblioteka „okienek”, w której napisano SPE i Winpdb —
wxPython
, oparta na
wxWidgets
— działała w
Pythonie 2.x, a nie działa w Pythonie 3.x. Co gorsza, jakoś nikt nie pracuje nad jej aktualizacją. Wygląda na to,
że w ten sposób obydwa narzędzia stały się niedostępne dla Blendera w wersji 2.5 i następnych (2.6, …).
Postanowiłem więc zaproponować nowe środowisko programisty, także oparte wyłącznie o oprogramowanie
Open Source. Tym razem mój wybór padł na IDE
Eclipse
, wzbogacone o dodatek do pracy ze skryptami Py-
thona:
PyDev
. Obydwa produkty są rozwijane już od 10 lat, i same w sobie nie zależą od Pythona. (Dzięki temu
nie są narażone na taką wsteczną niezgodność kodu, jak SPE i Winpdb). Nim napisałem to opracowanie, za-
adaptowałem do API Blendera 2.5 za pomocą Eclipse i PyDev wszystkie moje skrypty. W niektórych przypad-
kach oznaczało to konieczność przepisania ich od nowa. Na podstawie tych doświadczeń sądzę, że to nowe
środowisko jest lepsze od poprzedniego.
Uważam, że narzędzia programisty najlepiej przedstawiać na przykładzie pracy nad jakimś konkretnym skryp-
tem. Zdecydowałem się więc opisać tu proces tworzenia wtyczki Blendera, służącej do fazowania wybranych
krawędzi siatki. (Chodzi o odtworzenie działania polecenia
Bevel
z Blendera 2.49). Poziom narracji wymaga
przeciętnej znajomości Pythona i Blendera. Do zrozumienia fragmentu o tworzeniu wtyczki
(Rozdział 4)
trzeba
także znać podstawowe pojęcia programowania obiektowego, takie jak: „klasa”, „obiekt”, „instancja”, „dziedzi-
czenie”. Gdy jest to potrzebne (pod koniec tego rozdziału) wyjaśniam kilka bardziej zaawansowanych pojęć. (Na
przykładzie API dla wtyczek tłumaczę, co to jest „interfejs” i „klasa abstrakcyjna”). Ta książka wprowadza w
praktyczne podstawy pisania rozszerzeń Blendera. Nie opisuję tu wszystkich zagadnień. Przestawiam za to
m e t o d y, które stosuję, by je poznawać. Używając ich, będziesz mógł samodzielnie opanować resztę tego API
(np. tworzenie własnych paneli lub menu).
Programowanie dodatków do Blendera 2.5 — wersja 1.01
www.samoloty3d.pl
Rozdział 1 Instalacja oprogramowania
5
Konwencje zapisu
Wskazówki dotyczące klawiatury i myszki oparłem na założeniu, że masz standardowe:
klawiaturę — w normalnym układzie amerykańskim, 102 klawisze;
myszkę — wyposażoną w dwa przyciski i kółko przewijania (które daje się także naciskać: wtedy
działa jak trzeci, środkowy przycisk).
Wywołanie polecenia programu będę zaznaczał następująco:
Menu
Polecenie
- taki zapis oznacza wywołanie z menu „Menu” polecenia „Polecenie”. W przypadku
bardziej zagnieżdżonych menu może wystąpić więcej strzałek!
Panel:Przycisk
- taki zapis oznacza naciśnięcie w oknie dialogowym lub panelu "Panel" przycisku
„Przycisk”.
Naciśnięcie klawisza na klawiaturze:
Alt
-
K
- myślnik pomiędzy znakami klawiszy oznacza jednoczesne naciśnięcie obydwu klawi-
szy na klawiaturze. W tym przykładzie trzymając wciśnięty
Alt
, naciskasz
K
;
G
,
X
- przecinek pomiędzy znakami klawiszy oznacza, że je naciskasz (i zwalniasz!) po kolei.
W tym przykładzie najpierw
G
, a potem
X
(tak, jak gdybyś chciał napisać wyraz „gx”).
Naciśnięcie klawisza myszki:
LPM
- lewy przycisk myszy
PPM
- prawy przycisk myszy
SPM
- środkowy przycisk myszy (
naciśnięte
kółko przewijania)
KM
- kółko przewijania (pełni tę rolę, gdy jest
obracane
)
Na koniec: jak mam się do Ciebie zwracać? Zazwyczaj w poradnikach używa się formy bezosobowej („teraz
należy zrobić”). To jednak, mówiąc szczerze, czyni czytany tekst mniej zrozumiałym. Aby ta książka była jak
najbardziej czytelna, zwracam się do Czytelnika w krótkiej, drugiej osobie („teraz zrób”). Czasami używam także
osoby pierwszej („teraz zrobiłem”, „teraz zrobimy”). Tak jest mi łatwiej. Podczas pisania i debugowania kodu w
tym opracowaniu traktowałem nas — czyli Ciebie, drogi Czytelniku, i siebie, piszącego te słowa — jako jeden
zespół. Może trochę wyimaginowany, ale w jakiś sposób prawdziwy. Przecież pisząc tę książkę ja także się
wiele nauczyłem, bo wiedziałem, że każde zagadnienie mam Ci porządnie przedstawić!
Copyright Witold Jaworski, 2011.
Plik z chomika:
onlyprograms
Inne pliki z tego folderu:
python-2.7.3.msi
(15496 KB)
blender-2.65a-OSX_10.6-x86_64.zip
(73920 KB)
blender-2.65a-windows64.exe
(41171 KB)
blender-2.65a-windows32.exe
(34382 KB)
pydev-blender-pl.pdf
(6308 KB)
Inne foldery tego chomika:
3D Studio MAX 2011 BIBLIA PDF
Zgłoś jeśli
naruszono regulamin