OnModifyKickPlate
This event can be used to modify the kick plate components. The script can adjust the placement and size of the kick plates, by adjusting the deductions against frame, astragal, etc. based on, for example, the frame groove depth
Example and syntax
//This example contains many helper functions that are not included
procedure OnModifyKickPlate(aParams:TScriptOnModifyKickPlateParams);
var
i : integer;
vIsHingeSide : boolean;
vLockEdgeSide:TSide;
vSquare : integer;
vDoorTypeProfile : string;
vDoorTypeThickness : double;
vItem:TVariantItemWrapper;
vGrooveFrameH:integer; //height
vGrooveFrameD:integer; //depth
vDoorTypeHasLip:boolean;
vDoorHasGrooveAgainstFrame:boolean;
vLipGrooveDepth : integer;
begin
vSquare := aParams.Sash.Square[1];
vGrooveFrameH := 0;
vGrooveFrameD := 0;
for i:= 0 to aParams.Product.Variants.ItemCount - 1 do
begin
vItem := aParams.Product.Variants.Items[i];
if (vItem.VariantType=FrameVar) then
begin
vGrooveFrameH := Trunc(vItem.F1);
vGrooveFrameD := Trunc(vItem.F2);
end;
//store info from other variants...
end;
vDoorTypeProfile := GetDoortypeProfile(aParams.Product, vSquare, GetSashLevel(aParams.Sash));
vDoorTypeThickness := GetDoortypeTykkelse(aParams.Product, vSquare, GetSashLevel(aParams.Sash));
vDoorTypeHasLip := vDoorTypeProfile = '58L';
vDoorHasGrooveAgainstFrame := (vGrooveFrameD > 0)
and (vGrooveFrameH > 0) and (vGrooveFrameH < vDoorTypeThickness); //Fals bare hvis falshøyde smalere enn dørbladtykkelse
vLipGrooveDepth := 9;
vIsHingeSide := aParams.KickPlateSide = psOutside;
if aParams.Sash.HingeDirection = hdirLeft
then vLockEdgeSide := siLeft
else vLockEdgeSide := siRight;
//**** SINGLE DOOR ***********************************************************
if IsSingleDoor(aParams.Product) then
begin
if (vGrooveFrameD > 0) and not vIsHingeSide then
begin
aParams.AdjustLeft := 13;
aParams.AdjustRight := 13;
end
else if (vGrooveFrameD > 0) and vIsHingeSide then
begin
aParams.AdjustLeft := 3;
aParams.AdjustRight := 3;
end
else //Pendulum or sliding
begin
aParams.AdjustLeft := 3;
aParams.AdjustRight := 3;
end;
if not vIsHingeSide then
begin
if vDoorHasGrooveAgainstFrame then //Groove only if frame groove height narrower than dooreleaf thickness
begin
aParams.AdjustLeft := aParams.AdjustLeft + 3;
aParams.AdjustRight := aParams.AdjustRight + 3;
end;
if (vDoorHasGrooveAgainstFrame and (vGrooveFrameD > 13)) or (vGrooveFrameD >= 17) then
begin
aParams.AdjustLeft := aParams.AdjustLeft + (vGrooveFrameD - 13); //17-13 = +4
aParams.AdjustRight := aParams.AdjustRight + (vGrooveFrameD - 13); //17-13 = +4
end;
if vDoorTypeHasLip then
begin //Adjust against lip on lock edge
if vLockEdgeSide = siRight then
aParams.AdjustRight := aParams.AdjustRight + vLipGrooveDepth
else
aParams.AdjustLeft := aParams.AdjustLeft + vLipGrooveDepth;
end;
end;
end
//**** DOUBLE DOOR ***********************************************************
else if IsDoubleDoor(aParams.Product) then
begin
//...
//...
end;
end;
Last updated
Was this helpful?