PyCompEditor
Contents |
Description
PyCompEditor is a program module – graphic editor created in pure Python with support libraries wxPython, Scipy and Matplotlib for creation and treatment diagrams, involvements and schemes created with components and links between them.
- Internal structure
- Example of implementation
- Creating new block/components
- Source code
- Licence
Gallery / Galéria
![]() |
![]() |
![]() |
Plugin as schematic editor | Simple simulator | Set of differential equations |
![]() |
![]() |
![]() |
Scalar & Vector Demo | Clock and ADC Sampling | Continuous Transfer Function |
![]() |
![]() |
![]() |
Diff. equation - RC Circuit | Diff. equation - RLC Circuit | Harmonic oscillator |
![]() |
![]() |
![]() |
Mathematical functions | Bus and Net Terminal Demo | Real Time Pipe Operations |
![]() |
![]() |
![]() |
2D Bifurcations | Henon's System | SVG Image Generator |
Description / Popis
pyCompEditor je programový modul (softwarový komponent) - grafický editor vytvorený v jazyku Python a knižnici wxPython pre tvorbu a úpravy diagramov, zapojení a schém tvorených komponentami a prepojeniami medzi nimi. Modul je možné rozširovať o nové komponenty pomocou dedenia a definovania ich vlastností a chovania v jazyku Python.
Vlastnosti editoru
- vytvorený výhradne v jazyku Python s podporou knižnice wxPython
- jednoduchý zásuvný modul pre iné aplikácie v jazyku Python
- platformovo nezávislý
- voľne rozšíriteľný o nové komponenty
- nové komponenty je možné vytvárať priamo v jazyku Python, bez potreby špeciálneho kompilátora
- funkcionalitu časovo kritických alebo algoritmicky náročných komponentov je možné implementovať pomocou štandarných postupov v C/C++ prostredníctvom generátora rozhraní SWIG
- vlastnosti komponentov je možné parametrizovať
- komponenty na ploche editora môžu meniť svoj vzhľad počas behu aplikácie (grafické zobrazenie stavu alebo hodnoty, chybové stavy a pod.)
Aplikácie
- grafický editor schém a diagramov založený na preddefinovaných komponentoch a perpojeniach medzi nimi
- generátor skriptov pre simulačné programy (SPICE, XSPICE, MODELICA a iné)
- interaktívny blokový simulátor s využitím podpory knižníc SciPy
- SCADA aplikácie
- zber a riadenie technologických procesov, vedeckých experimentov, zber a spracovanie dát v reálnom čase
Závislosti
pyCompEditor vo verzii pre wxPython využíva podporu výhradne open source knižníc:
- programovaci jazyk Python 2.7.3
- knižnicu wxPython 3.0
- knižnice SciPy a matplotlib
- knižnica wxpsvg pre renderovanie SVG obrazkov
Štruktúra
Modul je dedený z triedy wx.PyPanel a v aplikácii sa používa ako štandardný panel. Pre komunikáciu s modulom sa používajú nasledujúce postupy
- volanie metód triedy ComponentEditor (API) určených pre manipuláciu s komponentami a prepojeniami
- addComponent
- copyComponent
- addNet ...
- nastavením módu editora pomocou premennej editorMode, určenej pre riadenie chovania a reakcií na udalosti myši a klávesnice
- MODE_MOVE_VERTEX
- MODE_MOVE_COMPONENT ...
Modul generuje zoznam komponentov a zoznam prepojení, ktoré sú dostupné z aplikácie, v ktorej je modul použitý. Modul obsahuje metódy pre uloženie a nahratie do-zo súboru.
Základom modulu sú triedy Component a Net, Component agreguje zoznam objektov triedy Terminal, ktore tvoria pripojovacie body komponentov. Prepojenie medzi komponentami je tvorené referenciou na počiatočný a koncový terminál a zoznamom vrchlov tvoriacich geometrický tvar prepojenia. Vzťahy medzi triedami ukazuje diagram tried.
Použitie
Jednoduchá aplikácia
Zdrojový kód jednoduchého použitia modulu.
import wx from src.compEditor import * app = wx.App(False) frame = wx.Frame(None) editor = ComponentEditor(frame) editor.addComponent('R', 50, 50) editor.addComponent('C', 150, 150) frame.Show() app.MainLoop()
Po vytvorení objektu triedy ComponentEditor sú do zoznamu komponentov zaradené dva objekty, 'R' a 'C' sú mená tried, z ktorých sú vytvorené ich inštancie. Po spustení je modul možné ovládať myšou a klávesnicou.
Klávesami je možné prepínať módy editora
- q - výpis zoznamu komponentov na konzolu
- w - výpis zoznamu prepojení na konzolu
- m - posúvania komponentov
- s - výber komponentu
- c - kópia komponentu
- n - pridanie nového prepojenia
- b - pridanie spojky medzi prepojeniami
- r - rotovanie komponentu
- t - zrkadlenie komponentu
- ESC - zrušenie zadávania prepojenia
Licencia a zdrojové kódy
Program je vyvíjaný v spolupráci s nasledujúcimi organizáciami
![]() |
www.vyskumnecentrum.sk |
![]() |
wiki.tntech.eu |
Zdrojové texty k programu sú open-source. Licencia k programu je zhodná s licenciou L-GPL k wxWidgets. Zdrojové texty získate po zaslaní žiadosti na e-mailovú adresu fabo.peter@gmail.com. Uvedte prosím Vaše meno, oblasť použitia a prípadne meno firmy, ak bude použitý pre komerčnú aplikáciu. Tieto informácie mebudú bez Vašeho súhlasu zverejnené.
Upozornenie Program je v štádiu vývoja, dátové štruktúry, formáty súborov ako vlastná štruktúra programu sa môžu vyvíjať a meniť.