Hi, I try to create a Metapost path in lua and it works so far for the attached example. But a call of that function from another lua function sadly fails (no path visible after call). The code seems to be executed later (the output from 'show pid;' appears somewhere later in the log).
How can I ensure that the code is executed at runtime? Peter
thirddata = thirddata or { } thirddata.drops = thirddata.drops or { } local drops = thirddata.drops local metafun = context.metafun local format,todimen = string.format, string.todimen local floor = math.floor -- http://lua-users.org/wiki/SimpleRound local function round(num, idp) local mult = 10^(idp or 0) return floor(num * mult + 0.5) / mult end function drops.numberofpixels(n,idp) local dimenfactor = 1/tex.pdfpxdimen return round(todimen(n)*dimenfactor,idp) end local numberofpixels = drops.numberofpixels function drops.generate_default_path(id,width,height,radius) local w,h,r w = numberofpixels(width); h = numberofpixels(height); r = numberofpixels(radius) metafun.start() metafun("save p,pid; path p; string pid;") -- metafun("id := \"drops:boxshadow_w%sh%sr%s\";",w,h,r) metafun("pid := \"%s\";",id) --metafun("show pid;") -- ok metafun("p:= unitsquare xyscaled(%s,%s) smoothed %s;",w,h,r) metafun("passvariable(pid,p);") metafun("setbounds currentpicture to boundingbox(p);") -- 'activator'; void graphics are ignored metafun.stop() end
\ctxloadluafile{mplua}{} \starttext \ctxlua{metapost.showlog = true} \ctxlua{thirddata.drops.generate_default_path("drops:boxshadow-w199h100r10","200pt","100pt","10pt")} \ctxlua{inspect(metapost.variables)} \stoptext
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________