Page 1 of 1

Expressions dans blockly

Posted: Sat Nov 12, 2016 12:09 am
by martinAcosta
Bonjour

J'ai trouvé un moyen de contourner les parametres des points qui ne sont pas disponibles comme des blocks: j'utilise le block expression, et j'ècris la commande STL("P1",....) en modifiant les paramètres voulus.

toutefois, je ne peux pas conditionner cette expression, car je ne peux pas attacher ce block au block ^"si... faire".

Existe-t-il un moyen d'écrire une expression non numérique et l'attacher au block "si... alors"?

Re: Expressions dans blockly

Posted: Sat Nov 12, 2016 11:31 am
by monique31
J'avoue ne pas bien comprendre la question : pourrais-tu mettre le fichier sur lequel tu travailles en pièce jointe ?

Re: Expressions dans blockly

Posted: Thu Jan 26, 2017 9:37 pm
by martinAcosta
Je vais essayer d'expliquer.

Dans un script, la commande STL sert à changer les propriétés d'un objet. Si l'on regarde les fichiers texte produits par DGPad, après la liste des objets créés, il y a une liste avec leur propriétés, chaque ligne commencant avec STL.

Mon idée est d'utiliser cette commande dans une expression de blockly, avec le bloc expression.

Par exemple, dans une figure DGPad j'ai un point P1, deux expressions E1 et E2, et un DGscript.
Le script est comme suit:
1. Fixer l'expression E1 à Valeur de l'expression E1+1 //augmente de 1 la valeur de E1
2.Si Reste de Valeur de l'expression E1/2=0, alors Fixer l'expression E2 à Expression STL("P1", "h:0"); "prog"; //si E1 est pair, cache P1.
3. Si non, alors Fixer l'expression E2 à Expression STL("P1", "h:1"); "prog"; // si E1 est impaire, montre P1.

Chaque fois que je clique le DGScript, le point P1 se cache ou se montre.

J'ai essayé de cette manière le changement des propriétés d'un point, et cela marche très bien, à l'exeption de trois propriétés:
1. je peux activer la trace du point, mais pas la desactiver.

2. je peux rendre le point flotant, mais pas defaire cette action.

(je pensais que ces deux commandes fonctionnaient comme booleans: vrai ou faux, mais apparemment non)

3. le paramètre mg, qui controle le magnétisme ne fonctionne pas. Je pense que cela résulte du fait qu'on devrait écrire par exemple "mg:[C1,200]", mais C1 n'est pas réconnu comme variable mais comme texte. Comme c'est écrit dedans les guillemets, je ne sais pas comment communiquer à DGPad qu'en fait c'est un objet de la construction, non pas une chaine de caractères.

Quelqu'un aurait il une idée de comment surmonter ces difficultés? On aurait un moyen simple de programmer les propriétés des objets...

Merci