Tiesių laiptų skaičiuoklė

Bendrieji matmenys
Pakopos
Tetivos
Medienos ruošiniai

Aukštis virš galvos čia nėra ribojantis veiksnys — laiptai niekada nepraeina po viršutine perdanga.

Brėžinys
Vaizdas iš šono
Vaizdas iš priekio
Vaizdas iš viršaus
Šono detalė (pirmos pakopos)
Pakopos aukštis171mm
Laiptelio gylis305mm
Matmenys
SBendras ilgis (projekcija)4,48 m
MNuolydžio kampas32,9°
KPakopos aukštis171 mm
LŽingsnio gylis280 mm
OLaiptelio gylis305 mm
NTetivos ilgis5 337 mm
Pakopų skaičius17
Aukštis virš galvos
Anga turėtų prasidėti (nuo pagrindo)815 mm
Anga turėtų būti bent3,67 m
Medžiagos
Reikalinga tetivos mediena (abi pusės)10,67 m
Bendras laiptelių plotas4,39 m²
Laiptelių medienos tūris140,54 L
Tetivų medienos tūris116,01 L
Laiptelių mediena, ilgiu14,4 m
Perkamų laiptelių lentų skaičius3
Pakopų priekių mediena, ilgiu15,3 m
Perkamų pakopų priekių lentų skaičius3
Tetivų mediena, ilgiu10,67 m
Perkamų tetivos lentų skaičius2
Detalių sąrašas
LaiptelisKiekis: 16
Ilgis
900 mm
Plotis
305 mm
Storis
32 mm
Pakopos priekisKiekis: 17
Ilgis
900 mm
Plotis
139 mm
Storis
19 mm
TetivaKiekis: 2
Ilgis
5 337 mm
Plotis
286 mm
Storis
38 mm

Apie skaičiuoklę

Ši skaičiuoklė padeda suprojektuoti tiesų laiptų maršą pagal jau esančią grindų angą: įvedus angos matmenis, bendrą aukštį (nuo apatinių iki viršutinių grindų) ir pageidaujamą pakylos aukštį, ji išveda pakopų skaičių, kiekvienos pakopos matmenis, patikrina galvos laisvę visame nueinamame kelyje ir parengia brėžinį bei medienos pjaustymo sąrašą. Rezultatas — pats brėžinys, ne vienas skaičius: tai projektavimo (kind: 'design'), o ne kiekio skaičiuoklė.

Formulė

Angos anga (opening) yra pirminis duomuo, ne rezultatas — ją matuoja žmogus, jau turintis išpjautą (ar planuojamą) skylę grindyse, o ne suprojektuotą laiptą. Iš jos ir bendro aukščio išvedama viskas kita:

pakylų (riserų) skaičius = suapvalinta(bendras aukštis / pageidaujamas pakylos aukštis)
                            (apribota nuo 2 iki 20)
pakylos aukštis = bendras aukštis / pakylų skaičius   (tiksliai, be liekanos praradimo)

pakopų (treads) skaičius = pakylų skaičius − 1, jei viršutinė pakopa lygi su grindimis
                          = pakylų skaičius,        jei kiekviena pakyla turi savo pakopą

pakylų skaičius (riserCount) nebėra tiesiogiai įvedamas laukas — tai buvęs modelis, reikalavęs iš vartotojo jau žinoti atsakymą. Dabar tai tik pageidaujamas pakylos aukštis (targetRiserHeight), o realus pakylų skaičius ir aukštis išvedami iš jo ir bendro aukščio.

Pakopos plotis (going) — dvi kryptys:

jei openingExactFit = false (NUMATYTOJI nuo 2026-08-23):
  pakopos plotis = vartotojo įvestas `going`
  bendras maršo ilgis = pakopos plotis × pakopų skaičius   (nepriklausomai nuo angos ilgio)

jei openingExactFit = true (pasirenkama):
  bendras maršo ilgis = angos ilgis − noselės iškyša
  pakopos plotis = bendras maršo ilgis / pakopų skaičius

Kodėl numatytoji reikšmė pasikeitė: realiame gyvenime grindų anga paprastai išpjaunama DIDESNĖ nei pats maršas, o maršas pristatomas prie vieno jos krašto, likusiai angos daliai liekant atvirai už maršo pradžios (dažniausiai virš aikštelės ar žemiau esančios patalpos) — anga, tiksliai sutampanti su maršo ilgiu, yra retesnis, ne bendras atvejis. Todėl openingExactFit = false (naujoji numatytoji reikšmė) laiko going tikru, nepriklausomu projektiniu sprendimu — angos ilgis visai nedalyvauja maršo dydyje. openingExactFit = true išlieka pasiekiama kaip pasirinkimas tais atvejais, kai anga tikrai buvo iškirsta lygiai pagal maršo dydį — tada anga realiai nustato pakopos plotį ir visą maršo ilgį, kaip aprašyta žemiau.

