Skip to main content
4-Participant
June 3, 2025
Solved

Mathcad Prime Failing to Convert Legacy Mathcad V15 File

  • June 3, 2025
  • 2 replies
  • 1464 views

Mathcad Prime V10.0.0 is failing to convert a V15 Mathcad file with a .xmcd extension. The file was originally created in a much earlier version of Mathcad - possibly V12 - but was used periodically using V15.

After failing to convert, Prime creates a new file with a .mcdx extension to it. Does anyone have any advice on what the issue might be and what the next step could be? For the avoidance of doubt, I could previously open, edit, execute and save the original Mathcad file using Mathcad V15 without any issues.

Best answer by terryhendicott

Hi,

Have converted the file.

Steps.

1) Removed highlighting,

2) Removed collapsed regions.

3) Deleted Header and Footers

4) Changed right hand margin from 45 to 15 mm in A4.  This puts all calculations in the left hand page.

Not sure you need to make all the changes I made but it works

Cheers

Terry

2 replies

23-Emerald IV
June 3, 2025

What makes you believe that the conversion failed?

 

Prime either converts the Mathcad 15 file and produces an .mcdx file, possibly with some hints on issues it encountered, or it fails to convert and then no .mcdx file is generated.

So if you have an .mcdx file, that should be the converted .xmcd file.

You should still be able to open the .xmcd file with Mathcad 15, but you cannot open the converted .mcdx file with it. For that you need to use Prime.

 

Success!
Luc

24-Ruby III
June 4, 2025

Hi,

I can confirm that conversion failed in MCP 11.0.0.0.

MartinHanak_0-1749013252841.png

Master Earth Pressure.mcdx_exceptions_log.txt contains following error description.

Exception data:
System.ArgumentException: Unrecognized structure in data format 'Rich Text Format'.
Parameter name: stream
 at System.Windows.Documents.TextRangeBase.Load(TextRange thisRange, Stream stream, String dataFormat)
 at System.Windows.Documents.TextRange.LoadVirtual(Stream stream, String dataFormat)
 at Ptc.PersistentDataObjects.PresentationSettingsDataObjectCreator.ConvertHFPaneText(String hfPaneText, LocationInfo locationInfo)
 at Ptc.PersistentDataObjects.PresentationSettingsDataObjectCreator.ConvertHFPane(headerFooterPaneType hfPane, LocationInfo locationInfo, IDictionary`2 headerFooterImagesMap, IList`1 regions)
 at Ptc.PersistentDataObjects.PresentationSettingsDataObjectCreator.CollectHFObjects(headerFooterType hf, Boolean isHeader, Double pageWidth, Double gridCellSize, IDictionary`2 headerFooterImagesMap)
 at Ptc.PersistentDataObjects.PresentationSettingsDataObjectCreator.CreatePresentationSettingsFromMC14Xml(XmlElement presentationXml, DataObjectHelper dataObjectHelper, IDictionary`2 headerFooterImagesMap, List`1& headerRegions, List`1& footerRegions)
 at Ptc.PersistentDataObjects.DocumentSettingsDataObjectCreator.ReadDocumentSettings(XmlElement settingDataAsXml, DataObjectHelper dataObjectHelper, IDictionary`2 headerFooterImagePaths, presentation& presentation, calculation& calculation, List`1& headerRegions, List`1& footerRegions)
 at MCDXConverter7.DocumentSettings.AddSettings(String settings, String[] paths)
 at MCDXConverter7.CMcdxConverter.AddSettings(String settings, String[] paths)

 

 

23-Emerald IV
June 4, 2025

Either Mathcad 15 contains a bug that can create illegal RTF structures, but it can handle those itself. 

Or Mathcad 15( and before) knows Rich Text Format (RTF) structures that Prime doesn't know about and thus cannot handle, which I think is a Prime bug.

 

This should be reported to PTC.

 

Success!
Luc

4-Participant
June 4, 2025

Thanks for the advice Luc.

 

I pasted some of the error message into Copilot which suggested that the problem is likely related to content in the header or footer of the V15 file. The V15 file is based on a Mathcad template and so the issue might be as Copilot is suggesting. However, I recently converted a few legacy V15 Mathcad files to Prime and these are also based on a Mathcad template,

 

I'll re=open the file again in V15, delete the header content and then try to convert.