Editering


Ge innehåller en rad funktioner för att skapa objekt, modifera dem, ordna dem mm.
Funktionerna hittar man i verktygs-panelen, i menyn. En del aktiveras med mus-klick.

Skapa objekt

Basobjekt skapas genom att man väljer en objekt-typ i verktygspanelen och sedan drar eller
klickar i arbetsarean med MB1. Om man håller ner Shift tangenten samtidigt som objekts-typen
väljs i verktygspanelen, kan men skapa flera objekt, utan välja ny objekts-typ. En mer ingående
beskrivning av hur varje objekts-typ skapas finns i kapitlet Objekt.

En instans av en subgraf eller ett komplext objekt, skapas genom att man väljer ut subgrafen i
subgrafspaletten och klickar i arbetsarean med MB2.

Skapa kopplingar

Kopplingar skapas genom att man drar med MB2 mellan två subgrafs-objekt som innehåller
kopplingspunkter.
Först ska man ha ställt in lämplig kopplings-typ under Connections i menyn.

Återställ

Genom att klicka med MB3 återställer man de flesta funktioner eller avslutar funktioner:
tömmer listan på utvalda objekt, avslutar ritning av en polylinje, avlutar skalning,
avslutar editering av polylinje.

Välja ut objekt

Ett objekt eller en koppling som är utvalt makeras genom att rödfärgas. Det här gäller dock
inte när man har ändra färg på de utvalda objekten, då de ritas med de nya färgerna för att
man ska kunna se effekten av färgförändringen.

Objekt väljs ut på följande sätt

- Klicka på objektet med MB1. Tidigare utvalda objekt tas bort ur listan på utvalda objekt.
Om objektet redan är utvalt töms listan på utvalda objekt.
- Klicka på objektet med Shift MB1. Objektet adderas till listan på utvalda objekt. Om
objektet redan är utvalt tas det bort ur listan på utvalda objekt.
- Dra med MB1. En rektangel ritas ut och objekt som ligger innanför rektangeln med hela
objekt-kroppen blir utvalda. Tidigare utvalda objekt tas bort ur listan på utvalda objekt.
Man måste se till att markören inte ligger på något objekt efter som man även flyttar
objekt med MB1. Om man har ett objekt som täcker backgrunden får man använda Shift MB1
istället (se nedan).
- Dra med Shift MB1. Objekt som ligger innanför rektangeln adderas till listan på utvalda
objekt.
- Select all objects under Edit i menyn väljer ut samtliga objekt.
- Select all connections väljer ut samtliga kopplingar.

Listan på utvalda objekt nollställs genom att klicka med MB1 på ett tomt område i
arbetsarean, eller genom att klicka med MB3 i arbetsarean.

Flytta objekt

Ett objekt flyttas med MB1. Vill man flytta på flera objekt samtidigt, väljer man ut
objekten. Om man nu flyttar på ett av de utvalda objekt följer samtliga utvalda objekt med.

Om man vill flytta objekt vertikalt eller horisontalt väljer man först Move Restrictions
under Edit i menyn. Move Restrictions återställs med MB3.

Cut, copy och paste

Man kopierar objekt genom att välja ut de objekt som ska kopieras och kopiera dem till
paste-bufferten med Ctrl+C. Med Ctrl+V kopieras de in i arbetsarean, och blir 'hängande'
på markören (dvs följer markörens rörelser) tills man klickar med MB1 och låser fast dem.
Klippa fungerar på samma sätt med Ctrl+X.

Grid

Grid och gridstorlek kan väljas från verktygspanelen.

Skalning

Skalnings-funktionen aktiveras från verktygspanelen och verkar på utvalda objekt. De utvalda
objekten ramas in av en rektangel. Genom att dra i ett hörn eller en långsida skalas de
utvalda objekten om. Om man drar i en långsida sker skalningen vertikalt eller horisontalt,
drar man i ett hörn kan man skala objekten fritt. Genom att aktivera Functions/ScaleEqual
före skalningen får man likformig skalning i x och y-led.

Rotera

Utvalda objekt roteras 90 grader modsols genom att rotations-funktionen i verktygs-panelen
aktiveras. 90-graders rotationen fungerar på samtliga objekt utom texter. Vill man rotera en
annan vinkel kan man göra detta genom Rotate under Edit i menyn. Här kan man mata in en
godtycklig vinkel. Av basobjekten är det dock endast linjer och polylinjer som klarar en
godtycklig rotation. Det gäller med andra ord att bygga upp subgrafer och objekt av linjer
och polylinjer om de ska kunna roteras godtyckligt.

Ordna objekt

Vertikalt

Objekt som är placerade vertikalt kan vänsterjusteras, högerjusteras resp centreras med
Align vertical under Functions i menyn. Välj ut de objekt som ska justeras och aktivera
meny-entryt.

Horisontalt

Objekt som är placerade horisontalt kan justeras med avseende på översida, undersida resp
centrum med Align horizonal under Functions i menyn. Välj ut de objekt som ska justeras och
aktivera meny-entryt.

Koncentriska cirklar