Kodėl atimama noselės iškyša (tik openingExactFit = true kelyje): kiekvienos pakopos noselė kyšo į priekį už savo pakylos linijos lygiai per noseOverhang — įskaitant PIRMĄJĄ pakopą, kurios noselė kyšo prieš patį maršo pradžios tašką. Jei bendras maršo ilgis būtų lygus tiksliai angos ilgiui (be atimties), angos artimasis kraštas visada sutaptų su maršo pradžios tašku, o pirmosios pakopos noselė visada liktų šiek tiek už angos ribos — nesvarbu, koks angos ilgis ar padėtis. Atimant noselės iškyšą iš bendro maršo ilgio, angos artimasis kraštas atsiduria lygiai noselės iškyša prieš maršo pradžios tašką (žr. toliau) — kaip tik tiek, kiek reikia, kad pirmosios pakopos noselė patektų į angos ribas.

nuolydžio kampas = atan2(bendras aukštis, bendras maršo ilgis)
tetivos ilgis = √(bendras aukštis² + bendras maršo ilgis²)

Maršo padėtis po anga: maršo viršus struktūriškai visada atsiremia į angos tolimą kraštą (ten prasideda viršutinių grindų paviršius). Angos artimo krašto padėtis (žymima raide A) yra išvedama, ne įvedama: bendras maršo ilgis − angos ilgis. Kai openingExactFit = false (numatytoji), ši reikšmė paprastai gerokai neigiama — reali anga paprastai iškirsta didesnė nei maršas, todėl going (tikras, nuo angos nepriklausomas dydis) dažniausiai duoda trumpesnį maršą už angą, ir maršo pradžia jau atsiduria angos ribose, su atsarga arčiau artimojo krašto. Kai openingExactFit = true (pasirenkama), ši reikšmė visada lygi lygiai minus noselės iškyšai (pvz., −25 mm su numatytąja 25 mm iškyša) — ne nuliui — nes maršo ilgis tada lygus angos ilgiui minus noselės iškyša (žr. aukščiau). Skirtingai nuo ankstesnės skaičiuoklės versijos, atskiro „angos pradžios" (openingStart) lauko nebėra — jo apibrėžimas („nuo maršo pradžios") nebeturi prasmės, kai pati maršo pradžia yra kintantis, ne fiksuotas taškas.

Maršo padėtis skersai (per angos plotį) valdoma per stairPositionInOpening (left/centered/right) — tai vienintelis laisvas pozicijos pasirinkimas, likęs šioje skaičiuoklėje. Atskaitos taškas — pats kopiantis žmogus, stovintis apatiniame aukšte priešais maršą, žiūrintis į jį, prieš žengiant pirmą žingsnį: 'right' visada reiškia kopiančiojo dešinę ranką, ne brėžinio +X ašį (modelio +X yra kopiančiojo KAIRĖ ranka). Ši sąvoka bendra visoms laiptų skaičiuoklėms šioje platformoje (žr. CLAUDE.md).

Galvos laisvės patikra skaičiuojama kiekvienai pakopai, esančiai po perdanga (t. y. iki angos artimo krašto), kaip atstumas nuo jos noselės iki lubų (bendras aukštis minus perdangos storis), laikant, kad lubos eina per visą tą atkarpą neišpjautos — tai tikrinimas per visą nueinamą kelią po perdanga, ne tik vieną tašką. Jei mažiausia iš šių prošvaisų yra mažesnė už reikalaujamą galvos laisvę, grąžinama klaida su nurodymu, kiek reikėtų pratęsti angą. Papildomai apskaičiuojama, koks minimalus angos ilgis (ir nuo kurios vietos) būtų reikalingas vien galvos laisvei užtikrinti — nepriklausomai nuo realiai įvestos angos.

Pakopų patogumo patikra (2×pakyla+plotis) ir nuolydžio patogumo patikra (30–45°) nepakito nuo ankstesnės versijos — žr. žemiau, Prielaidos ir ribos.

Medienos poreikis (kiek lentų pirkti) taip pat nepakito: kiekvieno elemento tipo bendras reikalingas ilgis dalijamas iš standartinio lentos ilgio ir apvalinamas aukštyn — paprastas kiekio įvertinimas, ne pjaustymo optimizavimas.

Pavyzdys

