LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Non-activeX 3d surface graph color table

Solved!
Go to solution

Hi Folks -

 

I am using LabVIEW 2010 64-bit so I cannot use the ActiveX surface graph.  One initial question I have has to do with creating custom color tables.  I am starting with the example provided in LabVIEW.  I am not sure why the developers did not stay with the color table scheme consistent with either LabVIEW intensity graphs or ActiveX surface graph (or maybe they have and I am missing it).  It appears that the 'Surface Color Ramp' property node wants a color table with 7 values (as opposed to a 255 color array).  However, I am unsuccessful in applying a simple 'custom' gray scale table in the example.  Any help/advice is appreciated.  Thanks, Don

 

3D Surface Plot-example.png

Message 1 of 11
(5,910 Views)
Solution
Accepted by topic author DonRoth

Hi DonRoth,

 

To modify the color by VI server, you need to set the Active Plot to the plot you want to change (same ID as the helper VI beside the control terminal). The ramp array and ramp index are in the same length. The ramp index is the ending pixel of the corresponding color in the ramp array. The index should be in ascending order and its max value ends at 255.

 

color ramp.png

Message 2 of 11
(5,877 Views)

As a followup, I AM able to use the intensity graph color table composed of 255 elements directly according to the following strategy:

 

3D Surface Plot-color-table.png

Message 3 of 11
(5,861 Views)

If I have 100 plots on one surface graph, is there a way to globally apply the same color table to all of the graphs instead of running through a for loop (which takes quite a bit of time)?

 

3D Surface Plot-color-table applied to multiple surfaces.png

 

0 Kudos
Message 4 of 11
(5,850 Views)

The control does not support to globally apply the same color table to all of its plots. You need a loop.

0 Kudos
Message 5 of 11
(5,845 Views)

Curious...

 

Does "Defer FP Updates" help at all?

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 6 of 11
(5,836 Views)

I don't see that option under property or invoke nodes for  the Non-activeX 3d surface graph.  Where is it??  Then I might be able to try it.

 

Don

0 Kudos
Message 7 of 11
(5,825 Views)

It is a property of the front panel.

 

This VI >>> FP >>> DeferFPupdat

 

Set rue before (to defer updates) and then false after the updates.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 8 of 11
(5,823 Views)

Doesn't seem to help much.

 

With 10 slices, plotting the multiple surfaces seems to work well and with relatively good performance.  With 100 surfaces, it is a different story and the VI shows an empty surface graph with a lot of background processing churning (I might leave it for awhile and see what happens).

0 Kudos
Message 9 of 11
(5,819 Views)

Want to follow up on this again.  I believe I am now correctly implementing the 'Defer Front Panel Updates' VI property and do see a nice performance gain and the ability to render ~ 90 slices (about 100 x 100 pixel resolution of the slices pretty well).  I had forgotten to reset this property to false once outside of the for loop.  Also, by adding the Plane Spacing factor discusssed here,

the 3d image looks pretty good.

 

multiple-surfaces-FP (87 slices).PNG

 

 

Message 10 of 11
(5,782 Views)