Community Tip - Learn all about the Community Ranking System, a fun gamification element of the PTC Community. X
Hello everyone, I’ve been using PTC Mathcad Prime for some time at my workplace and I wrote down some suggestions to make this software even better.
Some of it are minor bugs, some are usability issues. I’ve added some would-haves also.
Sorry if they overlap with what's been currently discussed (they surely do), but I hope you'll find something worth investigating.
Somewhat randomly:
Bugs:
3. That's an ancient bug. It's been around for at least a decade. Maybe in another decade they'll bother to fix it.
4. That's not a bug, it's by design. Match returns a vector containing all matches. If there is only one match, that's a one element vector. IIRC it used (a very long time ago) to return a scalar when there was only one match, but that was changed because having a return type that depended on the number of matches found was a PITA.
7. That's not possible. When you assign a quantity to a variable it is converted to the base SI unit, and that value is stored along with information about the base SI units. There is no information about the units you used in the assignment.
2. Here's why it doesn't work with units:
As mentioned in response to 7, information about the units used for assignment are not stored, so this could only be made to work (as shown) for the base SI units.
Usability Issues:
5. Copy and Paste in Prime are really primitive. We can't even copy or paste vector graphics, so I wouldn't hold your breath for "fancy" features.
6. A long standing request (i.e. more than a decade)
Nice to have features.
4. Should be possible now, using non-combining diacritical marks. I haven't tried it in Prime, but it works in MC15 (sort of, anyway; success is very font dependent).
5. No kidding. It's in MC15, but like many things in MC15, missing from Prime.
6. Long standing request (i.e. more than a decade)
7. Possible in MC15
8. So use a PDF printer that does work (I use CutePDF)
9. Long standing request (i.e. more than a decade)
11. Long standing request (i.e. more than a decade)
17. You can add a comment by inserting a line and putting an unassigned string in the placeholder, e.g "this is a comment". You can add additional indents if you want:
18. Possible in MC15
21. Long standing request (i.e more than a decade). Not just user defined units though, but also user defined functions, etc.
27. In MC15 the region is math until you hit the space bar, at which point it changes to text. This behavior has been requested many times for Prime, but so far with no effect.
Karol Majewski wrote:
Hello everyone, I’ve been using PTC Mathcad Prime for some time at my workplace and I wrote down some suggestions to make this software even better.
Some of it are minor bugs, some are usability issues. I’ve added some would-haves also.
Sorry if they overlap with what's been currently discussed (they surely do), but I hope you'll find something worth investigating.
- When you set "Transparent" as default plot background colour and save the file as a template, it switches to "Paper color" when you start a new document. <<SB: Agree>>
- floor() and mantissa() functions should work with units. Image. <<SB: Agree>>
- matrix() function does not work properly. It ignores ORIGIN. Image. <<SB: I've requested an enhanced matrix functions that takes vectors as well as scalar arguments and that will then map the function to each vector pair combination>>
- Some functions, like match(), return a 1×1 matrix instead of a scalar. Image. <<SB: See Richard's comment. I'd also like to see an enhanced match function that returns 0 if it can't find a match, rather than raising an error. Additionally, I'd like match to work with strings and return the starting positions of all substrings within another string,>>
- Objects in Draft View are not exactly nonprintable. <<SB: I don't believe draft mode should exist; it's archaic and does not conform to a screen-based document paradigm. All of a worksheet should be printable, with the option to just print the left hand pages. In addition, Text Block should stretch across a single page and across any page not just left hand pages>>
- Copy-paste in collapsible area moves everything below the area instead of enlarging the area. <<SB: Agree>>
- UnitsOf() should return actually displayed units. Image. Then would be no need to manually adjust everything further in the worksheet. <<SB: See Richard's comment. However, I think I'd like the ability to select the base units rather than default to SI.>>
- Sometimes there are blank pages left at the bottom and there is no way to delete them before printing.<<SB: Agree>
- error() does not work properly with latin-extended alphabets. Image. <<SB: string handling is very primitive. It should support formatted strings as well as full Unicode>>
- Writing in tables: when there’s no data in 1st row and you want to call it further in your worksheet, maybe assume empty cell = 0 or NaN? Image. <<SB: I'd rather see Empty and a type analysis that will determine whether the variable will be a string, scalar, array or function based on context>>
- Math in text feature: if you try and call a variable inside a paragraph, it gets a placeholder for its unit, even if not needed. Adds unnecessary white space. Image. Same thing with sigma and other operators. Image. <<SB: Yes, could do with fixing>>
- When there's no units added to a table, it's row should collapse. <<SB: Yes>>
- Italics made by Mathcad are false italics, not the proper, oblique forms of fonts. <<SB: Yes>>
- Copy-paste from Word and Excel causes problems. It would be nice to paste-as-a-matrix, paste-and-transpose, paste-raw-text etc. <<SB: Agree, see Richard's comment>>
- Preffered units: there could be a way to set unit priorities. Instead of having your result as J/kg/K you could want them to by expressed as more usable kJ/kg/K by default.<<SB: see above comment re base units>>
- It would be nice to have "anchor points" not only in right-hand-side of an object. Image. <<SB: Agree>
- Ctrl + z feature works only one-character backwards. Would be more usable if it behaved object-wise (i.e. deleting whole unit instead of singular letters).
- Ability to output data as a table.<<SB: Agree, but I think we need a more integrated Table facility. At the moment, a Table is purely syntactic sugar (ie, easier way of writing) for entering a number of variables. It would be useful to be able to assign an input Table to a variable (something like a nested array, but smarter) and then be able to automatically update the Table with the appropriate variables or work directly with the table rather than the variables, or to be able to replace the columns with another variable>>
- Merge cells feature in tables. <<SB: Not sure, maybe some other mechanism ... I'll have to think about this>>
- Styles! Parahraph styles, headline styles etc. <<SB: Double-plus Agree>>
- Accents. Letters with dots above used to name a variable associated with flow.<<SB:Agree>
- Spell checker.<<SB: Agree ... I'm a Registered Grammar Nazi and it would help mitigate the increase in blood pressure that I get reading some worksheets 🙂 >>
- Autimatically numbering equations ("Equation" style with proper margin, font etc.). <<SB: Agree .. See Richard's comment, we've only been asking for a couple of millenia>>
- Adding links in text.<<SB: Agree>>
- Save-as-PDF feature. Some "PDF printers" do not work properly. Export-as-docx would be nice also (especially when you write a thesis and you don't want to deal with all math expressions). <<SB: Agree. Would also like TeX>>
- Automatically generated table of contents. <<SB: Agree>>
- Grid lines for creating clean documentation. <<SB: not sure what you mean. Prime has grid lines, but the underlying grid system has a major flaw - regions are aligned to the grid, which means changing from Standard to Fine shifts the regions. I have no idea why they chose this route, as regions should be linked to page position.
- Ability to center-align any object (text, equation, image) in a page. <<SB: Agree>>
- Ability to open your document in safe-mode (open, but do not calculate). I've had some cases when document crashed just as I opened it and I wasn't able to look into the matter. <<SB: Agree, although one thing that puzzled me initially is that Prime *doesn't* calculate upon opening>>
- Table captions.<<SB: Agree. See above comment on tables>>
- Variable's name auto-suggestion feature when writing equations. <<SB: Interesting .. current worksheet dependent for variables taking priority over built-in?>>
- "Print document" screen: ability to disable the grid temporarily for printing/exporting. <<SB: not sure what you mean here. You can turn off display of the Grid in Prime 3.1>>
- "Tab" button indenting held object (optionally). <<SB: And unindenting?>>
- Adding comments and indents in programs. <<SB: You can already add comments to programs using strings, however the appearance could do with improving to make strings (especially long strings and those containing Greek and other characters) more readable. Indentation is a function of the programming editor anyway>>
- Two-axis plots.<<SB: Agree>>
- Using forward slash in units.
- Ability to set default width of Text Box. <<SB: Agree, but should also go back to M15 way of writing strings as Richard mentioned, with automatic expansion to a right hand page or left hand region boundary.>>
- Ability to add units like ml, MJ etc. globally (not in a particular worksheet, but in Mathcad itself). <<SB: Agree>>
- Ability to add comas in subscripts in cases like this.
- Creating empty matrix for programming use.<<SB: Double-Double_Plus Plus; see comment above in Usability 1>>
- Ability to insert symbols ('*', ',') as upper/lower accents. <<SB: Agree>
- Nesting subscripts. <<SB: Agree>>
- Some way to present results in nice, clean way. Maybe something working like MATLAB's fprintf? Image. <<SB: Agree Double-Double Plus Plus>>
- Ability to define default type of box (math/text) created when user starts writing. Sometimes there's more text than equations. <<SB: Agree. See Richard's comment, we need to revert to Mathcad 15 style input>>
- Ability to zoom in/zoom out using alt + mouse wheel or ctrl + mouse wheel. <<SB: Agree>>
Nice list; see inline comments. As Richard points out, many of them are *very long*-standing requests (at least a decade old) and some of them are omissions from Mathcad 15, but it's good to see them reiterated by a new voice.
Stuart
List of *some* previous feature requests (that date back over a decade in some instances) ...
Re: Best practice: list of variables in mathcad v.11 and above
StuartBruff wrote:
No, you are not alone in wanting more support from Mathcad. Here's (one of many) posts that mention it (symbol concordance). http://communities.ptc.com/message/159782#159782. Unfortunately, the "collab.mathsoft.com" references are no longer reachable.
There were many, much older requests, dating back to at least M11 (ie, over a decade), most of them lost in the transition from the Mathsoft Collaboratory to PTC's Community.
I have to confess to being truly disappointed that neither Mathsoft nor PTC have really made any effort to improve and extend the Mathcad basic method of operation. There is so much they could have done to improve the capability of the product and its usability, yet little has effectively changed since Mathcad 11 (and, indeed, has taken several steps backwards with Prime).
Stuart
Copied from the above referenced thread:
http://collab.mathsoft.com/~Mathcad2000/read?112720,63 mentions, I believe that Mathcad should be viewed from several points of view to see what capabilities it should have.
The Whiteboard
The first viewpoint I take is that which led to the invention of Mathcad - The Whiteboard.
The concept of the whiteboard has moved on over the years to the extent that it is common to encounter active (or at least semi-passive) whiteboards that allow the user to capture what's written on a PC, with automatic text recognition and vectorization routines that 'tidy up' drawings. It's not too difficult to extend the concept to a more active whiteboard that does this live (eg, a fast touch-sensitive screen + supporting tools, eg automatic or on-demand visual 'tidying up' with automatic interpretation). It should have a drag and drop capability, so that, say, a variable could be selected and dragged into a place holder, or a subset of a matrix could be selected and copy-dragged elsewhere. Now imagine yourself either thinking things through by yourself or giving a lecture/presentation and think what features you'd find useful in such an active whiteboard - that's what Mathcad should have, eg, quick text formatting without quotes, or the ability to choose either freehand drawing or the ability to pick from a palette of simple drawing tools.
A major implication of this is that notation should be flexible to allow the maths Prof their Jν(x ) whilst letting the 'programmer' enter J(n,x). Instantly, this means both left and right superscripts/subscripts and the ability to format them independently of the main name.
Detailed Analysis/Implementation
It's fairly easy to imagine that the Whiteboard is used to sketch out the design for some particular problem and get buy-in to progress to a more detailed analysis (eg, Whiteboard: "I've got this great idea for a new nozzle design! Here's the outline ..." followed by Detailed Analysis: "OK, looks promising. Flesh it out and generate some test data we can drop into the lab people."). This would be an extension of the Whiteboard with improved data presentation and more automated control over plots and animations, and access to their data/images.
Documentation/Publication/Presentation
The next stage, having done the donkey work and got some results back from the lab/production people, is to formally document it and/or prepare it for publication or presentation. This requires an additional set of tools, such enhanced text formatting, equation numbering, and style-guides (plus checkers) and layout enhancements, such as 2-column presentation. As you've mentioned elsewhere, the ability to output in pdf or LaTex format would be essential (built-in not bolted-on, so that, for example, default output file names would be automatically related to the worksheet name.
I think all of the above are in keeping with PTC's (and Mathsoft as was) aim of having Mathcad at the heart of a one-stop calculation management system. Whilst I'm aware of the dangers of overkill (the UML saga referred to), there are a lot of capable and competent competitors out there and not doing enough is a much a killer as capability bloat.
Here's a summary of some feature requests, in no particular order
Stuart
1. add plot component programming interface:
… a. allow component to return complete parameter set (eg, as one nested array or by specific functions)
… b. allow user to programmatically set parameters (eg, pass back complete parameter set or by specific function)
… c. add capability to...
http://collab.mathsoft.com/read?94485,12 (worksheet shows potential for enhancement using (undocumented) 3D plot component to set titles, define axes, etc)
3. http://collab.mathsoft.com/read?58646,12 (original request)
4. add multi-dimensional array capability, should:
… a. support hyper-rectangular arrays
… b. provide ragged nested array index support
… c. have an empty array
… d. support tensor operations
… e. should support tensor notation (eg superscript)
… f. accept string input and provide string output of array values (for example of this see http://collab.mathsoft.com/read?74389,11 )
5. add set support (eg, array to set, set inclusion, set join)
6. provide mnemonic names for functions defined as operators (eg, '+' available as 'add')
7. enhance definition and display capability:
… a. provide keyboard shortcuts for prefix, infix, postfix and tree operators
… b. allow user to replace standard operator symbols with other function names (eg, 2+3 could become 2 div 3)
… c. allow tree display of nested vectors
… d. convert expression between Mathcad and 'standard' programming string (eg, MuPad, Excel or C)
8. enhance symbolic capability:
… a. allow deferred evaluation (useful for passing expressions to functions rather than trying to evaluate them first)
… b. allow user to create names programmatically (eg, string to variable, so could write a:=3, b:=4, c:=a+var("b"), where var provides the conversion)
9. allow direct access to region properties (including values)
10. see thread starting at message http://collab.mathsoft.com/read?66893,77
11. provide multiple views onto a worksheet (eg, similar to MS Excel's multiple windows or split view (top/bottom)
12. provide automatic region numbering schemes (eg, global paragraph numbering, equation/figure/table numbering)
13. allow programmatic access to a component's script (both read and write)
14. allow direct means of viewing a component's script (ie, without opening it)
15. provide symbol concordance
16. (to support the latter 2 features, provide a view onto the worksheet that lists all 'hidden' attributes (such as ORIGIN, TOL or default result settings)
17. improve page breaks to avoid splitting text over a page break (particularly wrt programs)
18. provide rectangular area / sub-worksheet capability
19. ability to extend Mathcad by adding worksheets / e-books as libraries in a similar way to extension packs, rather than having to 'include' them.
20. provide programmatical control of animation (in addition to the clunky and ancient dialog method)
21. add subvector function to complement submatrix (I use my subvector implementation fairly frequently)
22. add 'sequences' as a proper data type that the user can define outside of a for-loop definition and can use in place of a range (as a range is a sub-type of a sequence).
23. formalize and make available the Mathsoft Programming Language.
Re: Concatenating strings and scalars / arrays
StuartBruff wrote:
Mike Armstrong wrote:
I hope the optional / arbitrary argument list finds its way off a wish list and onto Prime's development list.
Stuart
Be sure to keep bring the point up then
I'm not a maintenance user so I have no effective input into the development process.
I have regularly pushed my ideas and PTC have listened in the past and believe they are again with some features being implemented in Prime 3.0.
That's good to hear. However, I have repeatedly brought up several ideas over the years and, AFAICT, none of them have had sufficient merit to be included in any development scheme. I'm cool with that, but occasionally a little surprised as I know one or two of the Major League Mathcadders are also in favour of them and have supported them or raised similar ideas ... and they seem to have some backing in rival products. The business of string handling goes back many years ... here's an example from 2007 in which the concept of concatenating strings and numbers is raised:
StuartBruff wrote:
On 9/25/2007 12:26:58 AM, jmG wrote:
== No, not in a table header from the kernel display, in a "dead table header" for publishing.
Here's an example, from real life, of how improved text handling could be of benefit.
I was going through my 6-year old daughter's math homework with her and saw that she was looking at sequences (part of learning her times table). The homework sheet asked the child to make up their own sequence, and, me being me, I introduced her to the Fibonacci sequence.
Naturally, I made her do it the old-fashioned pencil, paper, brain way first, but once she'd got the idea I put together a worksheet to allow her to check her numbers. I've attached the worksheet - as well as a simple sequence generator, I also include a couple examples of tables showing which numbers to add.
One thing that is plain is that the string quote marks are both superfluos and distracting, particularly in the second table.
The second thing, which has always irritated me, is that there is no way to construct a string that has line breaks.
Item three (which we've already gone over in the is thread) is the lack of string formatting. This would have made it easier to highlight numbers.
Following on from three, or part of it, is the inability to change font. It would be more than useful to be able to include greek characters or other mathematical symbols in a string.
Fourthly, Mathcad should be smart enough (as several programming languages are) to auto convert numbers to strings inside a concat function. This would make it simpler to write and easier to read. In fact, it would be worth considering just how smart Mathcad could be in this respect and whether it would make sense to treat 'addition' of strings and numbers to as an implicit string concatenation operation.I know there was at least one subthread covering string formatting but I can't find it. However, it does get a mention in this one:
StuartBruff wrote:
On 6/7/2008 12:36:16 PM, jmG wrote:
>> On 6/7/2008 10:17:30 AM, stuartafbruff wrote:
>> In what ways is it simpler to address a pre-formatted array?
== It results from the simplest and logical way of doing, it is a question of purely addressing something somewhere. No Mathcad knowledge is needed, simpler.
Jean,
First of all, I think you'd better sit down, pour yourself a stiff drink and borrow some oxygen ...
I was thinking about this driving to ballet (my daughter, not me - even Quentin Tarantino would draw the line at portraying me doing ballet!) and I've changed my mind. Given that you've pre-calculated the data values, what you suggest is a perfectly reasonable way of doing things in a Mathcad environment.(I still think you need to have the transpose, as the normal way of handling lists in Mathcad is as vectors.)
I have three basic modes of thinking about how to use Mathcad. One is as a whiteboard, the other is a working tool at discipline level and the third is as a presentation tool (eg, papers for publication).
I started off with the whiteboard mode and a perhaps inexperienced but intelligent, user (eg, the Prof) drafting something up before a few people. So, they'd create the equations then, if it suited their purpose, draw up a table and (this is where I like to visualize an active whiteboard) drag the results into the table in the right spot.
The major difference between Mathcad and most (if not all) of its class of products is that the 'output' often serves as the 'input'. In this case, the displayed array is a case in point.
Stuart
It also gives a good example of why Steen and I (amongst others) would like to have improved string handling and the ability to hide the left hand argument in an evaluation.
The quotes get in the way of the display and it would be nice to be able to format the text
(back to the Prof at the whiteboard: "What do you mean, I've got to put the text in quotes? Why? Surely the software can work out what's what? Oh, and I can't underline the text either? Sheesh!" ... a few minutes later "Sorry, are you trying to tell me I can't write a Bessel function as Jν(x)? Why on earth not?")
I know you can hide symbolic arguments in M14, but invoking the symbolic processor slows things down and may give different results to the numeric processor. Furthermore, AFAICT, symbolic hiding doesn't compress the region leftwards, and this should be a key feature of the hide capability (eg, in text you would write "The number of frogs was |nfrogs=|.", where |..| indicates an embedded math region. What I would expect when I 'hid' the left hand side is that it would collapse the expression to give, say, "The number of frogs was 9." rather than "The number of frogs was |nfrogs=9|." (without the quotes of course!))Stuart
Thank both of you for your answers.
Objects in Draft View are not exactly nonprintable. <<SB: I don't believe draft mode should exist; it's archaic and does not conform to a screen-based document paradigm. All of a worksheet should be printable, with the option to just print the left hand pages. In addition, Text Block should stretch across a single page and across any page not just left hand pages>>
Oh, but they do their job (additional images, plots and resources you don't necessarily want to include in your paper).
And I totally forgot! Collapsible, password-protected areas! I know they work in M15.
Grid lines for creating clean documentation. <<SB: not sure what you mean. Prime has grid lines, but the underlying grid system has a major flaw - regions are aligned to the grid, which means changing from Standard to Fine shifts the regions. I have no idea why they chose this route, as regions should be linked to page position.
Maybe rulers is a better way to put it. Something like sticky smart guides in Illustrator. The problem with Mathcad's grid (aside from the one you've mentioned) is, for me anyway, that you can easilly forget which square do you align your headlines, text blocks etc. to. There should be some keyboard toggle for showing and hiding these vertical lines.
"Print document" screen: ability to disable the grid temporarily for printing/exporting. <<SB: not sure what you mean here. You can turn off display of the Grid in Prime 3.1>>
This is, more or less, what I meant. No need to manually switching it every time you want to preview a PDF.
"Tab" button indenting held object (optionally). <<SB: And unindenting?>>
With paragraph styles there would be no need for such sloppy methods, forget about it.
Variable's name auto-suggestion feature when writing equations. <<SB: Interesting .. current worksheet dependent for variables taking priority over built-in?>>
What I meant. You don't want to type a variable's name (with subscripts that are often hardly visible) into math block and see an error because of some typo. 😉
Karol Majewski wrote:
Thank both of you for your answers.
Objects in Draft View are not exactly nonprintable. <<SB: I don't believe draft mode should exist; it's archaic and does not conform to a screen-based document paradigm. All of a worksheet should be printable, with the option to just print the left hand pages. In addition, Text Block should stretch across a single page and across any page not just left hand pages>>
Oh, but they do their job (additional images, plots and resources you don't necessarily want to include in your paper).
I've no problem with that, I use Mathcad like that pretty much all the time; that's why I'd like to retain the M15- option of printing only the left hand pages (actually, I'd like the ability to select individual pages from the right hand pages, select multiple page 'columns' or 'rows' and a better way of numbering them (eg, Page 1, Page 1A, Page 1B (going from right to left) rather than the current M15- sequential numbering that makes it hard to join pieces together, but then I'm just greedy).
And I totally forgot! Collapsible, password-protected areas! I know they work in M15.
Indeed. In keeping with my desire to have rectangular areas that act like embedded worksheets, I'd like to have the option to have Areas designated as "Document Wide" (as they are in M15) or "Page Wide" (so that I can effectively have columns in Mathcad and collapse Areas on a single page (or across as many pages as I care to stretch the Area).
Maybe rulers is a better way to put it. Something like sticky smart guides in Illustrator. The problem with Mathcad's grid (aside from the one you've mentioned) is, for me anyway, that you can easilly forget which square do you align your headlines, text blocks etc. to. There should be some keyboard toggle for showing and hiding these vertical lines.
Ah, Like the Rulers that Mathcad 15 currently has (the green vertical lines associated with a tab stop, toggled by right-click context menu). Of course, I'd like to see them available on each of the right hand pages, plus different "regions" where different Rulers apply (and even different paper orientations)).
Variable's name auto-suggestion feature when writing equations. <<SB: Interesting .. current worksheet dependent for variables taking priority over built-in?>>What I meant. You don't want to type a variable's name (with subscripts that are often hardly visible) into math block and see an error because of some typo. ;-)
OK.
Stuart