cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - You can subscribe to a forum, label or individual post and receive email notifications when someone posts a new topic or reply. Learn more! X

Mathcad 15 M030 can't draw multiple 3D plot?

zhulaojianke
2-Guest

Mathcad 15 M030 can't draw multiple 3D plot?

I want to draw 3 expressions in one 3D plot, and the ranges of x,y is 1~5.

When I draw it in MC15M030, only one plot setting item appeared!

And when I use the same function in MC2001i, it work well!

See the picture below:

2014-10-30_155805.png

It seems a bug in Mathcad 15 M030, is it?

26 REPLIES 26

By me no problem - Mathcad 15 and Windows 8.1 on Surface Pro 3:

test0-1.png

Valery Ochkov wrote:

By me no problem - Mathcad 15 and Windows 8.1 on Surface Pro 3:

Please try with the test0 sheet zhu has provided,

Looks like a bug to me because the error message (division by zero) is not appropriate. It may be a corrupt sheet.

MikeArmstrong
5-Regular Member
(To:Werner_E)

Werner Exinger wrote:

Looks like a bug to me because the error message (division by zero) is not appropriate. It may be a corrupt sheet.

It works in Prime also.

Clipboard01.jpg

StuartBruff
23-Emerald II
(To:Werner_E)

Werner Exinger wrote:

Valery Ochkov wrote:

By me no problem - Mathcad 15 and Windows 8.1 on Surface Pro 3:

Please try with the test0 sheet zhu has provided,

Looks like a bug to me because the error message (division by zero) is not appropriate. It may be a corrupt sheet.

Hmm. Not sure where the "bug", if there is one, lies.

What appears to be happening is that the default Quickplot values of -5..+5 and 20 steps allow for x = 0, which gives a divide by zero error. Plotting the first function by itself gives the divide by zero error but does create a plot. Setting the Quickplot values to +1..+5 (as in test1.mcd) gets rid of the pole and allows display of the surface.

The problem now occurs when typing in the second function. The plot component raises the divide by zero error but does *not* create a second plot tab, meaning that the Quickplot data can't be changed.

A solution is to create a dummy function (eg, f(x,y):=1), plot that three times and change the Quickplot limits, then plot f1, f2, f3 in place of the three occurrences of f.

Another solution is to put an "on error" trap into each function to catch the divide by zeros and then adjust the Quickplot limits.

Stuart

Oh, forgot to add. I rewrote temp1 into a brand new worksheet in M14 and created the plots from scratch and got the same failure as Zhu, so "corrupted worksheet" doesn't seem to be the case. I also copied the test1 plot across to test0 and that displayed fine - looking at its limits showed why it worked.

Mike Createmesh version avoids the pole, so I wouldn't expect it to have a problem.

Stuart

MikeArmstrong
5-Regular Member
(To:StuartBruff)

StuartBruff wrote:

Oh, forgot to add. I rewrote temp1 into a brand new worksheet in M14 and created the plots from scratch and got the same failure as Zhu, so "corrupted worksheet" doesn't seem to be the case. I also copied the test1 plot across to test0 and that displayed fine - looking at its limits showed why it worked.

Mike Createmesh version avoids the pole, so I wouldn't expect it to have a problem.

Stuart

Oops

However, I copied the functions into a new M15 sheet and the plot worked.

Can I just clarify, Mike, that you:

  • copy the functions across to a blank worksheet
  • create a new Surface Plot
  • enter "f1,f2,f3" in the Plot placeholder

and then what? Does the Plot show the 3 surfaces? Show an error that you are then able to correct by changing the Quickplot limits? Or ...?

Stuart

MikeArmstrong
5-Regular Member
(To:StuartBruff)

StuartBruff wrote:

Can I just clarify, Mike, that you:

  • copy the functions across to a blank worksheet
  • create a new Surface Plot
  • enter "f1,f2,f3" in the Plot placeholder

and then what? Does the Plot show the 3 surfaces? Show an error that you are then able to correct by changing the Quickplot limits? Or ...?

Stuart

Stuart,

I followed these steps, but now getting very strange results.

  • copied the formulea into a blank worksheet
  • copied the plot from his M15 (not working version) and it worked.
  • then copied from the MC2001i version and it worked again

However, when I try to create a new surface plot, it throws the divide by zero error.

Clipboard01.jpg

I copy/paste from the problem MC15 sheet to a new MC15 sheet, but it can not works too.

MikeArmstrong
5-Regular Member
(To:zhulaojianke)

zhu laojianke wrote:

I copy/paste from the problem MC15 sheet to a new MC15 sheet, but it can not works too.

Did you try copying from the worksheet I posted below these comments?

I have copy from the original worksheet I have upload here.

And I know it will work well if I copy from your worksheet, because in your sheet, the plot already has 3 setting items.

I have change the f2 and f3 that have no divide zero alarm, and I got a interesting result again!

See the picture below:

2014-10-30_213301.jpg

When I type the f1 and change the range of x,y, and then type ,f2 and ,f3, it works well.

And when I type f1,f2,f3 together, and click "Apply", it doesn't work.

Finally, I type f1,f2,f3 together and clike "OK" or hit the "enter", it works well again!

