Skip to content

Serpentine3D 0.7.1

Choose a tag to compare

@chisomobanzi chisomobanzi released this 22 Aug 05:58
· 61 commits to main since this release

Added

  • A layer carries a print width and a linetype you can set in the panel.
    The layers panel grows a Print column and a Type column: Print is the pen
    width in millimetres a layer plots at, blank for the device default, and
    Type cycles the layer's linetype. A detail on a layout now plots each
    layer's edges at that layer's width, in PDF and in DXF, rather than the one
    width every line used to get. The on-screen weight is untouched, so nothing
    looks different in the viewport, and the width round-trips through a .3dm as
    Rhino's PlotWeight. Requested by Jonas Pedrotti.

  • mergeallcoplanarfaces tidies a polysurface after a boolean. A union
    of two boxes side by side leaves each spanning side split into two
    coplanar strips, so the result has ten faces where six would do.
    mergeallcoplanarfaces (alias mergeallfaces) fuses coplanar neighbours
    and drops the seam edges with them, so the box reads as a box again. This
    is Rhino's MergeAllCoplanarFaces. The volume does not move, and an object
    with nothing to merge is left alone. Requested by Jonas Pedrotti.

  • join works on surfaces, not just curves. Pick two surfaces that
    share an edge and join (alias j) now stitches them into one
    polysurface, exactly as it always has for curves. Surfaces that close up
    a volume between them, the six faces of a box for instance, come back as
    a solid rather than a hollow shell. Surfaces that touch nothing are left
    where they are, and the command says so instead of quietly bundling them
    together. Requested by Jonas Pedrotti.

Fixed

  • A boolean that cuts a solid in two now gives you two objects. Saw a
    bar in half with booleandifference and Serpentine kept it as one: one
    name in the layers panel, one gumball sitting in the gap, and both halves
    moving together. The kernel was never confused, it handed back a compound
    with a solid in it per piece, but nothing downstream looked inside. Now
    each loose piece is its own object, the first one keeping the original's
    id so its name, its layer and anything built from it survive the cut.
    Union and intersection do the same, so unioning two solids that never
    touch leaves two objects rather than one. Anything still joined is left
    alone, including a solid with a void in it, which has a second shell but
    is emphatically still one object. Reported by Jonas Pedrotti.

  • explode on a severed solid gives you the pieces, not the faces.
    A bar cut in half exploded into twelve faces rather than the two bars,
    because the shape was asked what kind of thing it was before it was asked
    what it held. Compounds of curves exploded into nothing at all, and now
    come apart properly too.

  • Text files are UTF-8 everywhere, not the machine's locale. A document,
    a config, an autosave, an .obj, an .stl, a .usda or a journal was read and
    written in whatever encoding the operating system defaulted to, which is
    UTF-8 on Linux and macOS but can be cp1252 on a Windows box in a non-English
    locale. A layer name or a file path outside ASCII round-tripped to mojibake,
    or raised, on that one machine and nowhere we could reproduce. Every text
    file now states UTF-8.