Numatytosios reikšmės: angos ilgis 4700 mm, angos plotis 1100 mm, maršas centruotas angoje, bendras aukštis 2900 mm, maršo plotis 900 mm, pageidaujamas pakylos aukštis 175 mm, pakopos plotis 280 mm (tikras įvestas dydis, openingExactFit = false), viršutinė pakopa lygi su grindimis, pakopos storis 32 mm, noselės iškyša 25 mm, pakylos storis 19 mm, tetivos storis 38 mm, tetivos gylis 286 mm, perdangos storis 300 mm, reikalaujama galvos laisvė 2000 mm, standartinės lentos ilgis 6000 mm.

pakylų skaičius = suapvalinta(2900 / 175) = suapvalinta(16,571) = 17
pakylos aukštis = 2900 / 17 ≈ 170,59 mm
pakopų skaičius = 17 − 1 = 16 (viršutinė pakopa lygi su grindimis)

pakopos plotis = 280 mm   (tikras įvestas dydis, angos ilgis nedalyvauja)
bendras maršo ilgis = 280 × 16 = 4480 mm
pakopos gylis (su nosele) = 280 + 25 = 305 mm
angos artimasis kraštas = 4480 − 4700 = −220 mm

nuolydžio kampas = atan2(2900, 4480) ≈ 0,5745 rad ≈ 32,92°
tetivos ilgis = √(2900² + 4480²) ≈ 5336,70 mm

2×pakyla+plotis = 2×170,59 + 280 ≈ 621 mm  (600–660 mm intervale → jokio įspėjimo)

lubos po perdanga = 2900 − 300 = 2600 mm

Angos artimasis kraštas (−220 mm) yra prieš pat maršo pradžios tašką — anga (4700 mm) buvo sąmoningai iškirsta didesnė nei maršas (4480 mm), kaip įprasta realioje praktikoje (žr. Formulė), todėl VISOS 16 pakopų patenka į angos ribas. Skaičiuoklė grąžina informacinį pranešimą, kad nė viena pakopa nėra po neišpjauta perdangos dalimi. Atskira, tik galvos laisvei skirta „koks angos dydis būtų reikalingas" skaičiuoklė šiuo atveju grąžina pradžios tašką ≈815 mm ir ilgį ≈3665 mm — tai izoliuota, nepriklausoma nuo realiai naudojamos angos reikšmė, rodanti, kad daug kuklesnė anga (nuo ≈815 mm iki maršo viršaus) taip pat pakaktų vien galvos laisvei.

Skaičiuoklė šiems įvesties duomenims grąžina lygiai tą patį: pakylos aukštį ≈170,59 mm, pakopos plotį 280 mm, pakopos gylį 305 mm, bendrą maršo ilgį 4480 mm, tetivos ilgį ≈5336,70 mm, 17 pakylų, 16 pakopų. Diagnostika: vienas informacinis pranešimas, kad nė viena pakopa nėra po neišpjauta perdangos dalimi — jokių įspėjimų (2×pakyla+plotis = 621 mm patenka į 600–660 mm intervalą).

Medienos sąrašas šiems duomenims: 16 pakopų lentų (900×305×32 mm kiekviena — reikia 3 lentų po 6000 mm, bendras ilgis 14 400 mm), 17 pakylų lentų (900×≈138,59×19 mm kiekviena, reikia 3 lentų po 6000 mm — bendras ilgis 15 300 mm), 2 tetivos (kiekviena ≈5336,70×286×38 mm, bendras ilgis ≈10 673,41 mm, reikia 2 lentų po 6000 mm).

Dažni klausimai

Kodėl pakylų (riserų) skaičiaus nebėra tarp įvesties laukų? Nes anksčiau tai reikalavo vartotojo jau žinoti atsakymą. Dabar įvedamas tik pageidaujamas pakylos aukštis (targetRiserHeight) — realus pakylų skaičius ir tikslus aukštis apskaičiuojami iš jo ir bendro aukščio.

Ar anga tik tikrinama, ar ji realiai nustato pakopos plotį? Priklauso nuo openingExactFit. Numatytoji reikšmė (false) laiko going tikru įvestu dydžiu — pakopos plotis imamas tiesiai iš jūsų įvesto going lauko, o maršo ilgis skaičiuojamas iš jo; angos ilgis tada niekaip nedalyvauja maršo dydyje, nes realaus gyvenimo anga paprastai iškertama didesnė nei pats maršas (žr. Formulė). Įjungus openingExactFit, anga realiai nustato tiek pakopos plotį, tiek visą maršo ilgį — bendras maršo ilgis visada lygus angos ilgiui minus noselės iškyša (ne tiksliai angos ilgiui, kad pirmosios pakopos noselė patektų į angos ribas) — naudinga, kai anga tikrai buvo iškirsta lygiai pagal maršo dydį. Patogumo patikra vis tiek įspės, jei rezultatas neatitinka 2×pakyla+plotis formulės, nesvarbu, kuris kelias naudojamas.

