You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A paraboloid shape (#922): A new shape Paraboloid next to the half sphere: a dome whose height falls with the square of the distance from the axis, with a rounded tip and an oval footprint when width and depth differ. One property, the number of steps. It is a mesh body, not an exact CAD profile; it is in the shape catalogue, the command search and the AI bridge like the other shapes.
A font preview in the font list: The font of a text and of a name tag was a plain select that could only list names. It is now a list (FontPicker.tsx) that draws every font in its own letters, with the words of the text, so a font of one's own shows as it will come out, installed in the browser or not; the closed field shows the chosen font the same way. Arrow keys, Home, End, Enter, Escape and the first letter of a name work in it. The window of own fonts shows each font's name in it, and the fonts listed from the computer show theirs in their own letters through the browser. The outlines come from the typefaces the text is built from (fontPreview.ts, cached per font, text and size); the Japanese face is not fetched for a preview, it shows once a text has loaded it. The list of fonts from the computer showed only the first 150 and then stopped, whatever the search; it now grows as it is scrolled to its end. Not tried: the list of fonts from the computer (it needs the browser's permission).
Video list: "I Tried Layerling After Tinkercad… Is It REALLY Better?" by Maker Mates Studio 3D Printing is new at the top: somebody coming from Tinkercad tries layerling and compares the two. In the start page list, the guide in every language, the READMEs and the first post of Discussion #296.
Cut one body out of another, with a clearance (#927): A new tool Cut out in the Combine area (also in the right-click menu of two selected solids, in the command search and through the MCP as layerling_cut_out) subtracts a copy of a part from another body and leaves the part where it is: no more copying the part, making the copy a hole, aligning it and grouping. The smaller body is taken as the part, a button swaps them. The clearance (0 to 10 mm) makes the cavity larger on every side; it is built with the Offset tool and so needs an exact body. The result is a group, ungroup takes it apart. Asked for by @raradek.
A filleted hole flush with a wall cuts it cleanly (#928): A grouped hole is widened by a thousandth of a millimetre at the sides (and 0.05 mm at the ends), so one aligned flush with a wall goes through it. A hole with a fillet or chamfer is a mesh, and meshes were left out of that widening since a strip set to hole lost a wall to it (#607); so a filleted hole flush with a side wall, a hair off it after float rounding, left a skin of no thickness there, which showed as a face and could not be cut. A hole mesh that bulges nowhere inwards, such as a box with a fillet or chamfer or a cylinder, is widened again, because scaled round its middle every wall moves outwards (meshIsConvex in meshConvexity.ts, up to 5,000 triangles); other meshes stay as they were. Tests in meshConvexity.test.ts and flushConvexHole.e2e.ts; tried in the editor with the reported file: the group made again has no skin. Reported by @MethylBromide.
The ruler carries millimetres and inches at once (#913): The printed scale of the ruler followed the unit switch and showed one scale. A ruler 15 mm wide or more now has both: the scale of the unit you work in along the top edge and the other along the bottom edge, so a quick conversion needs no switch. A narrower ruler keeps its single scale. Only the marks on the top change, the body is the same box. Asked for by @maxwellsauber.
European Portuguese: 715 more sentences (PR #923): The interface in "Português de Portugal" (pt-pt) gains 715 translations - tools, sketch help, keyboard shortcuts, status messages, history, patterns, import and export - and has 1401 of the 3115 sentences now. The language stays marked as incomplete, so what is missing shows in English. Contributed by @jcpcustodio.
Danish: the 1.112.0 texts and three corrections (PR #924, PR #925): The 22 new keys of 1.112.0 are translated (the selection on the start page, the stencil bridges and the welcome cards), the guide passages on the selection, the hull and the files follow, and three passages of chapter 3 are corrected: Multicolor for a group or a bundle, Keep proportions with Shift+Enter, and one wrong sentence found in the code. The Danish catalogue is complete again, 3115 of 3115 sentences. Contributed by @Henrikth12.
Shift while dragging keeps its axis (#909): Dragging a body with Shift held keeps the move on one axis of the workplane, but the axis was chosen anew with every mouse move, so close to the start of the drag, where the pointer had gone about as far along both, it jumped between the two and the part jerked diagonally. The axis is now chosen once, when the pointer has moved 10 pixels, and kept until Shift is let go (latchedDragAxis in dragAxisLatch.ts, used by the drag in WorkplaneViewport.tsx); until then the part waits. Unit test in dragAxisLatch.test.ts. Reported by @MartinShake.
Offset: every face of a body moved by one distance (#919): A new tool Offset next to Hollow (toolbar, right-click menu, command search, MCP layerling_offset_object) grows or shrinks one exact body along its faces by 0.01 to 10 mm, with rounded or sharp outer corners (offsetSolid in cadShell.ts, the kernel's offset that Hollow already uses inward). That is the clearance of a press fit or a snap joint: scaling moves the features, Hollow only goes inward. With Keep the original and add the offset body as a hole the part stays as it is and a copy, grown by the distance, is added as a hole to cut the mating part with. Without it the body itself is offset and becomes a fixed exact body, like after a chamfer: the list in the panel takes the offset back and Edit opens the tool again with its distance (history entry kind offset, saved in the .lyl). Holes, bundles and bodies that are only a triangle mesh are refused with a message. E2e test in cadOffset.e2e.ts against the real kernel: a box grown by 0.2 mm is 40.4 x 30.4 x 20.4 with sharp corners and smaller with round ones, a shrink gives the inner box, a plate with a hole grows, and a shrink beyond the body is refused. Texts in all 18 languages; guide (Edges and hollowing, 15 languages) and the AI chapter's tool list say so. Asked for by @davidsillou.
A tube's bore can cut as a hole (#892): A tube or ring has a new switch Bore cuts as a hole when grouped (tubeBoreHole, also an MCP property). Grouped, such a tube is cut as its outer cylinder and a bore hole (splitBoreTube in editorBooleans.ts), so the bore also opens the wall of whatever it is grouped with: two tubes in a T-junction open into each other, which the bore of a plain tube never does. The tube itself stays one shape, and without the switch nothing changes. E2e test in tubeBoreHole.e2e.ts: a thin rod through the bore of the lying tube meets the wall of the standing one without the switch and meets nothing with it. Reported by @WimSnor.
Text with a "#" no longer stops the silhouette export or loses counters (#916): The font draws the "#" (in Multilanguage, Sans, Serif, Script, Monospace and Stencil) with outlines that touch or cross themselves, and the plain text mesh built from them was refused by the 3D kernel as "Not manifold": the silhouette export of a text such as "A#B" stopped with that message, and grouped as a hole with a plate the counters of the letters beside it were lost. A text the kernel refuses, or whose letters overlap, is now built from the union of its letters, extruded by the 2D kernel (textJoinedGeometry, geometryIsSolid in textFill.ts); a text that is fine stays as it was, and so do curved text and text with a bevel. E2e test in textOverlapManifold.e2e.ts: "A#B" in every font is a solid, it is exported as a silhouette, grouped as a hole in a plate it leaves the four counters of A, "#" and B as islands, and the footprint outlines are closed (it failed in eight places before). Not reproduced: the report's "f" of Rounded in the footprint export, which stays whole here with and without this change, and a bevelled "#", which the region cannot carry. Reported by @plazmabokor.
Align and Mirror no longer move a turned body by a hair (#917): Align and Mirror rounded the new position of a body to four decimals. For a body that stands square to the axes that only cleans a sum like 0.1 + 0.2, but the exact place of a turned body is a long number, and rounding it moved the body by up to 0.00005 mm off the one it was aligned to. Two boxes aligned in a corner on a turned workplane then stood a hair apart, and the CAD kernel could not fillet, chamfer or hollow the group they made ("The selected edges cannot be filleted together at this size"). A position is now rounded only when it already is a four-decimal number up to floating-point noise (roundedAlignedValue in alignRounding.ts, used by alignedShapesForSelection and mirroredShapePatch). Unit test in alignRounding.test.ts; tried in the editor with the steps of the report (two boxes in an L, grouped, turned by 10 degrees, workplane on a side, ungrouped, aligned again in the opposite corner, regrouped): before, the fillet of all edges failed; now it goes through with 18 edges. Reported by @PingPongLee.
Stencil bridges for parts that would fall out (DXF and SVG, PR #915): When a plate with text is laser cut, the middle of letters like o, a and b falls out. The export window of the DXF, and of the SVG with the top view, has an optional box Bridges for parts that would fall out with a Bridge width (0.5 to 3 mm, 1 mm to begin with) and Bridges per part (1 to 4, 2 to begin with): small bridges, as on a stencil, hold such a part to the material round it (stencilBridges.ts, joined into the section by stencilBridgeSection.ts). A bridge never touches another outline or another bridge, never leaves a gap too narrow to cut, and reaches less deep into a thin wall so the hole behind it stays closed; parts that would only hold each other are tied to the plate too, and a part no bridge can reach at the chosen width is counted in the message after the export. Nothing changes unless the box is ticked. Texts in English, German, Czech, French, Hungarian, Dutch, Russian and Slovenian; the guide (Files and saving, English and German) says so. Unit tests in stencilBridges.test.ts; 20 designs (text in seven fonts, QR codes, gears, nested rings, thin walls) in 12 export settings, every file checked with an independent tool and every DXF imported back. Contributed by @plazmabokor.
Cone hinge: size of the cones, a thinner wall, a flush leaf, and the style as one choice (#907, #897): Four changes after the first reports of 1.112.0. A new field Cone diameter sets how big the cones are where they grow from their knuckle (hingeConeSize; left out, the largest that fits, which is bigger than before: the recess keeps a wall of 0.6 mm round it in the knuckle, and the two recesses of a knuckle keep 0.4 mm between them instead of 1 mm). In the cone style the leaf may be as thick as the whole knuckle, flush with it, because there is no bore for it to stay below; a leaf thicker than the radius ends the clearance away from the knuckle's side, level with the axis (leafReach in hingeGeometry.ts), so a flush hinge opens about 90 degrees. The Style is now one choice of "With pin", "Without pin" and "With cones": the separate switch is gone, and a design saved with the old switch (hingePinless) is read as "Without pin" (normalizeHingeStyle). The MCP takes hingeStyle "pinless" and hingeConeSize. Texts in every language, the guide (Threads and mechanics, every language) says so. Unit tests in hingeGeometry.test.ts (thick leaves close, the clearance between the two parts in every section, the cone diameter, the style choice); not tried: a print, and the field in the editor. Asked for by @MethylBromide and @NorthHighlander101.
DXF: import and export fixes from a real laser job (#774, PR #914): Found while cutting a test plate: a DXF with very short steps, such as the 0.0078 mm steps of a QR code, failed on import with "makeLineEdge: construction failed", and pieces that touch at a corner could be joined to the wrong one, which showed as "invalid sketch topology" when an exported DXF was imported back. Tiny pieces are now handled, pieces are joined at the nearest end, and a run of pieces that closes on itself with no size is dropped (ringExtent). On export, no arc is bent through tiny sharp zigzags any more, since it could cross the outline beside it (sharpTurn, 40 degrees at most), and no side shorter than 0.001 mm is written, as some cutting programs choke on them. In the footprint view of the DXF and SVG export, a loose hole in a body lying inside another body was left out: the colour separation now knows which bodies were cut. Tried with 20 designs in 12 export settings, every file checked with an independent tool and every DXF imported back. Unit tests in dxfExport.test.ts and dxfImport.test.ts. Contributed by @plazmabokor.