Repository navigation
layerling 1.124.0
-
Traced SVG outlines take a chamfer and a fillet (#996): An ornament traced with VTracer, imported as an SVG and made 10 mm high, could not be chamfered or filleted at all, not even by 0.3 mm, whatever its size. Two things broke every edge treatment along its outline. The tracer joins its curves with kinks of up to 10 degrees where the picture runs on smoothly, and the kernel can neither treat such a kink as a corner nor as a smooth run. And a curve close to a circle was built as a true arc through its ends and its middle, which leaves its ends along the circle and so at an angle of up to 3 degrees to the curve beside it. The SVG import now turns the handles at a join of curves under 12 degrees onto one line (
smoothedRinginsvgSketch.ts; real corners, 17 degrees and more in that file, stay), and a curve only becomes an arc when its handles lie on the circle's tangent (sketchCircularArc.ts), as a fillet of the sketch, an SVG arc or a DXF circle has them. The reporter's outline now chamfers by 0.3 mm at 40 mm wide and by 1 mm from 200 mm; a larger chamfer than its thin curl ends allow still does not fit. New testsvgSketchKinks.e2e.ts. -
The name from the save dialog for the design, on a click (Discussion #1035): Saving into a file of your own suggests the design's name, but a different name typed into the dialog only went into the file name. Taking it over on its own would be wrong as often as right: a version or a date in the file name (
bracket_v3.lyl) is usually meant for the file alone. So when a file has just been picked in the dialog (the first Ctrl+S, Save as) and its name differs from the one the design would get, the message "Saved to …" carries a button that renames the design to the file name. Saving into the same file again shows no button. -
Bumps round a cylinder: none left out, none torn, and straight rows if asked (#1030): On a cylinder 30 mm wide with half balls 3 mm deep, up to five of the 19 bumps of a row were missing and a few kept their cut grid. Three causes in the refined mesh: a thin triangle across a gentle facet edge of the mantle leant up to 22 degrees and counted as a sharp edge, one even pointed 67 degrees down and counted as bottom, and a point a cut left a hair's breadth from another had only slivers round it and its normal turned inwards (inner wall) - each time the rule from #955 then left the whole bump out.
normalsAndCreasesnow judges normals, sharp edges and up/down by the body's own faces (parents). And a facet edge running just inside a bump's rim from a rim point was not cut where it left the circle again, so the bump touched itself there and kept its grid (the torn hollows); the rim cut now cuts that second crossing. New settingbumpGrid(Arrangement: staggered as before, or straight rows and columnsspacingapart) in the texture panel andlayerling_texture_surface; guide chapter 3, SKILL.md. -
CAD kernel occt-wasm 5.11.0 (from 5.8.0): A plain fillet or chamfer past the size a body can take used to come back from the kernel as a compound that checked valid but held no solid; layerling caught it afterwards (
cadHasSolidBody) and said the value leaves no closed body. The kernel now refuses it itself (5.8.1, andymai/occt-wasm#420), so the edge tool answers as with any size that does not fit: the edges cannot be filleted or chamfered together at this size, with the edges to blame marked; the check stays for the other treatments. Since 5.9 the kernel writes a STEP colour as it is given instead of taking it as linear light, sostepColorForKernelhands it over as sRGB again - linearised, a red #d12a2a would now have come out as #a30606 in the exported file. Chamfers by distance and angle are accepted in more cases and computed once per contour (5.11), and curved faces are measured exactly (5.9): the Gridfinity bins with a scoop measure 0.03 to 0.06 mm³ less, and the e2e tests carry the new volumes. A test that filleted all 148 sharp edges of a gear at 1 mm only passed because the kernel's empty result checked valid; it now expects the refusal and rounds at 0.9 mm. -
brepjs 20.13.2 and three-mesh-bvh 0.9.17: three-mesh-bvh builds the search tree for picking a large mesh faster and in a fraction of the memory, and skips a missed leaf. brepjs keeps every part of a model through STEP, IGES and STL, reads consistently wound meshes without the orientation repair, and fixes 2D booleans with split and shared edges; its change of rotation units concerns only kernel-internal calls layerling does not make.
-
Qidi X-Smart 5 in the printer list: OrcaSlicer added it (180 x 180 x 180 mm); 237 printers in all.
-
Slope along: a top that runs down to one end (Discussion #1026): A top that runs down along the length had to be built by hand: cut with a turned hole, or drawn as a side outline in a sketch, stood up and intersected with the body. A new settings card, Slope Along, lowers the top towards one end, straight, bulging up or sagging (
slopeAlong.ts); the other end keeps the body's height, and an orange dot on the top of the lower end drags that end's height. It is offered on the box, rounded box, cylinder, ellipse, polygon, tube, ring, wedge and round roof (the wedge and the round roof slope front or back only) and stays an exact body there, for chamfers, fillets and the STEP export (cadProfileExtrusion.ts: the side outline pushed across, the section lofted along the length, or the plain body trimmed by the side outline). A rounded box with rounded top and bottom edges, and a slope together with a taper, a twist or a lean, stay on the display mesh.layerling_create_shapeandlayerling_update_objecttakeslopeEnd,slopeSideandslopeCurve, andlayerling_read_scenereports them. Contributed by @plazmabokor in #1031. -
Narrow along: sides that run in towards one end (Discussion #1026): A body that gets narrower towards one end, seen from above - a boat's bow, a tapering ridge - had to be drawn as an outline in a sketch, which a round roof's curved top cannot follow; only the slot had a smaller end of its own. A second settings card, Narrow Along, runs both long sides in evenly towards one end, so that end stays in the middle: its width (0 makes a point), where along the length the narrowing starts (0 % at the wide end, 50 % in the middle) and a curve (0 straight, above 0 bulging out like a bow, below 0 drawn in); an orange dot on the side of the narrow end drags its width. It is offered on the same shapes as the slope except the tube and the ring, whose wall would get thinner across than along, and works together with the slope. A box narrowing, and a wedge or round roof narrowing, sloping or both, stay exact (the outline seen from above pushed up; the section lofted along the length, the loft broken where the narrowing starts so that corner stays sharp). For now the display mesh only covers the rest: narrowing the cylinder, ellipse, polygon and rounded box, and a box that slopes and narrows at once.
layerling_create_shapeandlayerling_update_objecttakenarrowEnd,narrowSide,narrowCurveandnarrowStart, andlayerling_read_scenereports them. The start page has a card for both. Contributed by @plazmabokor in #1031. -
Button names come quickly in the installed app (Discussion #1013): In layerling installed as an app the browser's own tooltip came late or not at all, while a browser tab showed it. There the mouse now gets the small bubble the Apple Pencil has had on an iPad since #495 (
PenHoverTips,hoverTipFor): resting a third of a second on a control shows its name under it. While the bubble is in charge the control's title is held back (holdTitle, asdata-hover-title), or the browser's tooltip would come up beside it; a title React sets meanwhile is taken over, the bare label the editor fills into untitled buttons is not, so "Redo (Ctrl+Y)" keeps its keys. A click or a key puts the bubble away until the pointer moves on, as with the browser's tooltip. The Interactive Help reads a held title too. In a browser tab nothing changes. Unit tests inpenHoverTip.test.ts. Asked about by @critterpaint in #1013. -
A group of solids looks like one body (#1029): A plain group was drawn as its parts lying in each other, so it could hardly be told from a bundle. A group of plain, visible solids is now drawn as one merged body, for display only: the saved group keeps its parts, and ungrouping, the STEP export and the edge tools read them as before (
buildGroupDisplayMesh,groupDisplayMergeable). The union runs a quarter of a second after the group last changed, not while it is drawn (viewportShapeObjects.ts, one entry per group): while a handle stretches it the group shows its parts, moving or turning it keeps the merged body, and the part colours of a merged group are worked out the same way. A group made from now on starts with Multicolor off and shows in one colour; groups saved before, and groups the editor makes itself such as a name tag, keep showing their parts' colours, in the view and in the 3MF export. With Multicolor on, a face two parts share is cut along their edges so each part keeps its colour. Bundles, hulls, holes, imported meshes, nested groups and a tapered or deformed group are drawn as before. Guide chapter 3 in every guide language that has it. Unit tests ingroupDisplayMerge.test.ts,groupPartColorCoplanar.test.tsandgroupColors.test.ts. Contributed by @AbhiRoutray21.