zauguin / luapstricks

8 stars 0 forks source link

pst-shell, error #56

Closed hvoss49 closed 3 years ago

hvoss49 commented 3 years ago

What does the error message mean? I cannot see the == operator in the code:

(./pst-shell-doc.tmp) (./pst-shell-doc.tmp) [20] (./pst-shell-doc.tmp)
(./pst-shell-doc.tmp) [21...ive/texmf-local/tex/generic/pstricks-lua/luapstrick
s.lua:569: Unknown name "=="
stack traceback:
    [C]: in function 'error'
    ...ive/texmf-local/tex/generic/pstricks-lua/luapstricks.lua:569: in upvalue 'l
ookup'
    ...ive/texmf-local/tex/generic/pstricks-lua/luapstricks.lua:3023: in upvalue '
execute_tok'
    ...ive/texmf-local/tex/generic/pstricks-lua/luapstricks.lua:3053: in upvalue '
execute_ps'

However, == should write the top most value on stack into the log file

pablgonz commented 3 years ago

I have copied and pasted the examples from the documentation in two parts, but I don't get your error.

The first part (it takes quite a while) compiles without errors and generates the expected images:

% arara: latex
% arara: dvips
% arara: ps2pdf: { options : [ -dALLOWPSTRANSPARENCY -dPDFSETTINGS=/prepress -dNOSAFER] }
% arara: clean: { extensions : [ aux, log, dvi, ps ] }
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{}
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
   smallheadings, headexclude,footexclude,oneside]{pst-doc}
\usepackage{pst-shell}
\begin{document}

\definecolor{beige}{rgb}{0.88 0.8 0.6}
\section*{Natica stellata, Orange Moon avec les paramètres de base.}

\psset[pst-solides3d]{viewpoint=1000 -50 20 rtp2xyz,lightsrc=viewpoint, Decran=25}
\begin{pspicture}(-3,-5)(4,1)
\psShell[ngrid=180 60,fillcolor=orange,incolor=yellow!10,
  base=720 -720 -270 90,linewidth=0.01pt]
\end{pspicture}

\section*{Argonauta}

\begin{pspicture}(-5,-3)(5,3)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=100 -50 30 rtp2xyz,Decran=120}%
\psShell[style=Argonauta,ngrid=1080 45,incolor=white,
         fillcolor=yellow!10,linewidth=0.01,base=0 -3600 -180 180]
\end{pspicture}

\section*{Epiteonium}

\begin{pspicture}(-5,-12)(5,0)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=5000 -180 -10 rtp2xyz,Decran=500}
\psShell[style=Epiteonium,ngrid=360 60,incolor=white,linecolor=black!30,
         base=1800 -360 -270 20,hue=0.05 0.5 0.5 1,linewidth=0.001pt]
\end{pspicture}

\section*{Lyria}

\psset{unit=1.25cm}
\begin{pspicture}(-3,-7)(3,0)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=10000 -20 10 rtp2xyz,Decran=50}
\psShell[style=Lyria,base=1800 -360 -51 9,ngrid=360 60,incolor=yellow!50,
  hue=0.05 0.5 0.5 1,linewidth=0.001pt]
\end{pspicture}

\section*{Turritella}

\begin{pspicture}(-3,-14)(3,-0.5)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -30 10 rtp2xyz,Decran=500}
\psShell[style=Turritella,base=0 -7200 -267 39,ngrid=720 30,incolor=white,
  fillcolor=yellow!20,linewidth=0.01pt]
\end{pspicture}

\section*{Tonna}

\begin{pspicture}(-5,-9)(5,1)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -10 10 rtp2xyz,Decran=75}
\psShell[style=Tonna,base=0 -7200 -90 60,ngrid=720 30,incolor=yellow!50!black!50,
  hue=0.05 0.5 0.5 1,linewidth=0.005]
\end{pspicture}

\section*{Achatina}

\begin{pspicture}(-5,-10)(5,1)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -30 10 rtp2xyz,Decran=60}
\psShell[style=Achatina,base=0 -7200 -110 65,ngrid=720 36,incolor=yellow!50!black!50,hue=0.05 0.5 0.5 1,linewidth=0.005]
\end{pspicture}

\section*{Oxystele}

