Filter mussten stets aus Layern zusammengestellt werden. Die Definition des Filters bestand darin, dass für jedes Layer festgelegt wurde, in welcher Weise es dargestellt bzw. ausgeblendet werden sollte.
Als Alternative gibt es die Möglichkeit, die Sichtbarkeit für jedes Objekt direkt durch eine EbsScript-Funktion zu definieren. In diesem Fall werden keine Layer benötigt.
In der Filter-Definition ist der Name der EbsScript-Funktion einzutragen, die aufgerufen werden soll. Auf diese Weise können auch mehrere Filter mit unterschiedlichen EbsScript-Funktionen definiert werden. Die EbsScript-Funktion muss in einem EbsScript enthalten sein, das als Standard-Unit definiert wurde.
Der Syntax der EbsScript-Funktion muss folgendermaßen aufgebaut sein:
function Funktionsname (obj:ebsobject): objectdisplay;
Beispiel:
Filter, um alle Bauteile gedimmt anzuzeigen, nur aktive Messwerte werden farbig dargestellt:
unit StandardUnit;
interface
function Comp46UsedInSimulation(obj:ebsobject):objectdisplay;
implementation
function Comp46UsedInSimulation(obj:ebsobject):objectdisplay;
var
disp:objectdisplay;
comp46:ebscomp46;
begin
comp46 := ebscomp46(obj);
disp.state := drawModeGrayed;
disp.patternBitmap := patternBitmapNONE;
if not isnull(comp46) then begin
if (comp46.FFU = 1 AND comp46.FVAL = 2) then begin
disp.state := drawModeColor;
disp.patternBitmap := patternBitmapNONE;
end;
end;
Comp46UsedInSimulation := disp;
end;
end.