All guides

How to Use ChatGPT and Claude to Make 3D Printable Models (Including Multicolor 3MF for Bambu Studio)

11 min read

Can ChatGPT or Claude really design a part you can print? What should you put in the prompt so the first version is close? And how do you get a multicolor model out of an AI that actually prints in the right colors?

More and more of the files we receive were made with ChatGPT or Claude. Most of them are good, and most of them print well. The customers who get great results are not doing anything magic. They describe the part the way an engineer would, they ask for the right file type, and they check the result before sending it. This guide shows you how to do the same.

How an AI "makes" a 3D model

ChatGPT and Claude don't sculpt. They write code that builds the shape, then run that code to produce a file. The code is usually OpenSCAD or a Python library such as CadQuery, build123d, trimesh, or manifold3d.

That matters for two reasons. First, code is exact, so a 40 mm hole comes out at 40 mm. Second, you can keep the code and change one number later instead of starting over.

If the AI hands you a picture instead of a file, you've asked for an image, not a model. Ask it to write and run code that exports an STL or 3MF. If your chat can't run code, ask for OpenSCAD code instead. OpenSCAD is free, and pasting the code in and pressing F6 then F7 gives you an STL.

What to put in the prompt

The more you'd tell a person designing it for you, the better. A good prompt covers these things.

What it is and what it does. "A wall bracket that holds a 38 mm dowel 100 mm out from the wall" is far better than "a bracket."

Every dimension that matters, in millimeters. Measure with calipers if you have them. Say which dimensions are critical and which can be adjusted. AI models are good at math, but they guess when you leave gaps.

What it fits onto or into. Give the real measurements of the mating part, and say whether the fit should be tight, snug, or loose.

Fasteners and hardware. Name them. "Two M4 countersunk screws," "6 × 3 mm round magnets," or "M3 heat-set inserts" gets you holes and pockets sized correctly.

How it will be used. Indoors or outdoors, how much load, whether it gets hot. This helps the AI choose wall thickness and helps us suggest a material.

How it will sit on the print bed. Ask for a flat face on the bottom and tell it which face that should be. Parts designed to print in one orientation come out stronger and need less support.

Size limits. If the part is large, say so. A model that won't fit on the bed can be split, and the AI can add alignment pins or dovetails if you ask.

Design rules worth pasting into every prompt

These rules prevent most of the problems we see. Copy them into your prompt as written.

Design for FDM printing with a 0.4 mm nozzle:
- Minimum wall thickness 1.2 mm; no feature thinner than 0.8 mm.
- Keep overhangs at 45 degrees or less from vertical where possible.
- Put a 0.5 mm chamfer on bottom edges instead of a fillet.
- Make holes 0.2 mm larger than the nominal size.
- Clearance between parts that must fit together: 0.2 mm for snug, 0.4 mm for loose.
- Raised or recessed text at least 0.6 mm deep and 5 mm tall.
- The model must be a single watertight solid with no internal faces.

Example: a single-color prompt

Design a desk cable clip for 3D printing.

It clamps to the edge of a desk that is 25 mm thick, and holds
three USB cables that are each 4 mm in diameter side by side.
The clamp should be a snug push-fit on the desk edge, not loose.
Overall width about 40 mm. It will print lying on its side with
the C-shaped profile flat on the bed.

[paste the design rules above]

Use Python with build123d or manifold3d. Put every dimension in
named parameters at the top of the script. Run the script, then
give me:
1. The STL file, in millimeters.
2. The full source code.
3. The bounding box dimensions.
4. Confirmation from a mesh check (for example, trimesh is_watertight)
   that the mesh is watertight.
5. Preview images from the front, top, and an angle.

What to ask for as output

STL for single-color parts. It's the most widely supported format and it carries no color.

3MF for multicolor parts. We cover the details below.

Always ask for the source code too. It's how you make changes later without losing what already works.

Ask for millimeters by name. Unit mix-ups are the most common error we see. A part that arrives 25.4 times too small or too large was modeled in inches and exported as millimeters.

Ask for a version number in the filename, such as cable-clip-v3.stl. It saves confusion when you're three revisions in.

Things to look out for

The preview isn't the file. Some chats show a picture rendered separately from the file they export. Open the actual file before you trust it. Bambu Studio is free and shows dimensions as soon as you load a model.

"I checked it" is not a check. If the AI says the model is watertight, ask it to show you the output of the code that checked it. AI models will sometimes say they ran a check when they didn't.

Pieces that aren't joined. A handle that floats a hair away from the body prints as a separate piece, or not at all. Ask for all parts to be unioned into one solid.

Blocky curves. Circles made of too few segments print as visible polygons. Ask for at least 128 segments on any large circle.

Threads. Printed threads are possible but often wrong on the first try. Heat-set inserts or a captured nut are more reliable for anything you'll tighten more than once.

Text. The AI's computer may not have the font you asked for, and it will quietly substitute another one. Check the lettering in the preview.

Organic shapes. Code is excellent for brackets, enclosures, organizers, and adapters. It's weaker at faces, animals, and characters. Those usually come out better from a dedicated image-to-3D tool or a sculpting program.

How to adjust a model that's almost right

Change one thing at a time. Long lists of fixes in one message often fix three things and break a fourth.

Refer to parameters by name. "Increase clip_gap from 25.0 to 25.4" leaves nothing to guess.

