CaRScript renvoyant la liste de tous les objets construits ?

Lieu d'échange sur les pratiques et les réalisations de scripts
Post Reply
User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

CaRScript renvoyant la liste de tous les objets construits ?

Post by Dibs » Sat Jan 25, 2014 9:28 pm

Ce CaRScript existe-t-il ?
Et si non, peut on l'envisager ?

User avatar
alain974
Posts: 150
Joined: Sat Jun 13, 2009 9:08 am
Location: Réunion

Post by alain974 » Wed Jan 29, 2014 1:06 pm

Les possibilités d'introspection de CaRMetal par CaRScript sont puissantes; voir par exemple cette entrée du forum: http://db-maths.nuxit.net/CaRMetal/foru ... ight=#1680

L'idée est que toute classe Java compilée est accessible à JavaScript sous le nom (chemin compris) qu'elle porte dans le source de CaRMetal. getC() (instruction en JavaScript) renvoie la construction, et il ne reste plus qu'à chercher parmi ses méthodes s'il y en a une renvoyant la liste des objets de ladite construction.

Pour avoir la liste des méthodes, essayer le CaRScript suivant:

Code: Select all

m=new Packages.java.lang.Class.forName("rene.zirkel.construction.Construction");
methodes=m.getMethods();
for (i in methodes){
    Println(methodes[i]);
}
(il provient du pdf de référence sur les CaRScripts).

Par exemple, elements() donne un itérable permettant de parcourir les éléments de la figure (on le récupère avec getSortedElements() je crois), et le script ci-dessous permet de lister dans l'ordre inverse de leurs numéros, les objets de la figure:

Code: Select all

figure=getC();
taille=figure.lastByNumber().getN();
for(var indice=0; indice<=taille; indice++){
	Println(figure.lastButN(indice));
}
Explorer aussi determineChildren qui devrait permettre de construire un arbre des dépendances entre objets de la figure...

User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

Post by Dibs » Wed Jan 29, 2014 3:10 pm

Merci, c'est super intéressant et cela dépasse la portée de ma question.

En fait, voici l'idée que j'avais en tête :
tenter un traitement par lot sur une zone de sélection en utilisant un script action.
C'est juste une idée...

User avatar
alain974
Posts: 150
Joined: Sat Jun 13, 2009 9:08 am
Location: Réunion

Post by alain974 » Thu Jan 30, 2014 6:46 pm

Dibs wrote:tenter un traitement par lot sur une zone de sélection en utilisant un script action.
Alors il faut peut-être passer par "getZC()" qui renvoie le canevas (et non la construction); quelque part dans les dizaines de méthodes du canevas, il y a un rectangle de sélection (utilisé pour la barre des propriétés et l'export des images) qui devrait pouvoir être utilisé à cet usage

martinAcosta
Posts: 344
Joined: Mon Apr 28, 2014 8:06 pm

Re: CaRScript renvoyant la liste de tous les objets construi

Post by martinAcosta » Wed Jul 30, 2014 6:41 pm

Bonjour,

Je reprend ce fil qui est déjà ancien, car je m'interesse à la possibilité de changer la valeur d'un control depuis un script. Je cherche donc une procédure pour récuperer dans le script le nom d'un control qui existe déjà dans la figure. Malheureusement, la procédure décrite par Alain n'a pas donné des résultats>: apparemment un control n'est pas un objet de la construction. Alors comment le récupérer dans un script?

Merci

Post Reply