Skip to content

openskp Python 1.3.1 (GitHub-only, not on PyPI)

Choose a tag to compare

@iamahsanmehmood iamahsanmehmood released this 09 Sep 10:29
· 143 commits to main since this release
3b148f9

Not published to PyPI - a real, tested, tagged release (531 tests passing, lint clean). Install by pinning this tag:

pip install "openskp[fragments] @ git+https://github.com/iamahsanmehmood/openskp.git@preview-python-v1.3.1#subdirectory=packages/python"

What's new since preview-python-v1.3.0

Real names for named organizational wrappers with no geometry of their own (PR #286) - found via a real FrameBuilder-authored steel-framing file. A wall like "W-2" is often a pure SketchUp group with a real name, wrapping several separately-meshed parts (studs, plates, cladding) rather than having any geometry of its own. Previously such a node never got a local_id, so its real name had nowhere to attach in the Fragments/IFC export - a viewer's tree showed only the wall's category repeated for every wall, never which one was which.

  • build_scene()/build_instanced_scene()'s name-resolution fallback now tries the definition's own name before falling back to the internal index - skipping SketchUp's own auto-generated Group#1/Component#12 placeholders, which are no more meaningful than the index itself.
  • Both carry a new name_is_generated flag, so a consumer can tell a real name from a generated placeholder instead of presenting the latter as if it were real data.
  • The Fragments exporter now tracks any node with a real name as its own item (gets a local_id, Name, GUID) even with zero geometry of its own. generated_name_guids carried in Model.metadata, same mechanism as layer_hidden.

Verified against a real production file and the real @thatopen/fragments runtime, not just this project's own reader.