Koncentriska cirklar åstadkommer men genom att först aktivera Align vertical center och sedan
Align horizontal center.

Lika avstånd mellan objekt

Objekt som är placerade vertikalt eller horisontalt ska ofta ha lika avstånd mellan dem.
Detta åstadkommer man med Equidistance under Functions i menyn. Equidistance funktionen för
horisontella objekt, behåller positionen på objektet längst till höger och längst till
vänster, men placerar mellanliggande objekt så att avståndet mellan objekten blir lika.
Avståndet kan räknas från objektens högerkant, vänsterkant eller centrum. På motsvarande sätt
kan vertikala objekt ordnas med 'Equidistance/vertical'.

Under och över

Om objekt överlappar kan man flytta dem över eller under med Pop och Push under Functions i
menyn. Pop lägger ett objekt över samtliga andra objekt i bilden, push lägger objektet under
alla andra objekt. Vill man lägga ett objekt mellan två andra objekt krävs det lite
tankearbetet för att gör pop eller push i rätt ordning.

Färger

Bakgrundsfärg

Bakgrundfärgen i bilden sätts genom att välja ut en lämplig fyllnadsfärg i färgpaletten
(MB1) och aktivera Set background color under Functions i menyn.

Färger på objekt

Färger på objekt delas upp i fyllnadsfärg och kantfärg. Den fyllda delen av objektet ritas
med fyllnadsfärgen och kanten ritas med kantfärgen. En del objekt t ex linjer ritas enbart
med kantfärg. Färgerna väljs i färgpaletten, fyllnadsfärg väljs med MB1 och kantfärg med MB2.
De senast valda färgerna visas i två rektanglar överst i färgpaletten, fyllnadsfärg till
vänster och kantfärg till höger. När ett basobjekt eller sammansatt objekt skapas hämtas de
senast valda färgerna från paletten och objektet ges dessa färger. Vill man ändra på färger
på existerande objekt väljer man ut dem och väljer en ny fyllnads- eller kant-färg i
paletten. Observera att objekten efter denna operation ritas med de aktuella färgerna trots
att de är utvalda, dvs de förlorar sin rödmarkering. Det är därför bra klicka med MB3 efter
operationen för att nollställa utvalslistan.

Färger på subgrafs-objekt

Man kan ändra färg på subgrafs-objekt på samma sätt som man ändrar färg på basobjekt, genom
att välja ut dem och ge dem en kant- eller fyllnadsfärg. Objekt som är ritade med skuggningar
och 3D-effekter förlorar dessa om man ändrar fyllnadsfärgen. Därför finns speciella
funktioner för att ändra färg på subgraf-objekt, i termer av ljushet, ton, intensitet och
skiftning. I kapitlet Subgrafer behandlas detta mer ingående.

Koppling till rtdb

När ett subgrafs-objekt ska påverka eller påverkas av en signal i rtdb måste man ange
detta i subgrafens attribut. Ett sätt är att mata in det för hand i objektseditorn för
subgrafen. Ett annat betydligt smidigare är att använda planthierarkin som kan hittas ovanför
navigationsfönstret. Planthierarkin finns med om man har startat Ge från navigatören. I
planthierarkin väljer man ut det objekt man vill koppla subgrafs-objeket till, och klickar
sedan på subgrafs-objektet med Ctrl/DubbelKlick MB1. Finns det två rtdb-kopplingar i
subgrafs-objektet kopplas den första på detta sätt och den andra kopplingen med
Ctrl/Shift/DubbelKlick MB1. Man kan även öppna objektseditorn och klicka på raden för
attributet med Ctrl/Dubbelklick MB1 för att lägga in signalen. Är det en signal man kopplar
till räcker det att välja ut objektet i planthierarkin, då väljs attributet ActualValue
automatisk. Om det är ett annan typ av objekt måste man ange vilket attribut man ska koppla
subgraf-objektet till. Det gör man genom att öppna objektet med DubbelKlick MB1, och sedan
välja ut lämpligt attribut.

Man kan även kopiera in signalen från navigatören.

Suffix

Till namnet på signalen ska adderas ett suffix som talar om vilken typ attributet är.
Dynamik där det är uppenbart vilken typ attributet har är detta inte nödvändigt, t ex
varianter av Dig operarar ju enbart på Boolean.
Följande typer av suffix kan anges:

##BOOLEAN
##FLOAT32
##FLOAT64
##CHAR
##INT8
##INT16
##INT32
##UINT8
##UINT16
##UINT32
##OBJID
##STRING
##TIME
##DELTATIME
##ATTRREF

Är attributet en sträng eller en vektor ska dessutom storleken anges pss som i GMS.

Graf-attribut

Under File i menyn finns Graph attributes och här kan man mata in attribut för bilden.

Här anges bl a vilken del av arbetsarean som ska visas i runtime. Koordinaterna för övre
vänstra hörnet och nedre högra hörnet mäts upp mha markören och matas in i x0, y0 resp x1, y1.

Attribut            Beskrivning
subgraph         Anger att grafen är en subgraf. I så fall är inte nedanstående
        attribut aktuella.
