Open Mathcad .xmcd and .mcdx files without Mathcad
No Mathcad licence, and a worksheet you need to read? CivilKit Calcs opens Mathcad worksheet files (.xmcd and .mcdx) and converts them into a live calculation sheet in your browser, which its own engine then calculates. Nothing is uploaded: the conversion runs inside the page, and it is free. This page says what to expect, including what does not convert.
The importer is a work in progress. It is a translator, not a guarantee. Plan on checking every imported worksheet against the original, line by line.
How to import a worksheet
- Open CivilKit Calcs in a new tab.
- Choose File, then Import worksheet, or the Import worksheet button on the Document tab. You can also use File, then Open, or drag the file onto the page.
- The converted worksheet opens in a new unsaved tab named after the file, with the extension
.cpd. - A dialog tells you how the import went, for example "18 of 21 regions converted live, 2 shown as static pictures, 1 need attention", with the reasons in plain words.
- Read the list of gaps first, then compare the results with the original worksheet.
What converts
| In the source file | In the result |
|---|---|
| Text, with headings, bold, italic, sub and superscripts | Text lines. Fonts, sizes and colours can be tidied away afterwards. |
| Definitions, evaluations and functions | Definitions and equation lines with the same names, subscripts and Greek letters. |
| Units | The same units under this engine's names. A unit it does not know is reported. |
| Vectors, matrices and indexing | Vectors and matrices. The array origin is shifted to 1, with a note. |
| Sums, products, integrals, derivatives (supported forms) | The engine's sum, product, area and slope commands. |
| Programs of loops, conditions and early exits | Expression blocks. |
| x-y plots | Plot lines. Colours, markers and axis ranges may not carry over. |
| Solve blocks of one or two unknowns | Solved here by iteration, and kept only if the equations hold at the answer. |
| Statistics functions, complex numbers, simple text values | Converted. |
| Referenced worksheets | Their definitions are read in when the file holds a copy. |
| Pictures | Embedded in the browser library. |
The equations are shown as the author wrote them, with stacked fractions and bounded sums, and computed out of sight. Every number in the output was in the source file; the importer evaluates nothing itself and the engine then runs the result.
What is frozen
Some values cannot be computed here, so the importer takes the number the source file saved and shows it as a literal marked frozen. That applies to values from input components such as a list box or text box, calls into add-in functions that are not available when the file saved a value, tables read from data files, and solve blocks whose iteration does not verify. A frozen value does not follow a change of its inputs. The dialog counts them.
What does not convert
- Range variables outside the supported uses, and programs outside the supported subset.
- Solve blocks of more than two unknowns, other solvers and symbolic evaluation.
- Derivative, integral and summation forms the importer does not map.
- Plots that are not x-y plots.
- Embedded objects, components, worksheet references with no copy, and add-in functions with no saved value.
- Text values that are joined, measured or formatted.
- Regions the source has switched off, and some page headers and footers.
Each gap is replaced by a placeholder: a typeset, not-calculated equation, or a picture of the original region. A calculation that depends on an unconverted region shows its names as undefined. The dialog ranks the missing features by how many regions each one blocks, so you can see the worst first.
Is the file uploaded?
No. The file is read and converted inside the page, by a module that loads on first use and runs in a web worker. We checked the import code: it hands the file's bytes to the worker and gets text and pictures back by message, with no network request carrying the file. The dialog also ends with a line saying the file was read in this page and was not uploaded. Pictures from the file are stored in the browser's library under the name of the file.
Limits: input over 64 MiB, XML nested deeper than 256 levels, a document type declaration, and pictures over 16 MiB each or 192 MiB in total are refused or skipped. Problems come back as messages, not crashes.
After the import
- Tidy text on the Document tab removes imported fonts, sizes and colours from paragraphs. Text to Markdown then writes runs of simple paragraphs as Markdown you can edit.
- Save the worksheet. It refers to the pictures by their library path, so export to HTML or Word first if you need a self-contained file.
- Compare the numbers. A good habit is to put the original's results next to the imported ones, and open the dialog's list of gaps beside them.
If the result is a mess, the original is untouched. Nothing is changed in your file.
Questions
Do I need Mathcad installed?
No. The file is read and converted by CivilKit Calcs itself, in the browser. You do not need Mathcad or any other program.
Which file types can it import?
The .xmcd and .mcdx worksheet formats. Other file types are rejected with a message.
Will every worksheet convert completely?
No. Worksheets that use add-ins, embedded objects, symbolic evaluation or unsupported plots will have gaps, and the importer says where.
Does it keep my original file?
Yes. It reads the file and does not change it.
Is my worksheet sent to a server?
No. It is converted in your browser. We checked the import code for network requests that carry the file and found none.
Do the numbers match the original?
Constants are copied from the source file and the engine recomputes the rest. Check on your own files: do not assume they match.