Arbeitseinheit als Project-Setting + Doc-Open-Check
Statt jeden Wert im Code zu konvertieren wird sichergestellt dass das
Doc in der gewuenschten Unit ist:
- defaults.unit ('meters'|'millimeters'|'centimeters') in
dossier_project_settings, Default 'meters'
- ProjectSettings-Dialog "Voreinstellungen" Tab: neue Sektion
"Arbeitseinheit" mit Toggle-Group fuer m/cm/mm
- get_project_unit() + get_project_unit_enum() Helper in rhinopanel
- startup._check_doc_unit() prueft beim Doc-Open ob ModelUnitSystem
matched — bei Mismatch Eto-MessageBox "Doc auf X umstellen?"
- "Yes" ruft _-Units _Model _<Unit> _Yes (Geometrie wird mit-skaliert)
- "No" setzt doc.Strings-Flag dossier_unit_checked → keine erneute Frage
- Check laeuft beim _on_doc_opened-Hook + initial fuer aktives Doc
Vorgehen ist deutlich sauberer als der vor-revert unit-aware Code
(135 Zeilen Konvertierungslogik vs 80 Zeilen Check+Convert).
This commit is contained in:
@@ -799,6 +799,32 @@ export default function ProjectSettingsDialog({
|
||||
Voreinstellungen fuer neue Elemente. Pro-Element editierte
|
||||
Werte bleiben davon unberuehrt.
|
||||
</div>
|
||||
<DetailSection title="Arbeitseinheit">
|
||||
<div style={{ padding: '5px 0',
|
||||
display: 'flex', alignItems: 'center', gap: 6 }}>
|
||||
<span style={{ flex: 1, fontSize: 11,
|
||||
color: 'var(--text-primary)' }}>
|
||||
Einheit
|
||||
</span>
|
||||
<div style={{ display: 'flex', gap: 3 }}>
|
||||
{[
|
||||
{ code: 'meters', label: 'Meter (m)' },
|
||||
{ code: 'centimeters', label: 'cm' },
|
||||
{ code: 'millimeters', label: 'mm' },
|
||||
].map(u => (
|
||||
<BarToggle key={u.code} label={u.label}
|
||||
active={(draft.defaults.unit || 'meters') === u.code}
|
||||
onClick={() => setDefault('unit', u.code)}
|
||||
title={`Doc-Unit auf ${u.label} einstellen`} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div style={{ fontSize: 9, color: 'var(--text-muted)',
|
||||
lineHeight: 1.4, padding: '2px 0 4px' }}>
|
||||
Wenn ein geoeffnetes Doc nicht in dieser Einheit ist, fragt
|
||||
DOSSIER ob umgestellt werden soll. Architektur-Standard: Meter.
|
||||
</div>
|
||||
</DetailSection>
|
||||
<DetailSection title="Geschoss">
|
||||
<InlineNumberField label="Standard-Geschosshöhe"
|
||||
value={draft.defaults.geschossHoehe ?? 3.0}
|
||||
|
||||
Reference in New Issue
Block a user