2025-05-12 10:07:51 +03:00

130 lines
6.4 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{\rtf1\ansi\ansicpg1254\deff0\deflang1055{\fonttbl{\f0\fmodern\fprq1\fcharset162{\*\fname Courier New;}Courier New TUR;}{\f1\fswiss\fprq2\fcharset162{\*\fname Arial;}Arial TUR;}{\f2\fnil\fcharset162 Tahoma;}}
{\colortbl ;\red0\green0\blue128;\red0\green0\blue0;}
\viewkind4\uc1\pard\lang1031\b\f0\fs24 //******Fliesen zeichnen******************************\par
\cf1\b0\i\fs20\par
// Zeichnen einer Wand mit Fiesen\cf2\i0\par
\par
\b var\b0 \par
\cf1\i // h\'f6he und breite der wand, h\'f6he und Breite der Fliese\cf2\i0\par
hoehe,Breite,fliesenhoehe,fliesenbreite:Integer;\par
resthoehe,restBreite,rrfliesenhoehe,rrfliesenbreite:Integer;\par
\cf1\i //Ma\'dfstab und breite der Fugen\cf2\i0\par
masstab,fugenbreite :Integer;\par
\cf1\i //Fl\'e4che der Fliesen\cf2\i0\par
fl :double;\par
\cf1\lang2057\i //Hilfsvariablen\cf2\i0\par
row,col:Duoble;\par
x,y,i:Double;\par
\lang1036 x1,x2,y1,y2:Double; \par
\lang1031\b begin\b0\par
clear(\cf1 0\cf2 );\par
\cf1\i // Wandgr\'f6\'dfe, Fliesengr\'f6\'dfe,\cf2\i0\par
\cf1\i //Ma\'dfstab und Fugenbreite abfragen\cf2\i0\par
hoehe := strtoint(inputbox(\cf1 'Wandh\'f6he'\cf2 ,\cf1 'Wie hoch(lang)ist die Fl\'e4che in mm?'\cf2 ,\cf1 ''\cf2 ));\par
Breite:= strtoint( inputbox(\cf1 'Wandbreite'\cf2 ,\cf1 'Wie breit ist die Fl\'e4che in mm?'\cf2 ,\cf1 ''\cf2 ));\par
fliesenhoehe :=strtoint(inputbox(\cf1 'Fliesenh\'f6he'\cf2 ,\cf1 'Wie hoch(lang)ist Fliese in mm?'\cf2 ,\cf1 ''\cf2 ));\par
fliesenbreite:= strtoint(inputbox(\cf1 'Fliesenbreite'\cf2 ,\cf1 'Wie breit ist die Fliese in mm?'\cf2 ,\cf1 ''\cf2 ));\par
masstab := strtoint(inputbox(\cf1 'Ma\'dfstab'\cf2 ,\cf1 'In welchem ma\'dfstab m\'f6chten Sie zeichnen 1 x '\cf2 ,\cf1 '50'\cf2 ));\par
fugenbreite := strtoint(inputbox(\cf1 'Fugenbreite'\cf2 ,\cf1 'Wie breit sollen die Fugen sein(mm)?'\cf2 ,\cf1 '3'\cf2 ));\par
\cf1\i //masstab setzten\cf2\i0\par
mapscale:=masstab; \par
\cf1\i // Wand oder Fl\'e4che zeichnen\cf2\i0\par
x1:= \cf1 10\cf2 ;\par
y1:= \cf1 10\cf2 ;\par
x2:= \cf1 10\cf2 +(breite/masstab);\par
y2:=\cf1 10\cf2 +(hoehe/masstab);\par
\lang2057 Rectangle(\cf1 0\cf2 ,x1,y1,x2,y2,\cf1 1\cf2 ,pssolid,clblack,bssolid,clgray,false);\par
\cf1\lang1031\i // erste Fliese zeichnen\cf2\i0\par
x1:=\cf1 10\cf2 +(fugenbreite/masstab);\par
y1:=\cf1 10\cf2 +(fugenbreite/masstab);\par
x2:= \cf1 10\cf2 +((fugenbreite+fliesenbreite)/masstab);\par
\lang2057 y2:=\cf1 10\cf2 +((fugenbreite+fliesenhoehe)/masstab);\par
\par
Rectangle(\cf1 0\cf2 ,x1,y1,x2,y2,\cf1 1\cf2 ,psclear,clred,bssolid,clred,true);\par
\par
\cf1\lang1031\i // Anzahl der ganzen fliesen in breite berechnen\cf2\i0\par
col := ((breite - fugenbreite)/ (fliesenbreite+fugenbreite));\par
\cf1\lang2057\i //runden\cf2\i0\par
i:=StrtoInt(FormatFloat(\cf1 0\cf2 ,col));\par
\cf1\lang1031\i // zu viele spalten dann eine abschneiden, format rundet nur auf!!!\cf2\i0\par
\lang2057\b if\b0 i> col \b then\b0\par
col:=i-\cf1 1\cf2\par
\lang1031\b else\b0\par
col:=i;\par
\par
\cf1\i //Anzahl der ganzen Fliesen in Spalte berechnen\cf2\i0\par
// zur Kontrolle showmessage(col);\par
row := ((hoehe - fugenbreite)/ (fliesenhoehe+fugenbreite));\par
\cf1\lang2057\i // runden\cf2\i0\par
i:=strtoint(formatfloat(\cf1 0\cf2 ,row));\par
\cf1\lang1031\i // zu viele Zeilen dann eine abschneiden, format rundet nur auf!!!\cf2\i0\par
\lang2057\b if\b0 i> row \b then\b0\par
row:=i-\cf1 1\cf2\par
\lang1031\b else\b0\par
row:=i;\par
// zur Kontrolle showmessage(row);\par
\cf1\i //Fl\'e4che der ganzen Fliesen berechnen in qm\cf2\i0\par
\lang2057 fl:= Fliesenhoehe * fliesenbreite * col*row/\cf1 100\cf2 ;\par
ArrayRectSelection((fliesenbreite +fugenbreite)/masstab,(fliesenhoehe+fugenbreite)/masstab,col,row); \par
\cf1\lang1031\i //Restfliesen berechen\cf2\i0\par
\par
restbreite:= breite-((fliesenbreite + fugenbreite)*col);\par
resthoehe:= hoehe-((fliesenhoehe+fugenbreite)*row);\par
\par
\cf1\i // Fliesen f\'fcr die letzte Spalte berechen\cf2\i0\par
rrfliesenhoehe := fliesenhoehe;\par
rrfliesenbreite := restbreite-(\cf1 2\cf2 *fugenbreite);\par
\cf1\i //Anfangspunkt f\'fcr letzte Spalte\cf2\i0\par
// zur Kontrolle showmessage(rrfliesenbreite);\par
\b if\b0 rrfliesenbreite > \cf1 0\cf2 \b then\b0\par
\b begin\b0\par
x1:= \cf1 10\cf2 +(col *(fliesenbreite+fugenbreite))+fugenbreite;\par
y1:= \cf1 10\cf2 +fugenbreite;\par
\par
x2:= x1+(rrfliesenbreite/masstab);\par
y2:= y1+(rrfliesenhoehe/masstab);\par
\cf1\i //alle selektionen aufheben\cf2\i0\par
deselectall(\cf1 0\cf2 );\par
\cf1\i //erstes Muster f\'fcr Restfliese zeichnen\cf2\i0\par
\lang2057 Rectangle(\cf1 0\cf2 ,x1,y1,x2,y2,\cf1 1\cf2 ,psclear,clred,bssolid,clred,true);\par
\cf1\lang1031\i // duplizieren\cf2\i0\par
ArrayRectSelection((rrfliesenbreite+fugenbreite)/masstab,(rrfliesenhoehe+fugenbreite)/masstab,\cf1 1\cf2 ,row); \par
\b end\b0 ;\par
\cf1\i // Fliesen f\'fcr die letzte Zeile berechen\cf2\i0\par
rrfliesenhoehe := resthoehe - (\cf1 2\cf2 *fugenbreite);\par
rrfliesenbreite := fliesenbreite;\par
\par
\cf1\i //Anfangspunkt f\'fcr letzte Zeile\cf2\i0\par
// zur Kontrolle showmessage(rrfliesenhoehe);\par
\lang2057\b if\b0 rrfliesenhoehe > \cf1 0\cf2 \b then\b0\par
\b begin\b0\par
x1:= \cf1 10\cf2 +fugenbreite;\par
\lang1031 y1:= \cf1 10\cf2 + row *(fugenbreite+fliesenhoehe)+fugenbreite;\par
x2:= x1+(rrfliesenbreite/masstab);\par
y2:= y1+(rrfliesenhoehe/masstab);\par
\cf1\i //alle selektionen aufheben\cf2\i0\par
deselectall(\cf1 0\cf2 );\par
\cf1\i //erstes Muster Zeile f\'fcr Restfliese zeichnen\cf2\i0\par
\lang2057 Rectangle(\cf1 0\cf2 ,x1,y1,x2,y2,\cf1 1\cf2 ,psclear,clred,bssolid,clred,true);\par
\cf1\i // duplizieren\cf2\i0\par
ArrayRectSelection((rrfliesenbreite+fugenbreite)/masstab,(rrfliesenhoehe+fugenbreite)/masstab,col,\cf1 1\cf2 ); \par
\lang1031\b end\b0 ;\par
\par
\cf1\i // letzte fliese zeichnen\cf2\i0\par
\par
\b if\b0 ((resthoehe > fugenbreite) \b and\b0 (restbreite >fugenbreite)) \b then\b0\par
\b begin\b0\par
rrfliesenhoehe := resthoehe - (\cf1 2\cf2 *fugenbreite);\par
rrfliesenbreite := restbreite-(\cf1 2\cf2 *fugenbreite);\par
x1:= \cf1 10\cf2 +(col *(fliesenbreite+fugenbreite))+fugenbreite;\par
y1:= \cf1 10\cf2 + row *(fugenbreite+fliesenhoehe)+fugenbreite;\par
x2:= x1+(rrfliesenbreite/masstab);\par
y2:= y1+(rrfliesenhoehe/masstab);\par
\lang2057 Rectangle(\cf1 0\cf2 ,x1,y1,x2,y2,\cf1 1\cf2 ,psclear,clred,bssolid,clred,false);\par
\lang1031\b end\b0 ;\par
\par
refresh;\par
\b end\b0 .\f1\par
\pard\cf0\lang1055\f2\fs16\par
}