Page 1 sur 1

version 2.67 et graph3

Posté : lun. 23 nov. 2020, 10:34
par axiopost
Bonjour,
je ne parviens pas à générer de surfaces 3D avec la libraire graph3.

Par exemple en compilant le code minimaliste disponible sur http://gmaths.free.fr/asymptote/Surface ... repere.asy qui se contente de tracer la figure http://asy.marris.fr/asymptote/Surfaces ... 309_repere j'obtiens l'erreur suivante :
fig_zz01_200309_repere.asy: 7.24: cannot cast 'pairOrTriple()' to 'triple'

Si je modifie le code en ajoutant des parenthèses : currentpicture.userMin => currentpicture.userMin() et de même pour le max, le code se compile mais

Code : Tout sélectionner

asy -f pdf "fig_zz01_200309_repere.asy"
va donner :
GPL Ghostscript 9.53.3:
*** EPS files may not contain multiple pages.
*** Use of the %d filename format is required to output pages to multiple EPS files.
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1


Une idée de ce qui se passe et comment corriger le problème ?

Re: version 2.67 et graph3

Posté : lun. 23 nov. 2020, 21:49
par GM
Bonsoir,
c'est un code qui a été compilé avec la version 1.95, il y a 11 ans donc se méfier des anciens codes.
Je ne sais plus pourquoi j'avais laissé cet exemple dans cette page, puisque j'ai une page dédiée aux repères ici :
http://asy.marris.fr/asymptote/Reperes_3D/index.html
Et j'avais oublié la raison du problème mais j'ai retrouvé un de mes anciens messages de 2012 quand le problème s'est posé la première fois : https://sourceforge.net/p/asymptote/dis ... /9fdc174f/
En fait, il y avait eu à l'époque un changement de version d'Asymptote et il fallait remplacer userMin par userMin() et userMax par userMax().
Je l'avais apparemment fait sur les exemples de la page http://asy.marris.fr/asymptote/Reperes_3D/index.html
en oubliant de modifier l'exemple sur la page http://asy.marris.fr/asymptote/Surfaces_3D/index.html

Quant au deuxième problème, je réfléchis.
GM

Re: version 2.67 et graph3

Posté : lun. 23 nov. 2020, 22:00
par GM
Je suis personnellement avec la version 9.52 et je n'obtiens pas ce message.
Le pdf est produit (mais par contre j'ai une fenêtre blanche qui s'ouvre et que je dois forcer à se fermer).
Je ne peux pas investiguer davantage ce soir car un de mes cours n'est pas prêt pour demain.

Re: version 2.67 et graph3

Posté : jeu. 26 nov. 2020, 10:29
par axiopost
Bonjour,

J'ignorai que ces exemples étaient aussi anciens (pas de dates sur la page). En fait j'ai cherché un exemple minimaliste pour illustrer le problème. Sur la page http://asy.marris.fr/asymptote/Surfaces_3D/index.html il y a quatre exemples où figure ce problème (tous indiqués comme compilés sous la version 1.95). Comme indiqué dans mon message je me suis douté du parenthésage manquant. C'est plutôt le problème avec le rendu que je ne comprends pas : je ne voie pas à quel moment il y aurait génération de plusieurs pages !

En prenant le premier exemple des repères 3D

Figure asymptote 9646600df869be1afcffef42dcbc4e3d
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. import graph3;
  2.  
  3. size3(150,IgnoreAspect);
  4. size(8cm,0);
  5.  
  6. limits((0,0,0),(10,10,4));
  7. currentprojection=perspective(camera=(20,16,7),target=(5,5,2));
  8.  
  9. xaxis3(Bounds(),OutTicks(endlabel=false),p=blue);
  10. yaxis3(Bounds(),OutTicks(),p=red);
  11. zaxis3(Bounds(),OutTicks,p=.8green);


On obtient le même souci avec le rendu
GPL Ghostscript 9.53.3:
*** EPS files may not contain multiple pages.
*** Use of the %d filename format is required to output pages to multiple EPS files.
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1


Il serait utile de connaitre la version d'asymptote et de Ghostscript des utilisateurs chez qui le code compile. Visiblement, le problème survient après la version 2.14 qui a servi à générer l'image de l'exemple sur la page des repères 3D.

Re: version 2.67 et graph3

Posté : jeu. 26 nov. 2020, 17:25
par GM
Bonsoir,
axiopost a écrit :
jeu. 26 nov. 2020, 10:29
J'ignorai que ces exemples étaient aussi anciens (pas de dates sur la page).
je n'ai pas voulu mettre de date globale sur la page car, j'étais susceptible d'en ajouter ultérieurement.

Par contre pour l'exemple évoqué, il était indiqué :

Code : Tout sélectionner

Asymptote - Figure 0035: fig_zz01_200309_repere.asy
(Code compilé avec Asymptote version 1.95svn)
autrement dir : Exemple du 20/03/2009 compilé avec la version 1.95.

Et pour le problème de constante userMin remplacée par une fonction userMin(), c'est intervenu 2012.
Je l'ai pris en compte dans la sous-galerie Reperes_3D en oubliant de le modifier dans la sous-galerie Surfaces_3D.

Quant au problème soulevé
"GPL Ghostscript 9.53.3:
*** EPS files may not contain multiple pages.
..."
je re-précise que je ne l'ai pas avec Ghostscript 9.52 donc n'est-ce pas un problème avec Ghostscript 9.53 ?!?

Re: version 2.67 et graph3

Posté : dim. 29 nov. 2020, 18:08
par axiopost
Bonsoir et merci pour la réponse, cela m'évite de devoir chercher la dernière version fonctionnelle.

Pour info, il y a une nouvelle version d'Asymptote (v2.68) dont les release notes indiquent (...) Suport for Ghostscript 9.53 was implemented. (...)

J'ai donc essayé de recompiler y compris un des exemples fournis (examples/axis3.asy) qui fait appel à la librairie graph3 et maintenant il y a une nouvelle erreur d'initialisation de buffer.

J'ai signalé le problème sur le GitHub d'asymptote. Je reviens vers vous lorsque cela sera corrigé.

Affaire à suivre (...)