The Origin Forum
File Exchange
Try Origin for Free
The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
 All Forums
 Origin Forum for Programming
 Forum for Origin C
 Problem with 3D Colormap Surface.

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Anti-Spam Code:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkUpload FileInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
scobypl Posted - 06/28/2016 : 5:17:50 PM
Hi,
I try to create graph 3D Colormap Surface for furnance with thermal sensors. I create worksheet with data where in first row I have Y data(width), in first column X data(length) and another cells contain value of temperature. I can create this manualy and set X and Y data range, but I can't do in Origin C.
I try do it like this:

DataRange dr;
dr.Add("X", Wtemp1, 1, 0, 3, 0); // First row except the first cell
dr.Add("Y", Wtemp1, 0, 1, 0, 3); // First column except the first cell
dr.Add("Z", Wtemp1, 1, 1, 3, 3);

GraphPage gp;
gp.Create("glcmap");
GraphLayer gl = gp.Layers(0);
gl.AddPlot(dr, IDM_PLOT_3D_SURFACE_NEW );

and also I try to put this DataRange to MatrixObject and use IDM_PLOT_3D_MESH for matrix.

Maybe someone can help me with my problem to create this graph or show simillar example to solve my problem.

Paweł W.



PW
4   L A T E S T    R E P L I E S    (Newest First)
scobypl Posted - 07/12/2016 : 3:59:48 PM
Hi,
sorry for no answer but I don't have time in last week.
Thanks you again for great help.

I have one more problem.
I build somethink like this:



And the first colum is X column and first row is the Y column. Another data is a Z values. Among the Z values I have empty cell where I don't have sensores to read temperature.



I need to plot 3D colormap surface from this data. But the graph what I was create, contain empty space.

I think that the solution could be interpolation unknown data on base the other data.

How I can do this ?
Thank you for your help.

PW
Chris D Posted - 06/30/2016 : 12:12:15 PM
Hi,

I think you mean you want a surface plot plus a flat projection of the same data. If so, then try this.

You can modify the example I provided by calling additional LabTalk in your Origin C code as follows:


	GraphPage gp;
	gp.Create("glcmap");
	string strRange;
	if (Wtemp1.GetRangeString(strRange))
	{
		string strCmd;
		strCmd.Format("plotvm irng:=%s ogl:=! format:=0 rowpos:=2 colpos:=1 type:=%d", strRange, IDM_PLOT_3D_SURFACE_NEW);
		LT_execute(strCmd);

		strCmd = "layer -ip103 %c; range rr = 2; set rr -spf 1; set rr -spz 100;";
		LT_execute(strCmd);
	}


NOTE: The 100 after -spf is the percent position for the projection in the 3rd dimension.

Thanks,
Chris Drozdowski
Originlab Technical Support
scobypl Posted - 06/30/2016 : 08:08:23 AM
Hi,
this is exacly what I want, I try it and it's works like I need. Thanks you very much.

Now, I have one more problem, I want to set my surface as a flat(two the same surface but first must be flat and second normal), I see this options in plot setup and I also find commands to set this parameters:

spf value; Control the flatten-mode for 3D surface plot

Syntax: set name -spf value;

Specify whether to flatten the 3D surface plot. 1 = enable flatten-mode, 0 = disable flatten mode.

Minimum Origin Version Required: 9.0 SR0
-spz value; Set the Z offset by percent of the scale range for 3D surface plot


I don't now how exacly use it on my graph in my Origin C code. (I create mechanism to automatic draw many graphs)

Sorry, my problem is probably very easy but I don't know how to use it. I don't know how set the name in "set name " I tryed to write something like this set Graph1 -spf 1 and execute in command window where Graph1 is the name of my chart, but it isn't work.

PW
Chris D Posted - 06/29/2016 : 11:39:28 AM
Hi Paweł,

I gather that you mean you have what we may refer to as a "virtual matrix" where the data is as in the image below. Column A is the X data and the rest of the columns contain Z data with the 1st row of each column being the Y value.



If that is the case, then the easier way is to leverage running the plotvm X-Function via LabTalk from within Origin C as follows. Note: this assumes you are plotting all the data in the worksheet. If you need only a subset of the worksheet, let us know.


GraphPage gp;
gp.Create("glcmap");
string strRange;
if (Wtemp1.GetRangeString(strRange))
{
	string strCmd;
	strCmd.Format("plotvm irng:=%s ogl:=! format:=0 rowpos:=2 colpos:=1 type:=%d", strRange, IDM_PLOT_3D_SURFACE_NEW);
}


Docs for plotvm X-Function: http://www.originlab.com/doc/X-Function/ref/plotvm

Thanks,
Chris Drozdowski
Originlab Technical Support

The Origin Forum © 2020 Originlab Corporation Go To Top Of Page
Snitz Forums 2000