x0         x-koordinat för övre vänstra hörnet på bilden.
y0         y-koordinat för övre vänstra hörnet på bilden.
x1         x-koordinat för nedre högra hörnet på bilden.
y1         y-koordinat för nedre högra hörnet på bilden.
Scantime         Cykeltid i sekunder för uppdateringar av objekt som går med den
        långsamma cykeln.
FastScantime        Cykeltid i sekunder för uppdateringar av objekt som går med den
        snabba cykeln.
AnmationScantime    Cykeltid i sekunder för animeringar i bilden.
JavaWidth         Bredd i pixel som bilden skalas till vid exportering till java.
IsJavaApplet        Bilden exporteras som en java applet vid exportering.
IsJavaFrame         Bilden exporteras som en java frame vid exportering.
BackgroundImage     Namn på gif eller jpg-fil för bakgrundsbild.
BackgroundTiled     Bakgrundsbilden skalas ej utan upprepas så att bakgrunden täcks.
DoubleBuffered      Grafen ska dubbelbuffras, vilket innebär att bilden först
       ritas i en pixmap i minnet och sedan kopieras till skärmen. Bör
       användas om bilden innehåller rörliga objekt eller animationer.
MB3Action         Anger vad som ska hända vid högerklick i grafet.
Translate         All dynamisk och statisk text översätts.
BitmapFonts         Bitmapsfonter används i stället för skalbara fonter.
HotIndication       Hur känsliga objekt markeras när makören pekar på dem.
TooltipTextsize     Storlek på text is tooltip.
AppMotion         Vad som ska ske vid drag i en Android app.

Objekts och hierarki grafer

Det här kapitlet beskriver hur man kan göra ge-bilder som visar innehållet objekt av en viss
klass, och som kan visa alla objekt av den klassen. Det beskriver också hur man kan göra
gemensamma bilder för likartade hierakier i ProviewR-databasen.

Objekts graf

För en del klasser som tillhör ProviewR's basklasser finns det sk objekts-bilder, dvs bilder
som kan öppnas för varje objekt som tillhör klassen. Objekts-bilder finns bl a för klasserna
PID, Mode, Av, Ai, Ao, Di, Do, Dv, och öppnas i xtt med kommandot 'open graph /instance=' där
man i /instance skickar med namnet på objektet. Man kan också öppna objektbilden genom att
välja ut objektet och aktivera Functions/Open object graph i xtt menyn.

Om man har gjort en egen klass, kan man göra en objektsbild även för denna klass. Man
editerar bilden som en normal ge-graph. Skillnaden kommer när man ska knyta de olika
dynamiska objekten till ProviewR-objektet i rtdb. Där man normalt skriver ett objekts-namn
skriver man istället $object. Data för en indikator som kopplas till attributet ActualValue
i ProviewR-objektet kan se ut så här

Attribut                                Värde
SubGraph                                pwr_indsquare
LowColor.Attribute                       $object.ActualValue##Boolean
LowColor.Color                         Inherit
Cycle                                 Inherit
DynType                                 Inherit
Action                                 Inherit
Grafen bör sparas med samma namn som klassen, med små bokstäver, om man vill kunna öppna den
med Functions/Open object graph i xtt-menyn.

Kommandot för att öppna objektbilden för objektet H1-H2-MyObject av klassen MyClass blir

open graph /classgraph /instance=H1-H2-MyObject

Hierarki graf

Ofta finns det anläggningsdelar i ett system som är identiska och som ger upphov till närmast
identiska hierarkier. Det kan t ex finnas 30 likadana frekvensomformare, och det finns i Ge
möjlighet att, istället för att editera 30 likadana grafer, göra en generisk som klarar alla
frekvensomformarna. Tillvägagångssättet bygger på samma princip som objekts-graferna ovan.
Den hieraki som skickas med i /instance i open graph kommandot när grafen öppnas, kommer att
ersätta alla $object som förekommer i dynamiska kopplingar i bilden.

Data för en indikator som kopplas till Dv'n Start kan t ex se ut så här

Attribut                                Värde
SubGraph                               pwr_indsquare
LowColor.Attribute                       $object-Start.ActualValue##Boolean
LowColor.Color                         Inherit
Cycle                                 Inherit
DynType                                 Inherit
Action                                 Inherit
När bilden öppnas med kommandot

open graph my_fo_graph /instance=H1-H2-Fo1.53

kommer indikatorn ovan att kopplas till attributet H1-H2-Fo1-Start.ActualValue.

Även i kommandon som exekveras av tryckknappar i bilden, kommer strängen $object att
ersättas av hieraki-namnet. Detta gör att man kan från tryckknappar kan öppna objekts-bilder
eller trend-kurvor på objekt inom hierakin. Kommandot för att öppna objekts-bilden för ett
Mode-objekt kan t ex bli

open graph /classgraph /instance=$object-Plc-W-Mode0/name=$object

Exempel på kommando för att öppna en trendkurvor från en plotgrupp inom hierakin

open trend $object-Plot