TIER 4 · COMPLEX GEOMETRY·t4_05

A countersunk screw hole pattern: a flat plate 80mm × 60mm × 6mm with four countersunk holes arranged in a rectangle (60mm × 40mm centers). Each hole is 3.5mm diameter, countersunk at 90° to 6.5mm diameter.

Claude Opus 4.6Zoo ML-ephantGemini 2.5 FlashGPT-5Text2CadQuery (Qwen 3B)
3D RENDER · Zoo ML-ephant
KCL (KITTYCAD LANGUAGE)SOURCE
✓ executed
/*
Generated by Text-to-CAD:
A countersunk screw hole pattern: a flat plate 80mm × 60mm × 6mm with four countersunk holes arranged in a rectangle (60mm × 40mm centers). Each hole is 3.5mm diameter, countersunk at 90° to 6.5mm diameter.
*/
@settings(defaultLengthUnit = mm)

// Parameters
plateWidth = 80
plateHeight = 60
plateThickness = 6

patternX = 60 // center-to-center spacing in X
patternY = 40 // center-to-center spacing in Y
offsetX = patternX / 2
offsetY = patternY / 2

holeDiameter = 3.5
holeRadius = holeDiameter / 2

countersinkDiameter = 6.5
// For a 90° countersink, the chamfer depth equals the radius difference
countersinkDepth = (countersinkDiameter - holeDiameter) / 2

// Plate body
plate = startSketchOn(XY)
  |> rectangle(center = [0, 0], width = plateWidth, height = plateHeight)
  |> extrude(length = plateThickness)

// Four countersunk holes (positions at ±offsetX, ±offsetY)
startSketchOn(plate, face = END)
  |> circle(center = [offsetX, offsetY], radius = holeRadius, tag = $holeNE)
  |> extrude(length = -plateThickness)
  |> chamfer(length = countersinkDepth, tags = [holeNE])

startSketchOn(plate, face = END)
  |> circle(center = [-offsetX, offsetY], radius = holeRadius, tag = $holeNW)
  |> extrude(length = -plateThickness)
  |> chamfer(length = countersinkDepth, tags = [holeNW])

startSketchOn(plate, face = END)
  |> circle(center = [offsetX, -offsetY], radius = holeRadius, tag = $holeSE)
  |> extrude(length = -plateThickness)
  |> chamfer(length = countersinkDepth, tags = [holeSE])

startSketchOn(plate, face = END)
  |> circle(center = [-offsetX, -offsetY], radius = holeRadius, tag = $holeSW)
  |> extrude(length = -plateThickness)
  |> chamfer(length = countersinkDepth, tags = [holeSW])
COMPARE · SAME PROMPT
Claude Opus 4.6
gp_Vec::Normalize() - vector has zero norm
Gemini 2.5 Flash
Workplane.rarray() got an unexpected keyword argument 'cente
GPT-5
no output
Text2CadQuery (Qwen 3B)
No variable named 'result' found after exec()