How it was designed
Designed with buildcad's AI agent, checked by the buildcad team. This is the request it started from and an edited account of what it did (more on how text to CAD works).
The request
A Gridfinity baseplate with holes for 6 x 2 mm magnets for my workbench drawer, which is 400 x 300 mm inside. I want to type the drawer size: it should fill the drawer with the biggest grid that fits plus a border for the rest, split into pieces that fit my 256 x 256 mm printer bed, with clips to join them.
- 1
It ran the planner first
Before modelling, the agent ran buildcad's Gridfinity planner on the 400 x 300 mm drawer and a 256 mm bed: a 9 x 7 grid (378 x 294 mm), a plate 0.5 mm smaller than the drawer, a border of 10.75 mm left and right and 2.75 mm front and back, and a 2 x 2 split with the border on the outer edges.
- 2
Two blocked shortcuts
It tried to read the helper's options through Python's inspect module and then through a docstring. The sandbox refuses both, so it went on with the documented calls.
- 3
Magnets on, pieces laid out
With magnet pockets on, each piece grew from 6.75 to 8.15 mm thick to keep 1 mm of plastic under each 2.4 mm pocket. It laid the 4 pieces out in a grid with a gap between them and showed the clip once, since all 16 are the same.
- 4
What it measured
It counted 252 magnet pockets of 6.5 mm (4 in each of the 63 cells), checked that every piece fits the bed (the largest is 220.75 x 170.75 mm) and measured the pocket depth with a ray down one pocket. Its sweep built every slider extreme as valid single bodies.
- 5
What it left open
It did not check how the clips fit the seams, so its reply asks for one clip on one seam before printing all 16, and for every magnet to go in the same way up.
- 6
Our change
The run let the bed sliders go to 500 mm. Every Library item is checked against a 256 mm bed, so we capped both at 256 mm. For a bigger bed, the Baseplate tab of the Gridfinity generator takes beds up to 400 mm.
One run of the agent: 2 min 20 s, about $0.31 of model time at list price (claude-sonnet-5-5). We changed the code afterwards, as described in the last step.



