Skip to main content
Glama

add_dimension

Add dimensions to FreeCAD drawing pages: auto overall extents, true edge lengths, diameter/radius, angles, or point-to-point distances, with optional tolerances.

Instructions

Add dimension(s) to a drawing page.

Modes (pick one):

  • auto=True: overall horizontal + vertical extent dimensions for every part-view (or only those named in views, by name or projection code).

  • view + edge=: dimension the true length of a model edge, projected into that view. The printed value is the real measured length, not the foreshortened projection.

  • view + kind='diameter'|'radius' + edge=: a ⌀/R dimension of a hole or arc.

  • view + kind='angle' + face=: the half-angle (or, by default, the 2× included angle) of a conical face — the curved angle a machinist sets for a chamfer cone / countersink / taper (issue #108). Pass half_angle=True to call out the half-angle instead.

  • view + from_point/to_point ([x,y,z] model points): dimension between two 3D points. view: a view handle, object name, or projection code ('Front', 'Top', ...). kind: 'aligned' (default) | 'horizontal' | 'vertical' | 'diameter' | 'radius' | 'angle'. tolerance: optional, rendered next to the value (a machinist needs it to make the part to size): {"sym": 0.1} for ±0.1, {"plus": .., "minus": ..} for an asymmetric tolerance, or {"fit": "H7"} / {"fit": "H7/g6"} to look up ISO 286 hole-side limits at the dimension's basic size. Returns {dimensions: [{handle, name, type, value}, ...]} — value is the true measured size of each dimension created.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
autoNo
edgeNo
faceNo
kindNoaligned
pageYes
viewNo
viewsNo
to_pointNo
toleranceNo
from_pointNo
half_angleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden and it does disclose non-obvious behavior: auto-mode semantics (overall extent across every part-view or a named subset), tolerance fit lookups against ISO 286, forehortening semantics for edge mode, and default vs half-angle behavior. Gaps remain: it does not say whether adding a dimension mutates the drawing page (it does, but 'add' implies it), whether duplicate dimensions are rejected, or permission requirements for this mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the one-line purpose, then structured as a numbered mode list, followed by parameter and return notes. Every line for tolerance and modes earns its place, but the paragraph is dense and could be slightly tighter; no filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, output-schema-less mutation tool with zero annotation coverage, the description covers modes, parameters, and return values sufficiently for correct invocation. It stops short of stating the side effects on the page (does it modify the drawing file, need a saved document, cause pagination?) and does not explain how `edge`/`face` tags should be obtained, which would be a useful pointer to list_edges/resolve_edge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it defines semantics for auto, views, view, edge, face, kind (with all six allowed values and the aligned default), half_angle, tolerance (with three concrete shapes and an ISO 286 example), from_point/to_point as [x,y,z] model points, and even the returned value field. This is far more than the schema conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Add) and resource (dimension(s)) to a drawing page, and then enumerates five distinct modes with clearly distinguished triggering parameters. An agent can tell exactly which invocation shape maps to which outcome. It stands apart from siblings like add_annotation or add_gdt_callout by focusing on measured dimensional callouts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance is provided via the five modes, each listing the exact parameter combination that selects it ('auto=True', 'view + edge', 'view + kind=diameter|radius + edge', 'view + kind=angle + face', 'view + from_point/to_point'). The default kind is documented, and the half_angle flag's effect is explained. The agent has clear routing without having to guess.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools