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ą.