Regn omkretsen av gulv mot grunnen av geometrien
B′ etter NS-EN ISO 13370 trenger omkretsen av grunnflaten. Den regnes nå av omrisset til dekket i modellen, i stedet for å antas av arealet. For Nordhusstykket 5 gir modellen 39,7 m mot 40 m satt for hånd. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeH3y8fwTaTudaD88P57o
This commit is contained in:
Generated
+1
-1
@@ -222,7 +222,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "enok"
|
name = "enok"
|
||||||
version = "0.4.7"
|
version = "0.4.8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"approx",
|
"approx",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "enok"
|
name = "enok"
|
||||||
version = "0.4.7"
|
version = "0.4.8"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Årlig energiberegning og energirapport for boliger etter NS 3031 (timesmetode, ISO 52016-1)"
|
description = "Årlig energiberegning og energirapport for boliger etter NS 3031 (timesmetode, ISO 52016-1)"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|||||||
+5
-1
@@ -187,6 +187,7 @@ pub fn fra_tekst_med(tekst: &str, standardnavn: &str, valg: &Importvalg) -> Resu
|
|||||||
normal: flate.map(|f| f.normal),
|
normal: flate.map(|f| f.normal),
|
||||||
z: plass.map(|p| p.2).unwrap_or(0.0) + flate.map(|f| f.hoyde).unwrap_or(0.0),
|
z: plass.map(|p| p.2).unwrap_or(0.0) + flate.map(|f| f.hoyde).unwrap_or(0.0),
|
||||||
topp: plass.map(|p| p.2).unwrap_or(0.0) + flate.map(|f| f.topp).unwrap_or(0.0),
|
topp: plass.map(|p| p.2).unwrap_or(0.0) + flate.map(|f| f.topp).unwrap_or(0.0),
|
||||||
|
omkrets: flate.map(|f| f.omkrets()).unwrap_or(0.0),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -391,7 +392,8 @@ pub fn fra_tekst_med(tekst: &str, standardnavn: &str, valg: &Importvalg) -> Resu
|
|||||||
mot,
|
mot,
|
||||||
b_faktor: None,
|
b_faktor: None,
|
||||||
absorptans: None,
|
absorptans: None,
|
||||||
omkrets: None,
|
omkrets: (typ == FlateType::Gulv && mot == Mot::Grunn && d.omkrets > 0.0)
|
||||||
|
.then_some(d.omkrets),
|
||||||
dybde: (i_kjeller && mot == Mot::Grunn).then_some(kjellerdybde - over_bakken),
|
dybde: (i_kjeller && mot == Mot::Grunn).then_some(kjellerdybde - over_bakken),
|
||||||
over_terreng: (i_kjeller && mot == Mot::Grunn).then_some(over_bakken),
|
over_terreng: (i_kjeller && mot == Mot::Grunn).then_some(over_bakken),
|
||||||
sone,
|
sone,
|
||||||
@@ -1320,6 +1322,8 @@ struct Del {
|
|||||||
z: f64,
|
z: f64,
|
||||||
/// Overkanten av delen over byggets nullpunkt, m. For en kjellervegg er det overkant mur.
|
/// Overkanten av delen over byggets nullpunkt, m. For en kjellervegg er det overkant mur.
|
||||||
topp: f64,
|
topp: f64,
|
||||||
|
/// Omkretsen av delens omriss, m. Et gulv mot grunnen trenger den for B′.
|
||||||
|
omkrets: f64,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Oversetter en fritekstverdi fra modellen til en bygningskategori.
|
/// Oversetter en fritekstverdi fra modellen til en bygningskategori.
|
||||||
|
|||||||
@@ -224,6 +224,22 @@ fn overlapper(a: &[f64; 4], b: &[f64; 4]) -> bool {
|
|||||||
dekning(a[0], a[1], b[0], b[1]) && dekning(a[2], a[3], b[2], b[3])
|
dekning(a[0], a[1], b[0], b[1]) && dekning(a[2], a[3], b[2], b[3])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Hovedflate {
|
||||||
|
/// Omkretsen av flatens omriss, m, regnet av utstrekningen i flatens eget plan.
|
||||||
|
///
|
||||||
|
/// Et gulv mot grunnen trenger omkretsen for B′ etter NS-EN ISO 13370. Omrisset regnes
|
||||||
|
/// som et rektangel, som stemmer godt for de fleste grunnflater.
|
||||||
|
pub fn omkrets(&self) -> f64 {
|
||||||
|
let bredde = self.plan[1] - self.plan[0];
|
||||||
|
let lengde = self.plan[3] - self.plan[2];
|
||||||
|
if bredde > 0.0 && lengde > 0.0 {
|
||||||
|
2.0 * (bredde + lengde)
|
||||||
|
} else {
|
||||||
|
0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Henter geometrien til et produkt via `Representation`, med én oppføring per geometridel.
|
/// Henter geometrien til et produkt via `Representation`, med én oppføring per geometridel.
|
||||||
pub fn netter_for_produkt(fil: &Fil, representasjon: Option<u64>) -> Vec<Nett> {
|
pub fn netter_for_produkt(fil: &Fil, representasjon: Option<u64>) -> Vec<Nett> {
|
||||||
let mut deler = Vec::new();
|
let mut deler = Vec::new();
|
||||||
|
|||||||
Reference in New Issue
Block a user