AI-tegning
Denne side er en reference for, hvordan en AI-klient (ChatGPT, Claude, Gemini, Cursor, …) tegner professionelle diagrammer i LetDraw over API og MCP. Modellen behøver ikke at gætte letdraws skema: alt nedenfor præsenteres også for modellen på kaldstidspunktet, så en tilsluttet model kan læse det og tegne korrekt ved første forsøg.
Hvordan modellen lærer LetDraw
Sektion kaldt “Hvordan modellen lærer LetDraw”Du gentræner ikke modellen; du giver den kontekst på kaldstidspunktet. LetDraw eksponerer al sin tegneviden gennem MCP-serveren og REST API:
| Hvad | MCP | REST |
|---|---|---|
| Hvordan man tegner (denne guide, maskinlæsbar) | resource letdraw://capabilities | GET /capabilities |
| Hvert ikonbibliotek + alle elementetiketter | resource letdraw://libraries | GET /libraries?items=1 |
| Biblioteks-id’er + antal | tool list_shape_libraries | GET /libraries |
| Find et ikon til en komponent | tool search_icons | GET /icons?query=… |
| Opret / opdater et diagram | tools create_diagram / update_diagram | POST / PATCH /documents |
En velfungerende klient læser resurserne letdraw://capabilities og
letdraw://libraries én gang og tegner derefter. Peg din AI mod MCP-
endpointet (se API og MCP); den opdager resten på egen
hånd.
Gyldne regler for professionelt output
Sektion kaldt “Gyldne regler for professionelt output”- Brug rigtige ikoner, tegn dem ikke. Kald
search_icons(f.eks."postgres","redis","kubernetes pod","load balancer") og læg den returnerederef- værdi ind i kassensiconRef-felt (f.eks."databases/PostgreSQL"). Serveren stempler præcis det ikon og lader etiketten flyde nedenunder det. - Hold containere rene. Store grupperingskasser (en Kubernetes Cluster, en VPC,
et subnet-bånd) bør være brede (> 420px) eller en
frame. Ikoner stemples kun på node-store kasser (60-420px brede, 40-260px høje). Placér en containers titel som standalone tekst over den, ikke som en bunden etiket. - Indlejr bevidst. Ydre farvet container til node-store kasser indeni, hver med sit eget ikon. To eller tre niveauer læses bedst (Cluster til Worker Node til Pod).
- Rut pile rent. Til retvinklede / flerbøjede forbindelser skal du sende en
pil med 3+
points; bind enderne til figurer, så de forbliver knyttet. - Farvekod efter rolle og hold afstanden konsistent.
Afsendelse af en scene
Sektion kaldt “Afsendelse af en scene”create_diagram / update_diagram accepterer elements som enten
letdraw-native elementer eller standard Excalidraw JSON (auto-detekteret og
konverteret på serveren). At producere Excalidraw JSON er den nemmeste vej til høj kvalitet;
native LetDraw giver dig de letdraw-specifikke funktioner nedenfor.
Fælles elementfelter
Sektion kaldt “Fælles elementfelter”id, type, x, y, width, height plus stil: strokeColor (hex), fillColor
(hex eller "transparent"), fillStyle (hachure | cross-hatch | solid | dots | zigzag | dashed | zigzag-line), strokeWidth (1-8), strokeStyle
(solid | dashed | dotted), roughness (clean | sketch | scribble), bowing
(straight | curved | wavy), corner (sharp | rounded | beveled), opacity
(0-100), seed. Valgfri: text, fontSize, fontFamily
(hand | normal | code), textAlign, groupIds, angle (radianer), link,
shadow (none | soft | hard) og letdraw-udvidelsen iconRef.
Figurtyper
Sektion kaldt “Figurtyper”rectangle, ellipse, diamond, triangle, right-triangle, parallelogram, trapezoid, star, hexagon, heptagon, octagon, cross, cloud, cylinder, speech-bubble, document, manual-input, display, terminator, data-storage, preparation, blok-
pile (arrow-right/left/up/down), plus text, image (dataURL), frame
(mærket stiplet sektion; sæt name), embed (url), math (LaTeX i text),
code (kildekode i text, language). En figur bærer sin etiket med text
indeni (i Excalidraw-format via et tekstelement med containerId).
type: "arrow" og:
arrowShape:straight | curved | elbow | s-curve | smart | multipoint | multipoint-curved.smartruter automatisk uden om andre figurer.multipointer en skarp polylinje med flere segmenter;multipoint-curveder dens udglattede version; begge læser deres hjørner frapoints.points:{x, y}[]i absolutte verdenskoordinater (første til sidste). 2 punkter = lige, 3 = elbow (enkelt bøjning), 4+ = rutet polylinje. Retvinklet forbindelse:points: [{x1,y1},{x2,y1},{x2,y2}].controlPoint/controlPoint2: bezier-håndtag til curved / s-curve / elbow.startArrowhead/endArrowhead:none | arrow | triangle | triangle-outline | circle | diamond | diamond-outline | bar | crows-foot | crows-foot-bar | double-bar | circle-bar | circle-crows-foot. Brug UML-hoveder (triangle-outline= generalisering,diamond= komposition) og ER crow’s-foot- hoveder til kardinalitet.startBinding/endBinding:{elementId, focus:{x,y}}: bind en ende til en figur (focuser et 0..1-punkt i figurens bbox), så pilen følger den.
I Excalidraw-format skal du sende pilen med points + startArrowhead/endArrowhead;
konverteren mapper 2 / 3 / 4+ punkter til straight / elbow / s-curve og genberegner
bindingerne.
Linjer
Sektion kaldt “Linjer”type: "line" og lineShape: straight | multipoint | multipoint-curved.
Multipoint-linjer bærer points (samme som pile, uden et pilehoved). Også
freedraw (points[]) og highlight (halvgennemsigtig markør).
Ikoner: iconRef-flowet
Sektion kaldt “Ikoner: iconRef-flowet”search_icons({ query })producerer en rangeret[{ library, label, ref }].- Sæt
iconRef: "<library>/<Item Label>"(eller{ library, label }) på den ønskede kasse. create_diagramstempler det ikon øverst i midten og flytter etiketten nedenunder det.
En eksplicit iconRef vinder altid; derefter får enhver resterende mærket node uden et
ikon automatisk et bedste-gæt-nøgleordsikon. I en cloud-scene skal du angive
udbyderen (kubernetes / aws / azure / gcp), så udbyderens ikonsæt
foretrækkes. Gennemse id’er med list_shape_libraries; det fulde etiketkatalog er i
letdraw://libraries (eller GET /libraries?items=1).
Databaseprodukter opløses til Databases-biblioteket: rigtige logoer hvor brand- politik tillader det (PostgreSQL, MariaDB, Cassandra, DynamoDB, …), ellers DB-passende generiske ikoner (MySQL, Redis, MongoDB, …).
Lille eksempel i Excalidraw-format
Sektion kaldt “Lille eksempel i Excalidraw-format”[ { "id": "db", "type": "rectangle", "x": 0, "y": 0, "width": 200, "height": 90, "backgroundColor": "#eef2ff", "strokeColor": "#334155", "roundness": { "type": 3 }, "iconRef": "databases/PostgreSQL", "boundElements": [{ "type": "text", "id": "dbt" }] }, { "id": "dbt", "type": "text", "x": 10, "y": 30, "text": "Orders DB", "containerId": "db" }, { "id": "a1", "type": "arrow", "x": 200, "y": 45, "points": [[0, 0], [80, 0], [80, 120]], "endArrowhead": "triangle", "startBinding": { "elementId": "db" } }]Andre værktøjer
Sektion kaldt “Andre værktøjer”diagram_from_code: send docker-compose / Kubernetes-manifest / Graphviz DOT / PlantUML / Terraform / Helm values / SQL DDL; LetDraw auto-detekterer formatet og lægger det ud.export_to_code: et diagram til Mermaid eller D2.generate_from_prompt: naturligt sprog til diagram ved hjælp af din kontos egen AI-nøgle.
For autentificering, endpoints, scopes og klientopsætning, se API og MCP.