Releases: carlopav/bonsai_salad
Releases · carlopav/bonsai_salad
Release list
v0.0.6
ifc_dxf
- New Accurate export method (default): real OCC/HLR section cuts for walls/columns via ifcopenshell's native SVG serializer (same engine as Bonsai's own SVG export), fused and hatched exactly like the Approximate pipeline. Doors, windows, furniture and sanitary fixtures use native 2D plan symbols with shared per-type blocks.
- Below-cut "view" walls/columns (visible but not sliced by the section plane) are now shown, reusing the Approximate pipeline's Shapely profile projection.
- Approximate pipeline unchanged in behaviour; both methods now share the DXF writer, template handling, curve extraction and plan-symbol logic (refactored into curves.py / plan_symbols.py / dxf_writer.py).
- Options panel moved above the Export button, with a new Approximate/Accurate toggle and descriptive tooltips.
Root README
- Documents the two ifc_dxf export methods; removed a stale note about Pset_DXFSource (dropped from dxf_ifc earlier).
v0.0.5
dxf_ifc
- Source panel: import the full drawing, a single block, or a single layer (auto-scanned when toggled)
- Destination panel: overwrite the active element's context, pick another context, or create a new IfcAnnotation assigned to a spatial container
- INSERT blocks expanded inline via ezdxf virtual_entities() instead of IfcMappedItem (fixes a Bonsai switch_representation crash)
- Removed the Pset_DXFSource writer
ifc_dxf
- Walls with IfcMaterialLayerSetUsage now decompose their section into per-material-layer hatches (IfcWall_Hatches_), coloured by a keyword-based classifier (concrete/insulation/masonry/wood)
- New IfcWall_LayersSubdivision layer draws the boundary lines between material layers
- Fixed a regression where enabling material-layer hatches suppressed the standard hatch on IfcColumn and any wall without a material layer set
v0.0.4
Changes
- Refactored ifc_dxf core into
ifc_dxf/core/package (no Blender dependency) - DXF template moved to
ifc_dxf/templates/ - Annotative text styles and cartiglio auto-fill from IFC drawing data
- Annotation scale XREC updated per viewport scale
- Test infrastructure:
tests/ifc_dxf/with pytest suite and first IFC fixture - English documentation in
ifc_dxf/README.md
v0.0.3
ifc_dxf
- New template
ifc_dxf_template_metric.dxf: cartiglio A1 con campiIdentification,Name,Scale,Date; stili di testo annotative; dimstyledimensions_metric_mcon frecciaquota - Compilazione automatica del cartiglio all'export (dati dalla vista IFC, data generazione in dd.mm.yyyy)
- Viewport annotation scale aggiornata al volo in base alla scala del disegno
- Dimstyle export usa
dimensions_metric_mdal template (no piùBONSAI_DIMextra)
v0.0.2
ifc_dxf: annotative TEXT export
TEXT annotations are now exported as annotative DXF entities, responding to CANNOSCALE changes in BricsCAD/AutoCAD.
Changes
- Annotation scale: full architectural scale list in
ACAD_SCALELIST; current scale set viaAcDbVariableDictionary/CANNOSCALE - Annotative text styles: paper-space heights in template (
regular=2.5mm,large=3.5mm, etc.) - Annotative TEXT entities:
AcadAnnotativeXDATA + extension dict (AcDbContextDataManager → ACDB_ANNOTATIONSCALES → ACDB_TEXTOBJECTCONTEXTDATA_CLASS) referencing the current SCALE handle - Font fallback: resolves to best available system font from Bonsai CSS chain at export time
- Fix: DXFTagStorage coordinate group codes written as separate 10/20/30 tags
v0.0.1
bonsai_salad v0.0.1
First release. Contains two tools:
sheets_to_pdf
Export Bonsai drawing sheets to PDF directly from Blender.
ifc_dxf
Pure-Python IFC → DXF exporter (ezdxf + shapely + ifcopenshell), no Rust or OCC required.
Features:
- Bucket A: 2D native plan representations (IfcMappedItem, IfcIndexedPolyCurve, IfcTrimmedCurve, arcs, ellipses) → exact DXF LINE/ARC/CIRCLE/ELLIPSE entities, no tessellation
- Bucket B: wall sections from IfcExtrudedAreaSolid via Shapely — LWPOLYLINE outline + HATCH solid fill, openings subtracted
- Slab occlusion: elements hidden under floor slabs (XY footprint check, multi-building safe)
- Overhead windows/doors: fill elements above cut plane re-added after frustum culling, drawn on
IfcWindow_Overhead/IfcDoor_Overheadlayers (dashed) - Block naming via GlobalId (unique), BYBLOCK colour/linetype/lineweight on block entities
- Layer styles via
layer_styles.json(ACI color, lineweight, linetype) - Only layers actually used in the drawing are written to the DXF
$LTSCALEfromEPset_Drawing.Scale(e.g.1/100→ 0.01)- Zoom extents set automatically on open