Auswahl als Library-Item speichern (Step 3)

User selektiert in Rhino → klickt im Symbole-Tab 'Aus Auswahl' →
Selection wird in eine .3dm-Datei verpackt + Library-Item entsteht
(oder bestehendes wird aktualisiert).

Backend (library.py):
- save_selection_to_asset(doc, target_name): erstellt File3dm aus der
  aktuellen Selection, packt Geometry relativ zu BoundingBox.Min (Block-
  Origin am Ursprung), schreibt nach library/assets/

Backend (ProjectSettingsBridge):
- SAVE_SELECTION_AS_LIBRARY-Handler: holt Selection, fragt bei neuen
  Items via Rhino-GetString nach Name, schreibt .3dm, fuegt Item zum
  Manifest oder updated bestehendes (variant '2d'/'3d')

Frontend (Symbole-Tab):
- List-Footer: 'Aus Datei' + 'Aus Auswahl' Pills (neues Item)
- Pro 2D/3D-Slot im Detail: 'Datei wählen' + 'Aus Auswahl' Pills
  (Variante eines bestehenden Items befüllen)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 04:05:48 +02:00
parent c993935b17
commit 68b9d14453
4 changed files with 183 additions and 7 deletions
+10
View File
@@ -217,6 +217,16 @@ export function updateLibraryItem(id, patch) {
send('UPDATE_LIBRARY_ITEM', { id, patch })
}
export function deleteLibraryItem(id) { send('DELETE_LIBRARY_ITEM', { id }) }
// Aktuelle Rhino-Selection als Library-Item speichern. variant='2d'|'3d'.
// Wenn targetId gesetzt: bestehendes Item aktualisieren. Sonst neues
// Item (Backend fragt nach Namen via Rhino-Prompt).
export function saveSelectionAsLibrary(variant, targetId, itemType) {
send('SAVE_SELECTION_AS_LIBRARY', {
variant: variant || '2d',
targetId: targetId || null,
itemType: itemType || 'object',
})
}
// Schnitt/Ansicht — interaktiver 2-Punkt-Pick im Rhino-Viewport. Erzeugt
// eine neue Zeichnungsebene type=schnitt + 2D-Plan-Symbol + aktiviert sie.
// opts: { cutAtLine: bool, depthBack: m, heightMin: m, heightMax: m, namePrefix }