I made an object myself for creating an opening:
code:
PROCEDURE Gevelopening;
VAR
breedte, hoogte :REAL;
rood, groen, blauw :LONGINT;
{$INCLUDE D - Klassen.vss}
BEGIN
Maak_Klassen;
breedte :=PBREEDTE;
hoogte :=PHOOGTE;
{-2D-}
NameClass('Loci - 2D');
Locus(-breedte/2,0);
Locus( breedte/2,0);
NameClass('Geen');
ColorIndexToRGB(0,rood,groen,blauw);
FillBack(rood,groen,blauw);
FillFore(rood,groen,blauw);
FillPat(1);
ColorIndexToRGB(0,rood,groen,blauw);
PenBack(rood,groen,blauw);
PenFore(rood,groen,blauw);
PenPat(0);
PenSize(0);
BeginPoly;
AddPoint((-breedte/2-5), 10);
AddPoint(( breedte/2+5), 10);
AddPoint(( breedte/2+5), 5);
AddPoint( breedte/2 , 5);
AddPoint( breedte/2 ,- 5);
AddPoint(( breedte/2+5),- 5);
AddPoint(( breedte/2+5),-10);
AddPoint((-breedte/2-5),-10);
AddPoint((-breedte/2-5),- 5);
AddPoint( -breedte/2 ,- 5);
AddPoint( -breedte/2 , 5);
AddPoint((-breedte/2-5), 5);
AddPoint((-breedte/2-5), 10);
EndPoly;
NameClass('Metselwerk - Gevel');
MoveTo((-breedte/2-5),5);
Line( 5, 0);
Line( 0,-10);
Line(-5, 0);
MoveTo((breedte/2+5),5);
Line(-5, 0);
Line( 0,-10);
Line( 5, 0);
NameClass('Metselwerk - Onzichtbaar');
MoveTo(-breedte/2,-5);
Line(breedte,0);
NameClass('Metselwerk - Zichtbaar');
MoveTo((-breedte/2-5),-5);
Line( 0,-5);
Line((breedte+10), 0);
Line( 0, 5);
{-3D-}
NameClass('Loci - 3D');
Locus3D(-breedte/2,0,230);
Locus3D( breedte/2,0,230);
Locus3D(-breedte/2,0,(205-hoogte));
Locus3D( breedte/2,0,(205-hoogte));
NameClass('Metselwerk - Gevel');
BeginXtrd(210,230);
Rect(-breedte/2,5,breedte/2,-5);
EndXtrd;
NameClass('Gesteenten - Arduin');
BeginXtrd((205-hoogte),(210-hoogte));
Rect((-breedte/2-5),10,(breedte/2+5),-10);
EndXtrd;
END;
run(Gevelopening);[/code]
Now I want to use the parameters for the object to count how much meters there are, so I need the width
code:
PROCEDURE Bereken_Prijs;
VAR
h_rollaag :REAL;
laag_naam :STRING;
laag_handle :HANDLE;
object_handle :HANDLE;
{$INCLUDE D - Lagen.vss}
{$INCLUDE D - Klassen.vss}
FUNCTION Prijs_Ruwbouwwerken:REAL;
BEGIN
Prijs_Ruwbouwwerken:=
+ 9.92*1.27*h_rollaag {Rollagen boven gevelopeningen};
END;
BEGIN
Maak_Lagen;
Maak_Klassen;
h_rollaag :=0;
laag_handle:=FLayer;
WHILE laag_handle<>NIL DO BEGIN
laag_naam:=GetLName(laag_handle);
Layer(laag_naam);
DSelectAll;
SelectObj(C='Schrijnwerk - Opening');
object_handle:=FSObject(laag_handle);
WHILE object_handle<>NIL DO BEGIN
h_rollaag:=h_rollaag+Str2Num(GetRField(object_handle,'D - Gevelopening','Breedte'));
object_handle:=NextSObj(object_handle);
END;
laag_handle:=NextLayer(laag_handle);
END;
END;
run(Bereken_Prijs);[/code]