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
The guide says where the notes switch is and how a note folds away (#693): The notes section named "Show notes and points" but not where it is, and said a click on a note opens it for editing. It now says the switch is in Visibility options, the arrow beside the eye icon, and that a click on the pin folds the card away to its number and opens it again, while a click into the text edits it (chapter Measuring and notes, all languages). Asked by @gquiring on GitHub.
SVG with only the footprint (#692): Export → SVG wrote the silhouette from above, everything seen from the top, so a part wider above its base gave a bigger outline than the one standing on the plate. The SVG export now has a choice under View: Silhouette from above (default, as before) or Footprint on the workplane, which cuts the bodies 0.01 mm above their lowest point with the section view's slicer and writes those outlines as lines in their colours. layerling_export_mesh takes format: "svg" with view: "silhouette" or "footprint".
Closed in one click when hollowing (#658): A body hollowed with no side open keeps its cavity sealed inside, but the panel only said so in the small line under the six side buttons, and Top had to be switched off first. Below the side buttons there is now Closed (cavity inside): it is pressed while no side is open, a click switches every side off, and switching a side on lets it go (ShellPanel.tsx, shell.side.closed in all languages). The guide (chapter Edges and hollowing, all languages) names it. Unit test in shellClosedOption.test.ts (pressed with no side open, let go with Top open); not tried in a browser. Asked by @tpkeller on GitHub.
Thin floors under a hole stay (#691): A hole stuck out 0.05 mm at its top and bottom, so a hole that ends flush with a face leaves no skin. That also took the same 0.05 mm off any floor or roof the hole did not reach: a hole box raised 0.01 to 0.05 mm above the bottom of a box took the whole box away ("hole consumed solid"), and one raised 0.06 mm left 0.01 mm. CUTTER_PADDING is now 0.001 mm, as the sides already were since #254, so a floor loses a thousandth at most; CUTTER_RESIDUAL_INSET keeps its 0.02 mm. Kernel test in thinSkinUnderHole.e2e.ts (floors of 0.01, 0.05, 0.06 and 1 mm, a hole from the bottom still takes the box away, a hole flush with the top leaves no skin). Reported by @KimA998 on GitHub.
Through the history with the mouse wheel (#688): In the history view the mouse wheel over the slider row goes one state per notch, up to an earlier one; a touchpad's small deltas add up to a step every 50 px. Page Up and Page Down jump ten states, Home goes to the oldest state and End to the one the design is at (lib/historyStepping.ts, historyStepping.test.ts, wired in HistoryViewOverlay.tsx; the wheel listener is not passive, so the page does not scroll). The shortcuts list (new rows and a "Mouse wheel" key, all languages) and the guide (chapter Select and arrange, all languages) say so. Tried in the dev server on 15 steps: the wheel went 15, 14, 13 and back to 14, Page Up to 4, Home to 0, Page Down to 10, End to 15. Asked by @ucito on GitHub.
A key ring hole anywhere on the tag (#598): The name tag and the icon tag could only put the key ring hole on the left, the right or the top, and on a picture like a dog's head none of the three looked right. Beside them there is now Free: it takes the hole off the tag and puts a key ring tab of its own beside it, an ordinary group of a capsule and the hole in the bottom layer's colour and height, with the measures of the side tab (the hole and a 1.75 mm wall either side, a round end round the hole), moved and turned with its handles like any shape. Fix to the tag in the tab's panel then makes it part of the nearest name tag or icon tag that is neither locked nor hidden, just where it lies: the tag is built again with the hole there, the ear (the disc round the hole and the strip to the tab's straight end) added to the bottom layer and the hole cut through every layer, so the plate no longer fills the hole when the tab lies over it, and nothing is grouped. The hole is kept to the corner of the letters' or the icon's box it is nearest to, so it stays there when the words, the letter size or the icon's width change; the box grows by what the ear reaches beyond it. Free on such a tag brings the tab out again where it was. Saved as free (the corner, the distance from it, the ear's angle and length) beside the key ring's side and size; a file with a bad one is refused. Unit tests for the tab's measures, reading its place back at several turns, the way into the tag's frame and back on a turned tag, the corner it keeps to and how far the box grows; tried in the editor (headless Chromium) on a name tag and an icon tag. Asked on GitHub by @KBFlyer.
Deleted designs stay deleted (#656): A backup restored after 1.94.0 lost the list gives every design a new id, and the old copies stayed in IndexedDB without a card. The rescue of 1.95.0 looked for such designs at every start and skipped one only while a design of the same name and creation time was listed, so deleting the restored design brought the old copy back at the next start, without picture or folder; with several restores, the next one each time. The rescue now runs once per browser (layerling.lostDesignsRecovered in localStorage), and deleting a design also deletes its hidden copies (same name and creation time, no card; hiddenCopiesOf in designListStorage.ts). Unit test in designListStorage.test.ts; not tried in a browser with such copies. Reported by @kwjaarsveld-star on GitHub.
The browser may translate layerling again (#681): Since 1.82.0 the whole page said it was not to be translated, so somebody who read layerling in Spanish through Chrome's translator lost that. The cause of the old trouble was the page language: the page said "en" until the chosen language was in, so a German browser translated a German page and made "Hell" into "Hölle". Now a script in the head (LANGUAGE_BOOT_SCRIPT in i18n.ts) sets <html lang> before anything is drawn, from the stored choice or the browser's languages as detectLanguage picks it, and translate="no" and the notranslate hint are gone from the page. A language layerling does not speak stays "en", and the translator may turn it into that language. The names people give stay as they are (translate="no" on the design and folder names of the start page and on the names in My Shapes). Unit test runs the head script for stored choices, browser languages and a language we do not have (noBrowserTranslation.test.ts); the page language checked in the dev server, the translator itself not tried. Asked by @Salleri on GitHub.
A renamed design keeps its new name in a backup (#689): Renaming a design on the start page changed its card only; the saved package kept the old name until the design was changed again. A backup put that package into the ZIP as it was, under the new file name, so restoring it brought the old name back, and the check for designs that are already there compared the wrong name. The package now gets the card's name before it is handed on (withLylProjectName in lylProject.ts, used by projectPackageBytes), for a backup and for moving a design to the server folder; nothing else in the package changes. Unit test in lylProjectName.test.ts. Reported by @Woxon1 on GitHub.
A minus key for negative values on a phone or tablet (#686): The number fields asked for the decimal pad (inputMode="decimal"), which on an iPhone or iPad has no minus key, so a position left of the middle, a negative angle or a move back could not be typed there. The fields that take negative values now ask for the keyboard with signs (inputMode="text"): position and pivot, every property field whose range goes below zero such as the rotations, the move distance typed beside a shape, the angle of a typed sketch line, and the position and rotation of a sketch's reference image. Fields that only take positive sizes keep the decimal pad. Checked by type check; not tried on a real iPhone or iPad. Reported by @Joepic9 on GitHub.
Gears up to 150 teeth (#679): A gear, ring gear or rack stopped at 64 teeth, too few for a large wheel of a small module such as 0.5. MAX_GEAR_TEETH is 150 now, and the slider, the shape defaults in the settings, the check when a file is opened and the AI bridge's description follow it; the guide names the range (en/de/hu). Unit tests for round teeth up to 150 and the clamp; the exact bodies of an involute spur gear and a ring gear of 150 teeth at module 0.5 match their meshes in the CAD kernel (e2e). Asked by @IacobiniMarioEduard on GitHub.
A fillet with a radius that changes along the edge (#687): The fillet had one radius for its whole edge, so a corner where a straight wall meets a slanted one could not be rounded small at one end and wide at the other. The fillet window now has Variable radius: it shows Radius at the start and Radius at the end, and the kernel's filletVariable rounds the one picked edge from the one to the other, evenly along it. Which end is the start follows from the edge's own direction; Swap ends turns the two values round. It takes one edge at a time; with more picked the window says so (VARIABLE_FILLET_ONE_EDGE_MESSAGE). The treatment is saved with endAmount beside amount, Edit brings both back, the list shows "2–1 mm", and the AI bridge's layerling_apply_edge_treatment takes endAmount for one edge id (all three SKILL.md). Guide (en/de/hu), start page (en/de), texts in nine languages. Kernel test on an 80° prism corner (removes more than the even 1 mm and less than the even 8 mm fillet; swapping the values swaps the ends) and a unit test for the message; tried in the editor on a leaning box through the AI bridge and through the window (variable on, Swap ends, Apply, the list entry). Asked by @NorthHighlander101 on GitHub.