Skip to content

layerling 1.128.0

Choose a tag to compare

@henmedia henmedia released this 31 Oct 14:35
· 849 commits to main since this release
  • Both Chinese versions complete again (PR #1081): Simplified and Traditional Chinese had fallen behind by the 944 sentences added since 1.123, from the cookie cutter, flexi joints, lid and cut out to attachments, surface texture, the vase, Gridfinity, the Hirth hinge, DXF and the new workspace settings, which showed in English. Both catalogues now have every sentence and the guide all 17 chapters; the sentences that were there before are unchanged. "Rim" became 平沿 / 扣沿 / 口沿 so it no longer collides with "edge". Translated with an AI model and read by a native speaker; a second reader is still welcome. Contributed by @crazykay.
  • Sketch: a corner square scales again instead of turning (forum, 621826): The curved turn arrows beyond the corners of a selected outline or picture took the pointer over a 40 px square, the size of the 3D handle's. Standing just beyond the corner and drawn on top, it covered most of the 12 px corner square, so the pointer already showed the turn cursor there and a drag meant to scale turned the shape. Only a band along the arrow itself takes the pointer now (SKETCH_ROTATE_HIT_WIDTH in SketchHandles.tsx), which keeps clear of the corner square. Unit test in sketchRotateHandleHit.test.ts. Reported by @DrJones in the forum.
  • Bottle neck PCO 1881 in the thread sizes (Discussion #1079): The size menu of the thread has a fifth series, "PCO – Bottles", with PCO 1881: the 28 mm neck of most water and soda bottles, 27.4 mm across with a pitch of 2.7 mm, single start. Its thread has wide flat crests, so the size brings its own profile along (BOTTLE_SIZES and threadSizeSettings in threadGeometry.ts): Custom, 1.6 mm deep (core 24.2 mm) at 2 x 15 degrees, the numbers of the OpenSCAD library BOSL2 (pco1881_neck). A size chosen after it gets its standard profile back. The neck is a rod, the cap a nut or a tapped hole; threadSize: "PCO 1881" does the same through the MCP bridge and sets depth and flank angle unless the call gives them. Canisters and washing-up liquid bottles have no common standard and are not included. Texts in every language, the guide (Threads and mechanics, every language) and the MCP skill say so. Unit tests in threadBottle.test.ts (measures, profile switching, MCP, closed rod, nut and bore). Tried in the editor: neck and cap through the bridge come out 27.4 mm with the flat profile, and choosing PCO 1881 and then M6 in the inspector switches the profile to Custom and back to V-thread. Asked for by @PabloJonesUK.
  • Flat springs (Discussion #1076): The spring has a Form setting: Coil, as before, or Flat - a band that runs in waves across the plate and flexes in its own plane, printed lying down, like the serpentine springs people print. Pattern gives round waves, a zigzag or square turns, Ends an eye with a hole, a tab across the band or plain ends; Bends and Band width set how soft it is, length, width and height are its length, how far the waves reach and its thickness. The band follows a centre line of straight pieces with rounded corners, offset half a band each way, so its outline is lines and arcs: it is an exact extruded profile for the edge tool and STEP (flatSpringGeometry.ts, a profile in cadProfileExtrusion.ts), and the display mesh samples the same outline. Band and bends stay within what fits; switching the form gives the spring a strip's or a coil's size. In the workspace defaults, for layerling_create_shape/layerling_update_object (springForm, springPattern, springEnds), guide chapter 9 in every language, READMEs and start page. Unit test in flatSpringGeometry.test.ts. Suggested by @PabloJonesUK.
  • Size handles in the colour of their axis (Discussion #1078): The handles that resize a selected body were all the same beige or black, so they blended together. The ones that change a single measure now carry the colour of their axis, as the curved turn arrows do: the middle of a side red for the width and green for the depth, the handle on top blue for the height (axis-x, axis-y and axis-z on .transform-handle, set in viewportTransformOverlays.ts). The corners change two measures and stay neutral; the slope handles keep their orange. The dark theme has lighter shades, Graphite was regenerated, and a locked body's grey handles still win. The guide (Shapes, English and German) says so. Tried in the editor: a box shows red, green and blue handles. Asked for by @sonofachuck.
  • See-through bodies under the plate show through it from above (Issue #1077): The plate writes depth and is drawn before see-through bodies and holes, so a body above it is not laid over by it. A part sunk below the plate failed the depth test and was gone, while a solid body showed through the plate, faded. A see-through body or hole crossing the plate is now drawn in two halves cut at it (splitSeeThroughAtPlate in renderFrame.ts): the half beyond the plate from the camera before the plate, like a solid body, the near half after it. This replaces the reordering for #894 for the active plate, which only helped from below; from below the near half now shows clear as well. Tried in the editor: a see-through box, a hole and a solid box sunk 10 mm, seen from above at a slant, now all show their lower part faded through the plate; side views and bodies standing on the plate look as before. Reported by @Elkniwt.
  • Duplicate repeats a resize too (Discussion #1072): Ctrl+D repeated how the copy had been moved and turned, but not a change of its size, so in a row of growing discs only the first copy grew. A resize of the copy is now kept as a factor for its width, depth and height and repeated on every further copy, in its own axes with its middle and bottom kept, before the move, as Tinkercad does. A copy that was only moved or turned duplicates as before. duplicateResize.ts; unit test in duplicateResize.test.ts. Guide chapter 3 in every language. Reported by @KimA998 in #1072.
  • A tapped hole in a resized group stays round (Discussion #1066): 1.127.0 kept a thread's shape only in a group without holes. A group with a hole is cut into one body when it is made, and resizing it only stretched that body, so a tapped hole in a plate pulled longer became an oval. A resized group with a thread in it (rod, screw, nut or tapped hole) is now cut again from its parts once the resize is done, in the same Undo step: the thread keeps its diameter, pitch and everything else it was given, moves with the stretch, and its length follows it, so a hole through a thicker plate still goes through. A locked group, an intersection, hull or loft, and a group with edges or a texture on it stay as they were. groupThreadRecut.ts; kernel test in groupThreadRecut.e2e.ts. Reported again by @willi1955 in #1066.
  • The camera bar's house says "Home view" (Issue #1071): Two buttons carry a house, the camera bar's that resets the view and the title row's that goes back to the projects, and the first was simply called "Home" - so a click meant to leave the project only turned the work plane. Its name and tooltip now say "Home view" (in Czech, Danish, French, Japanese, Brazilian Portuguese, Russian, Slovenian, Turkish and Simplified Chinese likewise a view; the other languages already said so). Reported by @mscho1 in #1071.
  • The herringbone gear has an exact body (Discussion #1007): The herringbone gear reached the CAD kernel only as its display mesh: the edge tool only saw its triangles, Delete face refused it ("This body has no exact faces to delete") and the STEP export left it out; at the default quality, with involute teeth its mesh was over the edge tool's 4,000 triangles (13,056 for a 12-tooth gear 30 mm across), so the tool asked first and the MCP refused it. It is now built as the helical gear is (helicalGearPartSolid): its lower half, a helical gear half as high that turns half as far, and that half mirrored above the middle, the faces of both sewn into one body without a boolean. A gear with simple teeth is built in 0.1 s for 12 teeth and 1.2 s for 120, one with involute teeth in 0.4 s for 12 and 1.0 s for 30, and rounding its ends takes about as long as on the helical gear. It is stretched by what its ring spans turning half as far (cadModifierHelicalGearForShape), and at 0 degrees it is one face a side, like a helical gear at 0 degrees. The limits are the helical gear's: one on an oval footprint stays a mesh, and so does one with involute teeth from 31 teeth or round ones from 15. With involute teeth and a helix angle of about 15 degrees or more, as by default, the edge tool refuses to round or chamfer all its edges at once, where at 22.5 degrees the helical gear takes the rounding; rounding the ends, or the edges where the halves meet, works. A chamfer or fillet laid on a herringbone gear before keeps its body, but "Edit" may pick other edges, as their numbers changed. The guide (chapters 3 and 9, in every language that has them) says so. Unit tests in gearHerringbone.test.ts, cadProfileExtrusion.test.ts (the stretch) and stepExport.test.ts; cadGearBody.e2e.ts builds 13 herringbone gears against their display mesh and their outline's volume and tests points either side of their surface at five heights, the same body at any quality, one face a side at 0 degrees and fillets on the ends and where the halves meet; stepRoundTrip.e2e.ts exports one alone, each side in two faces, and one as a pocket in a block; cadHerringboneEdges.e2e.ts takes it through the edge tool's worker, which offers the edges where the flanks turn back in the middle but not the smooth ones: with simple teeth a chamfer or a fillet on all it offers, with involute teeth a fillet on the ends and on the middle edges, and the refusal of one on all. Contributed by @mlugo-apx.