What a crazy software!

Another try, I have change the order of f1 f2 f3, and use the same way to plot the 3 function above:

(1) type f1,f2,f3 together

(2) clike "OK" or hit "enter"

Only when the f1 is on the first position that the plot could work, and when the f1 is on the second or third position the plot couldn't work.

See picture below:

2014-10-30_214428.jpg

Mathcad 14 and Mathcad 15 don't behave as one might like when a plot fails ...

Stuart

One of the reasons I have *Long* requested programmable Plot components is that this kind of problem could be avoided by being able to pass the x and y ranges directly to the plot component rather than having to manually adjust them through the plot dialog.

Thank you for your answer

To adjust the range of x,y before plot them or use a temporary function to build a plot properties is already work, thanks, even it need more operate steps in MC14 or MC15 than in MC2001 or MC11.

zhu laojianke wrote:

I copy/paste from the problem MC15 sheet to a new MC15 sheet, but it can not works too.

If you load the test1.mcd worksheet into M15 does it work? (test1 works in M14)

If so, can you copy/paste from the old worksheet to a new worksheet?

Stuart

Ye

Mike Armstrong wrote:

StuartBruff wrote:

Can I just clarify, Mike, that you:

  • copy the functions across to a blank worksheet
  • create a new Surface Plot
  • enter "f1,f2,f3" in the Plot placeholder

and then what? Does the Plot show the 3 surfaces? Show an error that you are then able to correct by changing the Quickplot limits? Or ...?

Stuart

Stuart,

I followed these steps, but now getting very strange results.

  • copied the formulea into a blank worksheet
  • copied the plot from his M15 (not working version) and it worked.
  • then copied from the MC2001i version and it worked again

However, when I try to create a new surface plot, it throws the divide by zero error.

Yep, that's what I see and what Zhu is seeing. Copying isn't a problem because the Quickplot limits are already set in the original Plot. It's creating a new Plot that's the problem ...

Stuart

MikeArmstrong
5-Regular Member
(To:StuartBruff)

StuartBruff wrote:

Yep, that's what I see and what Zhu is seeing. Copying isn't a problem because the Quickplot limits are already set in the original Plot. It's creating a new Plot that's the problem ...

Stuart

I still think he is having trouble creating the plot at all in M15.

MikeArmstrong
5-Regular Member
(To:zhulaojianke)

Werner seems to be correct. Works in Mathcad 15.

How do you get that? Just copy the plot from the .mcd to the .xmcd? or other?

And it seems I only could copy/paste the elements from .mcd to .xmcd, but couldn't from .xmcd to .mcd.

MikeArmstrong
5-Regular Member
(To:zhulaojianke)

zhu laojianke wrote:

How do you get that? Just copy the plot from the .mcd to the .xmcd? or other?

Yes correct.

OK, I've played around with the phenomenon and I guess I found out what happens. basically its a bug.

The problem is not that MC15 can't show the plots (as many had already found out as it display the older file) but the we cannot create it using MC15. The reason is that MC15 will not allow to set the quickplot ranges for plot 2 and plot 3 when an error occurs and as the default range is from -5 to 5 we run into a division by zero error.

There is a simple workaround: Create a dummy function f(x,y):=1 and plot the "three" functions f,f,f.

Set the quickplot range for each of the three plots so that the division by zero s avoided (in your case 1 to 5) and then change f,f,f to f1,f2,f3.

Silly and sure am annying bug.

Another way out is using createmesh.

MikeArmstrong
5-Regular Member
(To:Werner_E)

As Prime did when I converted the file?

Mike Armstrong wrote:

As Prime did when I converted the file?

Yes. In Prime we can only set the "quickplot" ranges by awkwardly changing the values on the axis. I still scratch my head about the fact that there must be at least one person who thinks that that kind of user interface is a good idea - its so awful!

So in Prime in contrary to Mathcad you are not allowed to set different quickplot ranges for different plots and so Createmesh has to be used to simulate this.

So Prime can't suffer from that bug because it does not even offer the feature which fails in some cases in Mathcad.

MikeArmstrong
5-Regular Member
(To:Werner_E)

Werner Exinger wrote:

Mike Armstrong wrote:

As Prime did when I converted the file?

Yes. In Prime we can only set the "quickplot" ranges by awkwardly changing the values on the axis. I still scratch my head about the fact that there must be at least one person who thinks that that kind of user interface is a good idea - its so awful!

So in Prime in contrary to Mathcad you are not allowed to set different quickplot ranges for different plots and so Createmesh has to be used to simulate this.

So Prime can't suffer from that bug because it does not even offer the feature which fails in some cases in Mathcad.

I am actually a little suprised that the convertor worked for this problem.

Mike Armstrong wrote:

I am actually a little suprised that the convertor worked for this problem.

Now PTC has us where they want us to be - we are surprised and happy when eventually a single time something works correctly.

MikeArmstrong
5-Regular Member
(To:Werner_E)

Werner Exinger wrote:

Mike Armstrong wrote:

I am actually a little suprised that the convertor worked for this problem.

Now PTC has us where they want us to be - we are surprised and happy when eventually a single time something works correctly.

Hahahahaha

Top Tags