Oeffnungen-Sublayer + Sturzlinien + Referenz-Layer + Pill-Inputs + Anordnen-Pill
- Oeffnungen-Subtree (Rahmen/Glas/Tuerblatt/Sims/Pane/Schwung/Sturz) als nested Children unter WAENDE im dossier_ebenen-Tree registriert + per-Kind Material (Glas mit Transparenz) - Sturzlinien bei 1:100 Tueren mit Innen/Aussen/Beide/Keine-Dropdown - Referenzlinien-Layer (19) als eigene Ebene fuer wand_axis + oeffnung_point - Swisstopo Patch-Terrain (Brep.CreatePatch) ersetzt das falsche Loft - Pill-Style fuer alle Inputs zentral via index.css - 2x2 Anordnen-Pill in der Oberleiste (BringToFront/Forward/Backward/SendToBack via Rhinos DisplayOrder, kein Z-Offset) - Chevron-Verschiebung in Ebenen-Panel ohne dass Siblings shiften - Fix: _update_ebene_field walked nur Top-Level, nested Sublayer-Style- Changes wurden nicht persistiert - Fix: Sturz-Linetype wurde bei jedem Wand-Regen zurueckgesetzt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+13
-2
@@ -64,6 +64,7 @@ export default function SwisstopoApp() {
|
||||
const [getContours, setGetContours] = useState(false)
|
||||
const [getContourTin,setGetContourTin]= useState(false)
|
||||
const [getContourSchicht, setGetContourSchicht] = useState(false)
|
||||
const [getContourPatch, setGetContourPatch] = useState(false)
|
||||
const [contourInt, setContourInt] = useState('2.0')
|
||||
// TLM3D deaktiviert: swisstopo liefert nur GDB/SHP/GPKG — kein DXF.
|
||||
// Rhino kann das nicht nativ importieren; OSM-Importer ist die Alternative
|
||||
@@ -134,7 +135,7 @@ export default function SwisstopoApp() {
|
||||
|
||||
const handleImport = () => {
|
||||
if (!center) { addLog('Bitte zuerst einen Standort wählen'); return }
|
||||
if (!getBuild && !getTerrain && !getContours && !getContourTin && !getContourSchicht && !getTlm) {
|
||||
if (!getBuild && !getTerrain && !getContours && !getContourTin && !getContourSchicht && !getContourPatch && !getTlm) {
|
||||
addLog('Mindestens eine Datenquelle wählen'); return
|
||||
}
|
||||
setLogs([])
|
||||
@@ -147,6 +148,7 @@ export default function SwisstopoApp() {
|
||||
if (getContours) kinds.push('contours')
|
||||
if (getContourTin) kinds.push('contour_tin')
|
||||
if (getContourSchicht)kinds.push('contour_schicht')
|
||||
if (getContourPatch) kinds.push('contour_patch')
|
||||
if (getTlm) kinds.push('tlm')
|
||||
const tlmList = Object.entries(tlmKinds).filter(([, v]) => v).map(([k]) => k)
|
||||
send('RUN_IMPORT', {
|
||||
@@ -344,7 +346,16 @@ export default function SwisstopoApp() {
|
||||
<Icon name="stacks" size={13} /> Schichtenmodell aus Höhenlinien
|
||||
</label>
|
||||
</Field>
|
||||
{(getContours || getContourTin || getContourSchicht) && (
|
||||
<Field label=""
|
||||
hint="Patch-Terrain: NURBS-Surface gefittet durch alle Höhenlinien (Rhinos Patch-Befehl). Glatte, kontinuierliche Topo-Oberfläche — die kanonische Methode für Terrain aus Konturen.">
|
||||
<label style={{ display: 'flex', alignItems: 'center', gap: 6,
|
||||
fontSize: 11, cursor: 'pointer' }}>
|
||||
<input type="checkbox" checked={getContourPatch}
|
||||
onChange={(e) => setGetContourPatch(e.target.checked)} />
|
||||
<Icon name="landscape" size={13} /> Patch-Terrain aus Höhenlinien
|
||||
</label>
|
||||
</Field>
|
||||
{(getContours || getContourTin || getContourSchicht || getContourPatch) && (
|
||||
<Field label="HÖHEN-ABSTAND">
|
||||
<Radio value={contourInt}
|
||||
options={[
|
||||
|
||||
Reference in New Issue
Block a user