Why did a 2006 converter sell format pairs — and why does this one run only one direction?
That 2006 page priced conversion one format pair at a time. Its feature list counts 14 input formats and 12 output formats, and OBJ and X_T appear on the input list only — readable, with nothing to be written back into. Fourteen times twelve is 168 ordered pairs, of which 144 have a counterpart going the other way and 24 are one-way. Here the count is two pairs, STEP to STL and IGES to STL, four extension spellings, one output, and the 10 mm cube still lands at 12 triangles and 684 bytes, where 684 = 84 + 50 × 12.
This page answers one question: why a conversion service can put a format on its input list and leave it off its output list, and what that says about a converter that runs a single direction. The left half is read off a dated public capture of a vendor product page; the right half is re-measured from the bytes this site writes. Every figure below is reproduced by this project’s own test suite before release.
Two lists, counted row by row
The page did not show a grid of conversions. It showed two standing lists, one headed as input and one as output, and the argument is made by counting them rather than by trusting a summary sentence.
| Input list | 14 names: 3DS, B-Rep, DWG, DXF, IGES, OBJ, OPN, RAW, SAT, STEP, STL, TOS, VRML, X_T. |
|---|---|
| Output list | 12 names: 3DS, B-Rep, DWG, DXF, IGES, OPN, RAW, SAT, STEP, STL, TOS, VRML. |
| On the input list only | OBJ and X_T — two formats that could be read and could not be written. |
| How the modules were described | One specialized translator per input format, each taking one input format to any of the available output ones. |
The two lists have the same shape except for those two names, so the difference is easy to state and easy to check: a reader can count the names and see where the two lists stop agreeing. What the page never did was present this as a limitation. It presented it as a catalogue, and the catalogue is what was for sale.
Pairs with no way back: 168, 144 and 24
Once the unit of the product is a pair instead of a file, the two lists turn into a count of things being sold. Each input format against each output format is one pair, and the arithmetic is short enough to do on the page.
- Ordered pairs: 14 × 12 = 168. Every input format paired with every output format, direction included.
- Reversible pairs: 12 × 12 = 144. Twelve formats sit on both lists, so twelve inputs have a counterpart that runs the other way.
- One-way pairs: 2 × 12 = 24. OBJ and X_T each pair with twelve outputs, and none of those 24 has a reverse, because neither name is on the output list.
Those three numbers add up to the first one, and that sum is the cleanest way to see what an asymmetric list costs: 144 pairs can be sold in both directions and 24 cannot. A reader who wants a specific direction — OBJ into STEP, say — is inside the 168 on that page, but a reader who wants the return trip is not, and would have had to ask which module covered it.
The price list followed the input format
The captured page made the pair the unit of the product in its ordering step too. Rather than a flat catalogue with one price attached to the whole program, the page asked the visitor to choose an input format and then show the price list that corresponded to it: swapping the input format swapped the price list.
No amount is readable in the capture — the price itself sat behind a selection, so this page prints no figure from it, and a 2006 amount would say nothing about today either way. What survives is the structure: the thing being priced was not a file, not a minute, not a month, but one input format. That is a product model this site does not share. Here there is nothing to select first and nothing to unlock: the tool has one direction and no tier, and the only quantity that changes when a setting changes is the triangle count.
The other detail worth keeping is what the page promised about the middle of the conversion. Its intermediate structure was described as holding every entity without conversion or transformation, and curves and surfaces were described as arriving unchanged: a circle stayed a circle, a B-spline kept its parameters. That promise is about the read side, and it is the same promise this site’s reader makes — the difference is at the far end, where a solid becomes a triangle list on purpose and cannot become a solid again by running the operation backwards. The STEP versus STL page owns that loss; this page only counts the pairs.
One module per pair, and why that arrangement ends
A pair-based catalogue is not a marketing choice, it is a maintenance bill with a shape. Each format has its own conventions for storing a model, and a translator that reads one and writes another has to carry both sets of conventions. Twenty-eight modules covering 168 pairs is the arithmetic of a business that pays for that coverage by selling each pair separately, and the bill grows with the list rather than with the customers.
That is also why an asymmetric list is the honest one. A page that prints two lists is telling a reader exactly which modules exist. A page that prints one big grid marked as accepting anything and writing anything is making a claim it does not have to break down. The difference is not honesty of tone; it is whether the count can be checked — and here the count is the page.
Two facts about the captured page, stated as facts and nothing more: the copyright line on it runs from 1998 to 2006, and the domain no longer resolves. This page therefore describes what that page said on the days it was captured, and makes no claim about the company since.
Two formats in, one out, and the bytes prove it
This converter’s matrix is one line long. STEP and IGES are the two formats it reads, spelled four ways — STEP, STP, IGES and IGS — and the one format it writes is STL. That is two format pairs against the captured page’s 168, and zero pairs with a counterpart, because STL is only ever written here. The accepted inputs and the single output are listed in one place only, the format section of the verification page.
The output side is where the count becomes checkable. A binary STL is an 84-byte header plus 50 bytes per triangle, so the 10 mm test cube is 12 triangles and 684 bytes at Draft, Normal and Fine, and the 18-part test assembly leaves as 7,372 triangles and 368,684 bytes at Normal from a 433,606-byte input.
| Captured page, 2006 | This page, today | |
|---|---|---|
| Formats read | 14 | 2 — STEP and IGES |
| Formats written | 12 | 1 — STL |
| Ordered pairs offered | 168 | 2 |
| Pairs with no reverse | 24 | 0 |
| What sets the price | the input format chosen | nothing; there is no account and no tier |
Every length in the output is 84 + 50 × its triangle count, so a reader can redo the arithmetic without rerunning a conversion: 684 = 84 + 50 × 12, and 368,684 = 84 + 50 × 7,372. These are this page’s own test files and own settings, not a CAD standard.
What you can check without trusting the page
- Count the left list and the right list. Fourteen names against twelve, with OBJ and X_T on the left only, and the two products above follow: 14 × 12, 12 × 12, 2 × 12. If a page prints one big grid instead of two lists, ask it which directions it actually wrote.
- Count what this page accepts. Four extensions, two formats, one output; adding a suffix the tool does not read produces an error and no result panel, which is the checkable version of “one direction”.
- Check the bytes. (bytes − 84) ÷ 50 returns the triangle count exactly: 684 bytes returns 12, and 368,684 bytes returns 7,372, with no rounding in either direction.
The 2006 half is checkable the same way: the capture is a dated public page and the counts are read straight off its two lists. What a later version of that page said is a different capture and a different question, and this page does not answer it.
Questions this page answers
Why can some formats go in but not out?
Because on that 2006 page a translator was one module per input format, and a module was only shipped when someone had written the writing half. Fourteen formats could be read and twelve could be written, so OBJ and X_T were readable and had nothing to be written back into. The list is asymmetric because the product was made of pairs, one pair at a time, rather than of a single box that claims every direction.
How many pairs is a 14 by 12 format list?
168 ordered pairs, 14 times 12. Of those, 144 are reversible, because twelve formats sit on both lists, so twelve times twelve pairs have a counterpart going the other way. The remaining 24 are one-way, two formats times twelve outputs, and those two are the ones with an entrance and no exit. Here the count is two pairs: STEP to STL and IGES to STL, four extension spellings, one output, and zero pairs with a counterpart.
Why does this converter run one direction instead of a matrix?
Because a matrix is a maintenance bill, not a feature. Each pair in that archived list was its own module, and a module has to be kept working for every format on either side of it, which is why a list that sold pairs did not keep them all. Here one kernel reads STEP, STP, IGES and IGS and one writer emits binary STL, so the surface to keep working is two pairs, and the cube still arrives at 12 triangles and 684 bytes.
Where these numbers come from
Published · Last updated
- 14 input formats, 12 output formats, OBJ and X_T on the input list only, one translator per input format, the price keyed to the chosen input format, © 1998–2006 — a dated public capture of a vendor product page kept in this project’s research folder, read by the test suite before the page may print any of it; no sentence from that page is reproduced here, and no amount from it is printed.
- 168 / 144 / 24 ordered, reversible and one-way pairs — computed by the test suite from the two lists in that capture, not estimated here.
- 12 triangles / 684 bytes for the 10 mm cube — this project’s own output for
cube-10x10.stpat Draft, Normal and Fine, re-run bynpm test. - 433,606 bytes in, 7,372 triangles and 368,684 bytes out — the 18-part AP214 assembly
as1-oc-214.stpat Normal, with the length asserted against 84 + 50 × 7,372. - What this page does not print — no monthly search volume, no keyword bid, no competitor name, no price or amount from that capture, no capacity figure from another converter, and no byte counts from the capture itself. Large assemblies are unverified.
npm test
The command above re-runs every number on this page. The price-list page owns which side of a price list STEP once sat on, the cloud-pricing page owns what an online service charged and when it stopped, and the mesh-era page owns which formats a later generation of free tools could read at all.
Sponsored link: Creality’s official store (3D printers, scanners, filament and parts) is an affiliate partner — clicking it may earn this site a commission. It changes nothing about the converter; see what sponsored links mean here.