\begin{pspicture}(-5,-7)(5,1)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -30 10 rtp2xyz,Decran=75}
\psShell[style=Oxystele,base=0 -7200 -70 70,ngrid=720 36,incolor=yellow!50!black!50,hue=0.05 0.5 0.5 1,linewidth=0.005]
\end{pspicture}

\section*{Conus}

\begin{pspicture}(-3,-13)(3,1)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -10 10 rtp2xyz,Decran=1000}
\psShell[style=Conus,base=0 -7200 -180 2,ngrid=720 72,incolor=yellow!50!black!50, hue=0.05 0.5 0.5 1,linewidth=0.005]
\end{pspicture}

\section*{Natalina}

\begin{pspicture}(-3,-7)(6,0)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -60 10 rtp2xyz,Decran=200}
\psShell[style=Natalina,base=0 -7200 -270 62,ngrid=720 30,incolor=yellow!40, fillcolor=yellow!20!blue!10,linewidth=0.01pt]
\end{pspicture}

\section*{Planorbis}

\begin{pspicture}[showgrid=false](-4,-3)(6,2)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1000 -60 10 rtp2xyz,Decran=80}
\psShell[style=Planorbis,base=0 -7200 -150 130,ngrid=720 30,incolor=yellow!40, fillcolor=yellow!20!blue!10,linewidth=0.01pt]
\end{pspicture}

\section*{Ammonite}

\begin{pspicture}[showgrid=false](-4,-2)(6,3)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=100 -60 20 rtp2xyz,Decran=150}
\psShell[style=Ammonite,base=0 -7200 -170 170,ngrid=720 30,incolor=yellow!40, fillcolor=yellow!20!blue!10,linewidth=0.01pt]
\end{pspicture}

\clearpage
\section*{Helcion}

\begin{pspicture}[showgrid=false](-1,-4)(10,4)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=4000 -90 20 rtp2xyz,Decran=50}
\psShell[style=Helcion,base=0 -7200 -180 180,ngrid=720 30,incolor=yellow!40, fillcolor=yellow!20!blue!10,linewidth=0.01pt]
\end{pspicture}

\section*{Codakia}

\begin{pspicture}[showgrid=false](-3,-1)(8,3)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=1.e6 -30 -10 rtp2xyz,Decran=500}
\psShell[style=Codakia,base=0 -2000 -180 180,ngrid=720 30,incolor=yellow!40,RotX=90, fillcolor=yellow!20!blue!10,linewidth=0.01pt]
\end{pspicture}

\clearpage
\section*{Escalaria}

\begin{pspicture}[showgrid=false](-3,-7)(3,0)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=800 -90 20 rtp2xyz,Decran=50}
\psShell[style=Escalaria,base=0 -7200 -180 180,ngrid=720 30,incolor=yellow!40, fillcolor=yellow!20!blue!10,linewidth=0.01pt]
\end{pspicture}

\section{Les motifs colorés qui ornent les coquillages}
\begin{pspicture}(-3,-3)(4,4)
\psset[pst-solides3d]{lightsrc=viewpoint,viewpoint=50 -30 60 rtp2xyz,Decran=50}
\psShell[style=Nautilus,base=0 -3600 180 -180,ngrid=360 36,unit=1,incolor=beige,
  fillcolor=yellow!5,linewidth=0, fcol=0 72 360 36 2 div mul cvi 36 sub
    { dup 1 exch 36 add { (0.8 0.1 0 setrgbcolor)} for} for]
\end{pspicture}

\end{document}

test.pdf

But the second part I can't compile (or it takes more time than expected).

% arara: latex
% arara: dvips
% arara: ps2pdf: { options : [ -dALLOWPSTRANSPARENCY -dPDFSETTINGS=/prepress -dNOSAFER] }
% arara: clean: { extensions : [ aux, log, dvi, ps ] }
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{}
\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
   smallheadings, headexclude,footexclude,oneside]{pst-doc}
\usepackage{pst-shell}
\definecolor{beige}{rgb}{0.88 0.8 0.6}
\begin{document}
\section{Shells created with a data file}

\begin{verbatim}
\psShell[file=data/nautile-360-36,...]
\end{verbatim}

\psset{unit=1.5}
\begin{pspicture}(-3.5,-2)(3.5,3)
\psset{lightsrc=viewpoint,viewpoint=50 -50 40 rtp2xyz,Decran=50,solidmemory}
\psShell[file=data/nautile-360-36,incolor=white,
         fcol= 0 72 360 71 mul { dup 2 exch 36 add
             { dup (rouge) exch 37 add (blue)} for} for]
