PyCompEditor
Contents |
Description
pyCompEditor is a program module – graphic block 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.
pyCompEditor the basic blocks for creating of
- different schematic editors, additionally with the possibility of code generation (SPICE, XSPICE, Open Modelica etc...)
- interactive block simulator based on Scipy and Matplotlib
- real-time SCADA applications
- 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ť.