Repository navigation
layerling 1.94.0
-
A Bezier point placed by a click has handles that can be seen and taken (#636): A click with the Bezier tool, without dragging, gave the point handles of no length: both lay on the point itself, hidden under its circle, so the point looked as if it had none, and nothing could be pulled out of it when the curve was edited. Such a point now gets handles along the side that leads to it, a third of its length each way, so the side is visibly bent and the handles are there at once. The first point of a chain has no side yet and stays without; its outgoing handle comes when the next point is placed. In sketches that already hold handles of no length, a selected point or side draws them a third of the way to the neighbour, where they can be grabbed; the curve stays as it is until one is dragged. Tried in the unit tests and the whole suite (2634), not seen on screen. Reported by @raradek on GitHub.
-
The Bezier tool starts and ends on an existing point with handles (#635): With the Bezier tool a press on a point that was already there only connected it: no handles could be pulled out of it, neither when a curve started there nor when it ended there. And a side bends only when both of its ends have the handle that faces it, so a curve that started on a point without handles stayed straight, and the handle of the next point was drawn but not applied. A press on an existing point now starts the drag as on the empty plane: it gets the mirrored handles, and a plain click gives the points of the new side the handle they lack, a third of the way along the side, so the side is a curve in both cases. Handles a point has already stay. The point the chain is on is left as it was, so a double click on it still ends the chain (#520). The logic is in
sketchBezierHandles.tswith its unit tests; tried with the whole suite, but not seen on screen (the video of the report could not be played here). Reported by @raradek on GitHub. -
Set a body down on a face without a keyboard (#619): The key C picks the selection up so that it follows the pointer and lies down on the face under it, but there was no way to start that on an iPad. The menu of a long press on a body now has Set down on a face, and the command search finds it too ("cruise", "set down"); it does what C does, and a tap sets the body down on the face tapped, even a sloped one. The tablet chapter of the guide (EN/DE) and the chapter on selecting and arranging say so. Asked for by @grandmaofdragonz on GitHub.
-
The zoom buttons and keys no longer follow the zoom speed: The zoom speed in the settings set the wheel and the trackpad, but also the step of the zoom buttons in the toolbar and of the keys + and −, up to 10. A trackpad wants the slider high, around 10 on a MacBook, and there one press jumped from too far to too close in three steps; with the slider at its slowest the keys were right but the trackpad crawled. The buttons and keys now always step as they did at the default position of the slider (5), in the 3D editor and in the sketch, so nothing changes for anyone who never moved it. The toolbar buttons now take the same step as the keys (they stepped ×0.7/×1.35 in the 3D view and ×0.8/×1.25 in the sketch, the keys ×0.72/×1.28); the slider sets the wheel, the trackpad and the pinch only. Guide (EN/DE) updated. Not tried on screen. Contributed by @gogades.
-
A design with an emptied object name opens again: Clearing an object's name in the object list or the properties shows its default name, and the design saves it as an empty name - but loading refused that name, so the design, even the copy kept in the browser, opened empty. Loading now takes an empty name, and designs that were saved that way open again with all their objects.
-
The AI bridge refuses what would break a design:
layerling_create_shapeandlayerling_update_objectrefused nothing below a size of 0, and a design holding a body of width 0 or a negative height could not be opened again; they now answer with an error, and the tool list says sizes must be above 0. An empty colour is refused too.layerling_delete_objects,layerling_ungroup_objectsandlayerling_apply_edge_treatmentnow leave locked objects alone, as the editor does. -
Placing on a large import no longer fails:
layerling_place_on_face,layerling_perforate_faceandlayerling_push_facestopped with a "Maximum call stack size exceeded" error when the target was a large imported mesh (from some tens of thousands of triangles, depending on the browser); they now work on meshes of any size. -
The circle of a pattern follows the pivot (#638): The centre of a circle pattern was taken from the pivot once, when the pattern tool opened. A pivot dragged to a new place afterwards left the centre, and the preview of the copies, where they were. The centre now follows the pivot as long as the pattern is open; a centre typed in the panel stays until the pivot moves again. Not tried on screen. Reported by @raradek on GitHub.
-
The build volume warning can be clicked away, body by body (#640): Parts parked beside the plate kept the warning on screen all the time, and it lay over windows such as the workspace settings. The message now has a small cross: it hides the warning for exactly the bodies it named, for this session. A body that fits again is forgotten, so moving it out later warns again, and any other body that sticks out brings the message back. The warning now sits below the windows. The logic is in
keepDismissedOverhangs(printBed.ts) with unit tests; the guide chapter on printing (EN/DE) says so. Asked for by @robstern on GitHub. -
Two gears can be fitted to the distance they stand at (#645): With two gears selected, the properties panel gave the centre distance they mesh at and how far apart their centres are, so meshing them meant moving one. It now also names the module at which they would mesh where they stand - centre distance x 2 / (teeth + teeth), inside a ring gear / (ring teeth - pinion teeth) - and the line can be selected and copied. Fit module of both resizes both gears to that module in one undo step; each keeps its teeth, place, height and centre hole (a gear without a hole size of its own keeps the hole it has now; the hole only shrinks where the smaller gear has no room for it). It works when the two modules differ too. The logic is
fitModuleininvoluteGearPairandgearPairFitPatches(gearGeometry.ts) with unit tests; the gear section of the guide (EN/DE) says so. Asked for by @Elkniwt on GitHub. -
A copy pasted into another design keeps all its settings (#642): Within one design the tab keeps a copy as it is, but another design reads it back from the browser's storage, and that reading took only a fixed list of fields. Everything else was lost on the way: see-through, rounded and chamfered edges, mirroring, a twisted or leaning extrusion, a text's stroke, spacing and letter edge, the QR code settings, the pivot, formulas and the exact CAD body. The copy's own fields now go on top of the defaults (
clipboardShapein shapeCatalog.ts, with unit tests). Tried in the unit tests, not seen on screen. Reported by @Elkniwt on GitHub. -
Deleting a crossing point in a sketch keeps the circle (#641): A point between two sides was always bridged, but a point where two lines cross - a circle cut by a straight line, as when a rounded corner is built from a circle - has four sides, and deleting it took all four away, so the rest of the circle fell apart. The sides that run straight on through the point are now joined in pairs, arc with arc and line with line; a side that turns away goes as before. Two arcs of one circle are joined with handles for the whole arc, so the circle stays round instead of flattening, also when a point between just two arcs is deleted. Removing only a piece of arc was already possible with the eraser on that piece; the sketch chapter of the guide (EN/DE) now says both. The logic is in
sketchPointRemoval.tswith unit tests; not seen on screen. Asked for by @structurednewstore-rgb on GitHub. -
The preview pictures of the start page survive a Docker update, and come back by themselves: The Docker image keeps the pictures in the container, so a rebuild or update left every card blank, and so did bringing designs back from a backup; a picture only came again once something in the design changed.
docker/compose.ymlnow keeps them in a named volume,layerling-thumbnails(Docker fills it from the image, so it needs no chown), and thedocker runcommands in the READMEs and the guide (every language) carry the same-voption. And a design whose card has no picture now gets one as soon as it is opened, without any change. Tried on the development server: a deleted picture came back a few seconds after opening the design; the compose file itself was not tried with Docker here. Reported by a user by mail. -
Three-point arc in the sketch (#643): A new drawing tool, Arc, next to Line: click the two ends, then a third point the arc runs through, and a true circular arc is laid between them, with a live preview after the second click and the radius in the message. An end on an existing point joins it, so an arc can close an outline; [[Esc]] drops the points clicked so far; with construction lines on it is a construction arc. The arc is built from Bezier pieces of at most a quarter circle, within a few ten-thousandths of the radius, and is ordinary geometry afterwards (it is not a parametric arc: radius and centre cannot be typed in later). Logic in
sketchArc.tswith unit tests, a new iconsketch-tool-arc.png, texts in all 14 languages, the command search finds it ("arc", "Bogen", "radius"), and the sketch chapter of the guide (EN/DE) describes it. Tried in the browser: three clicks gave the arc, a line closed it and it became an exact body. Asked for by @structurednewstore-rgb on GitHub. -
A bundle with a hole cuts the parts it is grouped with, but not its own solids (#646): A bundle of a solid and a hole, grouped with another part, opened into its parts for the cut, so its hole cut away the bundle's own solid as well as the other part. Now it works as in Tinkercad: the hole of a bundle cuts every part outside the bundle, the bundle's solids stay whole and are merged with the rest, and a hole outside the bundle still cuts them. A bundle in a bundle counts as part of it. A group that already holds such a bundle keeps its shape until it is opened and closed again. The cut is
manifoldBundleCutShapein editorBooleans.ts, with a kernel test (groupBundleHole.e2e.ts) that checks the volumes; the chapter on solids and holes of the guide (EN/DE), the AI bridge'slayerling_bundle_objectsand the skill say so. Not tried on screen. Reported by @TinkerBarn on GitHub. -
The section view and the split follow the workplane, and the cut can face the view (#644): The section view cut only across the design's own X, Y and Z, and the split plane started level and could be tilted only with its two sliders. The section panel now has Axes from: Design | Workplane | View. On the workplane, X, Y and Z are the workplane's own, Z cuts parallel to it, the position counts from its origin, and the cut moves along when the workplane moves; on a workplane laid on a sloped face that cuts parallel to the face. View turns the plane to face the screen and takes away what lies in front, so the slider pushes the cut deeper along the line of sight to reach a buried part; it takes the view at the click, so it is clicked again after turning the view. The filled cut face, measuring on the cut, the cut as SVG and putting the workplane on the cut all work on the turned plane (the bodies are moved into the plane's frame and sliced there,
SectionFramein sectionView.ts). The split plane now starts parallel to the workplane (level on the base plate, as before), and Align to workplane: Parallel | Across X | Across Y lays it on the workplane or square to it, through the workplane's origin where that crosses the parts. The AI bridge hasorientationonlayerling_set_section_viewandalongWorkplaneonlayerling_split_objects;layerling_measure_sectionandlayerling_export_section_svgfollow a turned section view; both skills say so. Texts in all 14 languages, the guide (chapters on the view and on solids, every language) describes both. Unit tests insectionFrame.test.ts; tried in the browser on a cube tilted by 30°: the cut parallel to its sloped face was a 40 × 40 mm square, measuring on it gave 40 mm, the view cut showed the hexagon a cube makes across that view, the split plane started on the slope and Across X split the cube through the workplane's origin. A modifier key with the mouse wheel to push the cut was left out, as the wheel already zooms. Asked for by @Elkniwt on GitHub. -
The snap grid menu now really lies over the Shapes panel (#616): The fix in 1.93.0 raised the corner of the 3D view, but that corner lies inside the editor's own layer, and the Shapes panel belongs to the toolbar, which lies above the whole editor; so beside a pinned Shapes panel the upper entries were still hidden behind it. The menu is now put onto the page itself while it is open (a portal to the page, fixed above the snap grid button), above the toolbar and its panels, and on a low window it still scrolls. Measured in a headless Edge with the Shapes panel laid over the menu: all entries lie on top and can be clicked, and a click picks the grid. Reported by @grmonsey on GitHub.