Le 07/06/2022 à 11:39, CRETE Denis a écrit :

Hello,

I have several graphic windows and in some of them, there are several “Axes” (and several curves for each “Axes”).

I can’t find in “Scilab Help” if the “current axes” is always in the hierarchy of the “current entity”, and similarly if the “current figure” is always in the hierarchy of the “current axes”.

Good question. Let's test it :

1. sca(ax) sets the current figure to the one homing the ax axes:
   --> scf(0); plot(1:10); e0 = gce(); ax0 = gca();
   --> scf(1); plot(1:10); e1 = gce(); ax1 = gca();
   --> sca(ax0);
   --> gcf().figure_id
     ans  =
       0.
   --> sca(ax1);
   --> gcf().figure_id
     ans  =
       1.

2. set("current_entity", h) does NOT set the current figure to the one
   homing the targeted entity:
   --> scf(0); plot(1:10); e0 = gce(); ax0 = gca();
   --> scf(1); plot(1:10); e1 = gce(); ax1 = gca();
   --> set("current_entity", e0);
   --> gcf().figure_id
     ans  =
       1.
   --> gca().parent.figure_id
     ans  =
       1.

So now we can answer to your questions:

I can’t find in “Scilab Help” if the “current axes” is always in the hierarchy of the “current entity”,
Almost never.

and similarly if the “current figure” is always in the hierarchy of the “current axes”.
Yes it is.


If this was true, I suggest to mention it in the “Graphics Entities” section.

Right, the sca() and set() pages could be clarified about this.

If not, is there a simple way to obtain the handle of the figure where the “current entity” is ?
I tried the following, which seems to work :

G_f = gce().parent;

while get(G_f,”type”)~=”Figure”,

          G_f =  G_f.parent;

end;

Yes, in short:

G_f = gce();

while G_f.type ~= ”Figure”,   G_f =  G_f.parent; end


that will work even when the initial G_f is already a figure.

Samuel
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to