\end{pspicture}

\psset{unit=1.5}
\begin{pspicture}(-4,-2)(3,3)
\psset{lightsrc=viewpoint,viewpoint=50 -50 30 rtp2xyz,Decran=50,solidmemory}
\psShell[file=data/testnautile-360-36,deactivatecolor]
\end{pspicture}

\clearpage

\psset{unit=1.5}
\begin{pspicture}(-3,-3)(4,4)
\psset{lightsrc=viewpoint,viewpoint=50 -30 60 rtp2xyz,Decran=50,solidmemory}
\psShell[file=data/nautile-360-36,deactivatecolor,rm= 0 72 360 71 mul {/i exch def i 2 i 36 add
         {/j exch def j j 37 add} for} for]
\end{pspicture}

\clearpage

\psset{unit=2cm}
\begin{pspicture}(-3,-2)(4,3)
\psset{lightsrc=viewpoint,viewpoint=50 -30 30 rtp2xyz,Decran=50}
\psShell[file=data/nautile-180-24,deactivatecolor,linewidth=0.001,
         precode=/n1 180 def /n2 24 def /n1n2 n1 n2 2 mul 1 sub mul def /step n2 2 mul def,
            rm= 0 step n1n2 { dup 2 exch n2 add
                { dup n2 add 1 add} for} for]
\end{pspicture}

\begin{pspicture}(-3,-4)(4,3)
\psset{lightsrc=viewpoint,viewpoint=50 -30 60 rtp2xyz,Decran=50}
\psShell[style=Nautilus,D=1,base=0 -3600 -180 180,ngrid=360 36,incolor=red!30,
         fillcolor=yellow!5,linewidth=0,
         fcol=0 72 360 36 2 div mul cvi 36 sub { dup 1 exch 36 add
                  { (0.8 0.1 0 setrgbcolor) } for } for]
\end{pspicture}
\begin{pspicture}(-3,-4)(4,3)
\psset{viewpoint=100 -30 50 rtp2xyz,Decran=100}
\psShell[style=Nautilus,D=1,base=0 -720 -180 180,ngrid=90 36,linewidth=0.01pt,action=draw]
\end{pspicture}

\begin{pspicture}(-3,-3)(4,4)
\psset{lightsrc=viewpoint,viewpoint=50 -30 60 rtp2xyz,Decran=50}
\psShell[style=Nautilus,base=0 -3600 180 -180,ngrid=360 36,incolor=beige,
   fillcolor=yellow!5,linewidth=0,fcol=0 72 360 36 2 div mul cvi 36 sub
     { dup 1 exch 36 add { (0.8 0.1 0 setrgbcolor)} for} for]
\end{pspicture}
\begin{pspicture}(-3,-3)(4,4)
\psset{lightsrc=viewpoint,viewpoint=50 -30 60 rtp2xyz,Decran=50}
\psShell[style=Nautilus,base=0 -3600 180 -180,ngrid=360 36,incolor=beige,
  fillcolor=yellow!5,linewidth=0,fcol=0 2 360 36 2 div mul cvi 2 sub
    { (0.8 0.1 0 setrgbcolor)} for]
\end{pspicture}
\end{document}

test_fail.zip

zauguin commented 3 years ago

but I don't get your error.

That's probably because I just implemented the == operator. (Well, it's currently just an alias for =, but it can be improved later)

pablgonz commented 3 years ago

but I don't get your error.

That's probably because I just implemented the == operator. (Well, it's currently just an alias for =, but it can be improved later)

Ohhh... I understand, anyway the test that fails I can't even get it to work with dvips/ps2pdf :(

pablgonz commented 3 years ago

@hvoss49 You can try my second test (fail)? I can't get it to work and it is copied directly from the documentation.

hvoss49 commented 3 years ago

yes, but it makes no real sense to run pst-shell with lualatex. It needs heavily calculations which will take hours! In a long run the package should be rewritten for doing the calculations on Lua level.

hvoss49 commented 3 years ago

@zauguin: Can you implement the "quit" operator. Then I do not need to change the pst-solides3d.pro file, if there is no easier solution.

zauguin commented 3 years ago

@hvoss49 Done.