Kodėl nebėra atskiro „angos pradžios" lauko? Nes anksčiau jis buvo apibrėžiamas nuo maršo pradžios, o maršo pradžia dabar yra išvedamas, kintantis dydis, ne fiksuotas atskaitos taškas antram laukui apibrėžti. Angos artimo krašto padėtis dabar rodoma kaip rezultatas (brėžinyje, žymima A), ne įvedama.

Ką reiškia 'left'/'right' prie maršo padėties angoje? Tai kopiančiojo žmogaus, stovinčio prieš maršą apatiniame aukšte, savo dešinė/kairė ranka — ne brėžinio ašis. Ta pati sąvoka naudojama visose laiptų skaičiuoklėse šioje platformoje.

Ar galvos laisvė tikrinama tik vienoje vietoje? Ne — tikrinama kiekviena pakopa, esanti po perdanga (iki angos artimo krašto), ir rodoma mažiausia iš jų prošvaisa. Papildomai apskaičiuojama, koks minimalus angos ilgis būtų reikalingas vien galvos laisvei — tai atsakymas į „kiek reikėtų", nepriklausomas nuo jūsų realiai įvestos angos.

Kodėl skaičiuoklė mini du skirtingus standartus 2×pakyla+plotis patikrai? Nes DIN 18065 ir Lietuvos STR 2.02.01:2004 abu apibrėžia tą pačią formulę, bet skirtingu taikiniu (630 mm ir 650 mm atitinkamai) — tai realus standartų neatitikimas, kurį skaičiuoklė sąžiningai atskleidžia, o ne nutyli, pasirinkdama vieną iš jų kaip „teisingą".

Ar medienos sąrašas įvertina pjaustymo atliekas? Ne. Kiekvieno elemento bendras ilgis tiesiog dalijamas iš standartinio lentos ilgio ir apvalinamas aukštyn — tai kiekio įvertinimas, ne optimalus pjaustymo planas.

Prielaidos ir ribos

meta.standards cituoja DIN 18065 ir STR 2.02.01:2004 — abu naudojami tai pačiai 2×pakyla+ plotis patogumo formulei, bet su skirtingais taikiniais (630 mm ir 650 mm) — šis neatitikimas pranešamas, ne išsprendžiamas skaičiuoklėje. 30–45° nuolydžio patogumo intervalas yra bendra, jokiam iš šių dviejų standartų tiksliai neatitinkanti taisyklė ir šiam patikrinimui standartas necituojamas.

Reikalaujama galvos laisvė yra vartotojo įvestis be cituojamo minimumo — ji nustatoma nacionaliniais ar vietiniais reikalavimais, kurie tarpusavyje skiriasi, todėl skaičiuoklė nenurodo, kuris konkrečiai galioja.

Pageidaujamas pakylos aukštis (targetRiserHeight) apribotas 150–200 mm — viršutinė riba atitinka STR 2.02.09:2005 §47.4 vidaus pakylos aukščio ribą (≤200 mm), apatinė riba yra šios skaičiuoklės pačios sprendimas (žemesnis taikinys tik ilgina maršą), ne cituotas šaltinis. Angos-tiksliai-pagal-maršą kelio (openingExactFit = true) vidinis apribojimas (220–400 mm) yra tik protingumo riba tam keliui — going lauko paties ribos (150–500 mm, taikomos numatytajame openingExactFit = false kelyje) sąmoningai platesnės, nes tikras projektinis sprendimas kaip tik ir gali išeiti už patogaus intervalo, kai to reikalauja vietos trūkumas; ar rezultatas patogus, praneša atskira diagnostika, ne šios ribos.

Ši skaičiuoklė yra viena iš dviejų šioje platformoje, grąžinančių parts[] — konkrečios fizinės detalės (pakopos, pakylos, tetivos) su realiais pjovimo matmenimis, ne bendrą medžiagos kiekį. Medienos lentų skaičius yra paprastas kiekio dalijimas iš standartinio lentos ilgio, ne pjaustymo plano optimizavimas.

Tetivos likusio gylio po įpjova (matoma detalės brėžinyje) neturi cituojamo minimumo — reikalingas likutinis gylis priklauso nuo apkrovos lentelių, kurios skiriasi pagal jurisdikciją.

kalkivo