Show it the problem. Upload a screenshot from Bambu Studio or a photo of the test print and point to what's wrong.

Give it measurements, not adjectives. "Too tight" leads to a guess. "The hole measures 7.7 mm and the pin is 8.0 mm" leads to a fix.

Print only the critical part first. Ask for a small test piece that has just the hole, snap, or slot you're unsure about. It's cheaper and faster than reprinting the whole part.

Start fresh when the chat gets long. After many revisions, the AI can lose track and undo earlier fixes. Open a new chat, paste in the latest source code, and describe the next change.

ChatGPT or Claude?

Both work well, and the prompt matters more than the choice. Both can run Python and hand back a downloadable file when that feature is turned on in your account. If one gets stuck on a problem, paste the source code into the other and ask it to fix that one issue. A second opinion often finds the mistake quickly.

Multicolor models: why it's tricky

There's no filament color standard that works reliably across slicers. The 3MF format has a way to store colors, but slicers handle it differently. Bambu Studio, for example, maps those colors to filament slots by their order in the file rather than by the color itself, so a model can arrive with the right colors on the wrong parts. Separate STL files per color work, but someone has to line them up and assign them by hand.

What works reliably is a 3MF painted the same way Bambu Studio saves its own painted models. We print on Bambu printers exclusively, so this is the format we ask for.

How a Bambu Studio painted 3MF works

The model is one object made of triangles. Each triangle can carry a paint_color value that names a filament slot. Slot numbers are not colors. You tell us which color goes in each slot, and we load those filaments.

The values follow a fixed pattern. They must be uppercase, because Bambu Studio ignores lowercase codes.

Filament slot paint_color value
1 4 (or leave blank)
2 8
3 0C
4 1C
5 2C
6 3C
7 4C
8 5C

The pattern continues up to AC for slot 13. We can print up to 13 colors in one job, though every extra color adds filament changes, and with them print time and material.

Color can only change where the mesh has an edge. If the top of a sign is two big triangles, nothing can be painted on it. The fix is to have the AI model each color region as its own solid, join them together, and keep track of which original solid each triangle came from. The manifold3d Python library does this automatically, which is why we suggest it.

Example: a multicolor prompt

Design a round 60 mm coaster for multicolor printing on a Bambu
printer. The base is a disc 3 mm thick. On top of it:
- A five-point star, its points 18 mm from the center, raised 1.2 mm.
- A ring 3 mm wide, raised 1.2 mm, its outer edge 2 mm in from the
  edge of the coaster.
- A 6 mm dot in the middle of the star, raised a further 1.2 mm.

Colors by filament slot:
- Slot 1: white (base)
- Slot 2: red (star)
- Slot 3: blue (ring)
- Slot 4: yellow (dot)

[paste the design rules above]

Build it in Python with manifold3d. Model each color region as its
own solid, call as_original() on each, and union them. Use the
mesh's run_original_id and run_index to find which solid each
triangle came from.

Export a 3MF in the Bambu Studio painted format:
- One object, one mesh, units in millimeters.
- Write the color on each <triangle> in 3D/3dmodel.model as a
  paint_color attribute, using these uppercase codes:
  slot 1 = no attribute, slot 2 = "8", slot 3 = "0C",
  slot 4 = "1C", slot 5 = "2C".
- Do not use the 3MF materials extension, colorgroup, or
  basematerials.
- Include [Content_Types].xml and _rels/.rels.

Then give me the 3MF, the source code, a count of triangles per
slot, and a preview image with each slot drawn in its color.

The triangle count per slot is a quick sanity check. If a color you asked for shows zero triangles, it didn't make it into the file.

Download the example: painted-coaster.3mf (17 KB) is the coaster this prompt describes, exported in exactly this format. Open it in Bambu Studio with four filaments in the list, and the star, ring and dot come in painted in slots 2, 3 and 4. It's also worth attaching to the chat when you ask for your own model, with a line like "export it in the same format as this file."

Check it before you send it

Before you open the file, add filaments in Bambu Studio until the list has at least as many as your model uses. Paint for a slot that doesn't exist yet can load as the base color instead.

Then open the 3MF. The colors should appear on the model as soon as it loads. Check the dimensions, check that every color is where you expect, and make sure Bambu Studio doesn't report errors that need repair.

If colors are missing, the usual causes are lowercase codes, the materials extension, or too few filaments in the list. Paste the codes table above back into the chat and ask the AI to fix the export.

Save it from Bambu Studio and send us that file

Once it looks right, set each filament in the list to the color you want and save the project (File > Save Project). That saved file is the one to upload.

Bambu Studio writes its filament list into the file when it saves. That list is how our quote form knows how many colors you've painted, so it can give you a color choice for each slot and price the print automatically. The file straight from the AI carries the paint but no list, so we'd have to work out the price by hand.

What to tell us

Upload your STL, or the 3MF you saved from Bambu Studio. For a multicolor model, the quote form asks for a color for each filament slot. Then tell us:

  • The material you want, or what the part has to survive.
  • Any dimensions that are critical, so we can double-check them.
  • Whether you'd like us to adjust the model before printing. If the AI got you most of the way there, we can finish the job, split oversized parts, or add hardware like magnets and heat-set inserts.

Keep reading

Know what you need? Let's print it.

Upload your model for an instant quote, or just describe the part and we'll tell you what it should be made of.