Skapa en subgraf


Man skapar en subgraf genom att rita bas-objekt i arbetsarean. Man har här även tillgång till
kopplingspunkter och annotations.

Markera att det är en subgraf genom att öppna File/Graph attributes och sätt en etta på
subgraph.

Stäng attribut-editorn och öppna den igen och editera subgraf attributen.

Attribut            Beskrivning
DynType         Typ av dynamik. Instanserna kommer att ärva denna som default-dynamik.
Action         Typ av action. Instanserna kommer att ärva denna som default-action.
Color1         Första färg eller färgton som instanserna kommer att ärva som default.
Color2         Andra färg eller färgton som instanserna kommer att ärva som default.
Color3         Tredje färg eller färgton som instanserna kommer att ärva som default.
Color4         Fjärde färg eller färgton som instanserna kommer att ärva som default.
AnimSequence        Typ av animation då DynType är Animation.
NoConObstacle       Anger att kopplingar kan ignorera en instans av subgrafen.
      Kopplingar av typen 'routed' undviker normalt ett subgraf-objekt,
      men om NoConObstacle är satt kan kopplingarna ritas över objektet.
Slider         Markerar att subgrafen är en slider.
Subgraph         Ska vara ett för en subgraf.
NextSubgraph        Namn på subgrafens nästa sida.
AnimationCount      Används vid animation. Anger antal cykler animeringen ska
        uppehålla sig vid den här sidan.
JavaName         Vid export som java-bean kommer subgrafen att exportera som
        en java-klass med det här namnet.
Cycle         Default-värde för cykel, långsam eller snabb, som instanserna
        kommer att ärva som default.
x0         I (x0, y0) och (x1, y1) kan man ange max-storleken på en subgraf
        i de fall när subgrafen innehåller sidor med olika utbredning.
y0         Se x0. Används även av vissa subgrafer med DynType Slider,
        Sliderbackground och FillLevel.
x1         Se x0.
y1         Se x0. Används även av vissa subgrafer med DynType Sliderbackground
        och FillLevel.
InputFocusMark      Hur objekt markeras när de har input fokus.
RecursiveDynamic    Används för dynamiken HostObject när objekt i subgrafen har
        individuell dynamik.
Dynamic         Ej implementerat.
Spara subgrafen med 'File/SaveAs...'. Kopiera den .pwsg fil som skapats till $pwrp_exe.
Subgrafen ska nu synas under Local/Subgraphs-mappen i subgraf-paletten.

Det är lämpligt att rita subgrafen i närheten av origo i arbetsarean eftersom när man skapar
instanser motsvaras positionen för musklicket av origo. Kopplingspunkter läggs på
grid-punkter, om rektangulära kopplingar ska användas för att knyta ihop instanserna. Då
undviker man onödiga hack i kopplingslinjerna.

Externa och interna subgrafer

När man första gången i en bild skapar en instans av en viss subgraf, laddas denna in från
.pwsg-filen. Den är då intern vilket innebär att subgrafen sparas tillsammans med bilden, och
pwsg-filen behövs i princip inte mer. Man behöver t ex inte tänka på att kopiera den till
operatörsnoder och processnoder. Detta fungerar bra ända tills man vill ändra i subgrafen.
Så länga subgrafen är intern kommer inte dessa ändringar med. För att få med en ändring måste
subgrafen vara extern. När bilden då sparas kommer inte subgrafen att lagras i tillsammans i
bilden, och nästa gång man läser bilden, laddas subgrafen från från .pwsg-filen. När den
ändrade versionen är inladdad kan man åter ställa om den till intern.

För att ställa om en subgraf från intern till extern och vice versa väljer man
'Loaded Subgraps' under 'File' i menyn. Här får man en lista på alla laddade subgrafer och
kan sätta dem externa eller interna.

Slider

Slider eller dragregel är en speciell typ av subgraf. En slider ska kunna flyttas
horisontellt eller vertikalt mellan två ändpunkter, och läget ska överföras, via skalning,
till ett analogt värde i rtdb.

Med bakgrund
Det enklaste sättet att konfigurera en slider, är att lägga ett SliderBackground-objekt bakom
slidern. Det enda man behöver göra är att koppla slider-objektet till en analog signal.

Utan bakgrund
Om man absolut inte vill ha någon bakgrund till slidern måste man lägga in riktning, samt min
och max-position för rörelse-området. En horisontal slider konfigureras på följande sätt
(vertikal slider inom parentes).

Placera slidern på den lägsta y (x) koordinaten som slidern ska kunna röra sig över. Tänk på
att origo är placerat i övre vänstra hörnet.
Mät upp min och max-värde för sliderns rörelse relativt sliderns övre (vänstra) sida genom
att placera markören där. Markörens position kan avläsas i nedre högra hörnet. Mata in dess
värden i objektseditorn för subgraf-objektet, attributen MaxPosition resp MinPosition.
Ange riktning (Direction). Up innebär en vertikal slider med ökande värde uppåt. Right
innebär en horisontal slider med ökande värde åt höger etc.

Attribut            Beskrivning
Attribute           Signal i rtdb av typen Float32 eller Int32 som ändras när slidern dras.
Access           Privilegier som krävs för att få ändra värdet på signalen.
Direction           Behöver endast anges om man inte har något SliderBackground-objekt.
          Riktning på slidern. Up innebär en vertikal slider med ökande värde uppåt.
          Right innebär en horisontal slider med ökande värde åt höger.
MaxValue           Värde på signalen som motsvarar sliderns max-position.
MinValue           Värde på signalen som motsvarar sliderns min-position.
MaxPosition         Behöver endast anges om man inte har något SliderBackground-objekt.
          x eller y koordinat för sliderns max-position (se ovan).
MinPosition         Behöver endast anges om man inte har något SliderBackground-objekt.
          x eller y koordinat för sliderns min-position (se ovan).