A visitor drops an STL onto the page and sees a price about a second later. No account, no catalog, no "request a quote and someone will get back to you". The thing being priced is geometry nobody has seen before, so the price has to come out of the file itself.
Here is what happens in that second. The arithmetic is worth reading even if you never print anything, because quoting from a customer's file is the same problem in a dozen trades.
An STL is a bare list of triangles. It describes a surface. Nothing in it states how much plastic the part will take, and the price depends on the solid inside that surface.
The measurement is a signed tetrahedron sum. For every triangle, take the tetrahedron formed by that triangle and the origin, compute its signed volume, and add them all together. Triangles facing away from you contribute negative volume and cancel out the parts of the sum that lie outside the solid, so the total comes out exact no matter where the model sits relative to the origin. The normals stored in the file are ignored on purpose: exporters get them wrong often enough that the winding order of the vertices is the more reliable source of the sign.
The cheap alternative, which is what most instant calculators do, is bounding box times a fudge factor. That is wrong by a factor of three on anything hollow, and a vase is hollow.
Enclosed volume still is not the amount of plastic. A printed part is mostly air: solid walls, a solid top and bottom, a sparse lattice between them.
Pricing it as solid overcharges everyone. Pricing it as pure infill, 20 percent of the volume, undercharges every thin-walled part, and thin-walled is most of what gets printed. So the shell counts as a fixed share of the volume and the infill setting applies to what is left:
effective = shell + infill * (1 - shell)
= 0.35 + 0.20 * 0.65
= 0.48
A model that encloses 100 cm3 is therefore priced as 48 cm3 of plastic. At the default PLA density of 1.24 g/cm3 that is 59.5 grams.
This is the part that surprises owners who are new to it. Take that same 100 cm3 part, with the settings the software ships with:
All three are settings and those are the defaults, in whatever currency the store sells in. Add a 35 percent margin to the 17.49 subtotal and the quote is 23.61.
Note the ratio. Filament is 1.49 of it, the occupied machine 12.00. Filament price is the number every new shop watches and it is close to noise; the scarce resource is hours on the bed. A shop that discounts on material and ignores throughput is discounting the wrong thing.
Run a 3 cm3 keyring through the same steps: 1.8 grams, about 0.04 of plastic. Machine time is floored at a quarter hour, so 0.88. Handling is the same 4.00 as everything else, because the human work does not shrink with the part. Total with margin: 6.64.
The minimum is 9.50, so the answer is 9.50. That floor is not greed, it is the observation that a 3 gram keyring still costs somebody an hour of attention spread across the day: the message, the bed, the packing, the label. Shops that quote small jobs off a per-gram calculator lose money on them and do not find out for months.
Refusing is a feature, and each refusal is a sentence the visitor can act on, not "something went wrong".
One thing it cannot refuse is a units mistake. Neither STL nor OBJ carries units, and every slicer writes millimeters, so millimeters are assumed, and a model authored in inches reads about 16,000 times too small in volume. That is why the result line shows the grams, the hours and the bounding box in millimeters beside the price. A customer who sees 3 x 4 x 2 mm on a hand-sized bracket has been told their export is wrong.
The quote comes back carrying a token, and the measured file has already been stored under a name the server generated. The token travels into the cart. Nothing is re-uploaded at checkout.
So the shop prints the exact geometry it priced, not whatever arrives afterwards. And because the stored name is random and carries no part of the customer's filename, a crafted name cannot escape the directory it was meant to land in.
Take the plastic out and the pattern fits anyone who prices a job from something a customer sends: a drawing, a cut list, a photo of a wall.
Measure the thing rather than eyeball it. Split the cost into material, machine or labor time, and the handling that does not scale down. Put a floor under it, because small jobs cost roughly what medium jobs cost. Refuse to quote what you cannot measure, and say why. And show the working: a customer who can see 59.5 grams and 3.43 hours argues about the price far less than one shown a single number.
The reason to do it on the page rather than by email is the same reason to publish prices at all: the answer arrives while the person still wants it. It also sidesteps the catalog entirely, since there is nothing to list and no SKU to invent, which is a different question from whether a business needs a store or just a way to take payments.

We use cookies to run the site, understand traffic, and improve your experience. You choose what to allow.