Skip to content

layerling 1.116.1

Choose a tag to compare

@henmedia henmedia released this 28 Oct 12:29
· 1178 commits to main since this release
  • Opening a design from the server shows on its card (PR #976): A large design takes a few seconds to download, and nothing on the start page showed the click had landed, so people clicked again. While it opens, the card dims its picture under a turning circle and its line reads "Opening server design …"; further clicks, its menu and dragging wait until it is open, and an error frees the card again. Contributed by @foofoodog.

  • Groups and bundles tell themselves apart in the Objects panel (PR #974): A group or bundle shows the mark of the toolbar button that made it in front of its name, and the line under it reads "Group · 3 parts" or "Bundle · 3 parts", also after a rename (read from groupOperation). A bundle's open button says "Edit bundle". Contributed by @AbhiRoutray21.

  • A server folder for each user behind a proxy with sign-in, and downloads without filling the memory (PR #972): Behind an authenticating reverse proxy (Authelia, oauth2-proxy, Cloudflare Access, Basic Auth and the like), setting LAYERLING_USER_HEADER to the header the proxy sends with the signed-in name gives every user their own store under .users/<user>/: designs, folders, exports and settings, in the Node route and in store.php alike. It is off unless set and reads only that one header; a request without it gets the common store. Only safe when layerling is reached through the proxy alone, which the README and the Docker guide say. Opening a design from the server now streams the file instead of reading it whole into memory (createReadStream in the Node route, fpassthru in store.php). Tests in sharedProjectsAuthIsolation.test.ts. Contributed by @foofoodog.

  • Position from the middle or from the edges (#973): The position card has a switch Measured from: Centre / Edge, as the angle ruler measures from its corner or its middle. At Edge, X and Y show the body's left and front edges, taken from its real outline (also when it is turned), and a number typed there moves the body so that edge lands on it; Z stays its underside. The choice is kept in this browser with the cards (useInspectorCard("positionAtEdge") in ShapeInspector.tsx). A formula in X or Y is written for the middle, so at the edges the fields take plain numbers. Checked in the editor: a 40 x 20 mm box at X 10 shows -10 / -10 at its edges, typing 0 puts its middle at 20, turned by 90 degrees the edges follow its 20 mm side. Asked for by @willi1955.

  • Hole pattern: narrow rectangles and slots close together, the rows apart (#975): The pattern had one spacing for both directions, so a hole 2 mm wide and 14 mm high with a 2 mm wall stood 16 mm from its neighbour in the row as well. A rectangle or slot now has its own Rows centre to centre (rowSpacing in holePattern.ts): the spacing counts along the row and only has to clear the hole's width, the row spacing clears its height, and Wall between the holes sets both (holePatternMinRowSpacing). A staggered pattern also keeps two rows up clear. A pattern saved without a row spacing keeps its rows where its spacing put them. layerling_perforate_face takes rowSpacing too. Checked in the editor: 2 x 14 mm with a 2 mm wall gives 4 mm and 16 mm, 19 holes on a 46 mm face. Reported by @willi1955.

  • STEP files with several solids: every body and its colour (#830): A file can hold several bodies under one entry of its tree, the screws of a part say, and HOOPS Exchange writes them as surface models; such an entry came in as one part, so a stand of 390 bodies showed 85. Each solid, or each shell where an entry has no solid, is now a part of its own, numbered after the entry (bodiesOf in stepAssemblyImport.ts). The colours the file gives its bodies (a STYLED_ITEM on the body) come along too: the kernel's XCAF document leaves them out, so stepBodyColors in stepColors.ts follows them in the file's text from the product through its representations to the bodies, in their order. Colours on single faces are still not read. Tried with @ValSimDim's aquarium stand (390 parts in 5 s, each in its colour) and in stepColors.test.ts and stepAssemblyImport.e2e.ts.

  • A STEP export carries the colours as they show, no longer paler: The kernel takes a colour as linear light and writes it to the file as sRGB, so a part in #d12a2a came out as #ea7171 in another CAD program. exportShapesToStep now hands each colour over as linear light, unrounded, through the kernel's own XCAF document (stepColorForKernel; brepjs's exportAssemblySTEP takes only whole hex steps, which would shift dark colours by up to 6 steps). A part exported and read back keeps its colour exactly (stepAssemblyImport.e2e.ts).

  • A design restored from a backup into the server store keeps its picture: With new designs on the server, as in the Docker version, a restored design was uploaded before its picture from the backup reached it, so the server's card stayed blank until the design was next saved from the editor. The picture now goes up with the design. Reported by Jürgen Keller by mail.