As expected, the behavior of the GetPath and SetPath functions has changed in 5.0.3. It is easy to fix in Deadline though, and I have to admit it was my fault, as adding “.fxd” to the path was not required in previous versions anyway…
Here is what happens:
$.getPath #default
-- in v5.0.2.1, this returns "C:\FumeFX25190030\FumeFX030_" --> extension is stripped
-- in v5.0.3, this returns "C:\FumeFX25190030\FumeFX030_.fxd" --> extension is retained
$.setPath (($.getPath #default)+".fxd") #(#default)
-- in v5.0.2.1, after executing the above and then calling $.getPath #default, you still get "C:\FumeFX25190030\FumeFX030_".
-- in v5.0.3, it ends up producing "C:\FumeFX25190030\FumeFX030_.fxd_.fxd"
So in v5.0.3, Kreso decided not to strip the extension when returning the path, and to add the extension to whatever the path is when setting the path.
In 5.0.2.1, it was always stripping the extension when returning the path, and not adding an extra extension when setting the path if an extension was provided.
In other words, we can modify the Deadline FumeFX Workflow code not to add an extension:
if UseSimCacheOutput do
(
local newPath = SimCacheOutput
if not matchPattern newPath pattern:"*\\" do newPath += "\\"
defaultPaths = for o in theObjectsToSim collect o.GetPath #default
for o in theObjectsToSim do
o.SetPath (newPath+(filenameFromPath (o.GetPath #default))) #(#default)
)
Thanks to the filenameFromPath()
call, we end up stripping the extension in 5.0.3, and then it gets added back by the SetPath() call… I tested 5.0.2.1, and it produced the correct output as it added the extension that was missing in the SetPath() call.
So the above should work in both versions. Please modify the file
\\DeadlineRepository10\submission\3dsmax\Main\Workflows\SMTDWorkflow_FumeFX.ms
and see if it works for you.