Community
Arnold for 3ds Max
Rendering with Arnold in 3ds Max using the MaxtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

arnold through maya python inside nuke's interpreter

4 REPLIES 4
Reply
Message 1 of 5
m.oumoumad
572 Views, 4 Replies

arnold through maya python inside nuke's interpreter

I'm trying to execute a maya python command from nuke, the command basically exports an object from a scene file. when I execute this script first time, it works fine, but when I execute it again a second time, I get an arnold error and nuke crashes.

Here is how the script looks like :

################################################################

import os
import subprocess
import nuke
import sys

os.environ["MAYA_LOCATION"] = "C:\Program Files\Autodesk\Maya2018"
os.environ["PYTHONHOME"]    = "C:\Program Files\Autodesk\Maya2018\Python"
os.environ["PATH"] = "C:\\Program Files\\Autodesk\\Maya2018\\bin;" + os.environ["PATH"]

sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages\setuptools-0.6c9-py2.6.egg")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages\pymel-1.0.0-py2.6.egg")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages\ipython-0.10.1-py2.6.egg")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages\ply-3.3-py2.6.egg")                         
sys.path.append("C:\Program Files\Autodesk\Maya2018\\bin\python26.zip")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\DLLs")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\plat-win")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\lib-tk")
sys.path.append("C:\Program Files\Autodesk\Maya2018\\bin")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python")
sys.path.append("C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages")
import maya.standalone
import maya.cmds as cmds

def getAbc(userSelectedFile,userSelectedObject,userStartFrame,userEndFrame):
	maya.standalone.initialize()
	# cmds.loadPlugin('mtoa')
	cmds.loadPlugin('AbcExport')
	cmds.file(new=True, force=True) 
	#open desired file
	sceneFile = userSelectedFile
	cmds.file( sceneFile, o=True)
	projectPath = sceneFile.split("02_SCENE")[0]
	cmds.workspace(projectPath, openWorkspace=True)
	#define variables
	selectedObj = userSelectedObject
	startFrame = userStartFrame
	endFrame = userEndFrame

	#get transform of the selected shape
	selectedTransform = cmds.listRelatives(selectedObj,parent=True, fullPath = True)[0]

	#het names without the | for windows os naming
	renamedFile = selectedObj.replace("|","_")
	#export to alumbic in the right place
	objectPath = cmds.workspace( q=True, rootDirectory = True) + '{}{}.{}'.format('01_ASSET/08_OBJECTS/',renamedFile,'abc')


	#create the directory if it doesn't exist
	dir_path = os.path.dirname(objectPath)
	if not os.path.exists(dir_path):
		os.makedirs(dir_path)

	#export to abc
	command = '-frameRange {} {} -uvWrite -worldSpace -dataFormat hdf -root {} -file {}'.format(startFrame, endFrame, selectedTransform, objectPath)
	cmds.AbcExport(j = command)
	print "seccessfully exported to :"
	cmds.file(new=True, force=True) 
	maya.standalone.uninitialize()
	return objectPath

The full error I get looks like this :

signal caught: error C0000005 -- access violation


****
* Arnold 5.4.0.0 [b7d9819c] windows icc-17.0.2 oiio-2.1.0 osl-1.11.0 vdb-4.0.0 clm-1.0.3.513 rlm-12.4.2 optix-6.0.0 2019/07/26 08:50:52
* CRASHED in memmove at 00:00:00
* signal caught: error C0000005 -- access violation
*
* backtrace:
*  0 0x00007ffa1fd547ee [ai           ]
*  1 0x00007ffa1fd53a8f [ai           ]
*  2 0x00007ffa9986fb5a [KERNELBASE   ] UnhandledExceptionFilter
*  3 0x00007ffa9c684ab2 [ntdll        ] memset
*  4 0x00007ffa9c66c676 [ntdll        ] _C_specific_handler
*  5 0x00007ffa9c68119f [ntdll        ] _chkstk
*  6 0x00007ffa9c64a229 [ntdll        ] RtlRaiseException
*  7 0x00007ffa9c67fe0e [ntdll        ] KiUserExceptionDispatcher
>> 8 0x00007ffa966ec387 [VCRUNTIME140 ] memmove
*  9 0x00007ffa49ac0108 [Foundation   ] Tarray::insertElement
* 10 0x00007ffa53184793 [CommandEngine] TcommandEngine::pushLanguageContext
* 11 0x00007ffa531d53bb [CommandEngine] TpythonInterpreter::dispatchMayaCommand
* 12 0x000000006232dc76 [python27     ] PyCFunction_Call
* 13 0x0000000062390c51 [python27     ] PyEval_GetFuncDesc
* 14 0x000000006238e4cb [python27     ] PyEval_EvalFrameEx
* 15 0x0000000062390e06 [python27     ] PyEval_GetFuncDesc
* 16 0x0000000062390cc0 [python27     ] PyEval_GetFuncDesc
* 17 0x000000006238e4cb [python27     ] PyEval_EvalFrameEx
* 18 0x0000000062390e06 [python27     ] PyEval_GetFuncDesc
* 19 0x0000000062390cc0 [python27     ] PyEval_GetFuncDesc
* 20 0x000000006238e4cb [python27     ] PyEval_EvalFrameEx
* 21 0x000000006238f85d [python27     ] PyEval_EvalCodeEx
* 22 0x00000000623c9dd0 [python27     ] PyRun_FileExFlags
* 23 0x00000000623c9c20 [python27     ] PyRun_StringFlags
* 24 0x00007ffa503cecde [nuke-11.2.3  ] initnuke
* 25 0x00007ffa503cc038 [nuke-11.2.3  ] initnuke
* 26 0x00007ffa4ff52e0d [nuke-11.2.3  ] Nuke::NodePanelI::operator=
* 27 0x00007ffa4ff52996 [nuke-11.2.3  ] Nuke::NodePanelI::operator=
* 28 0x00007ffa5075a679 [nuke-11.2.3  ] Nuke::ReduceGPUOps::gpuEngine_GL_end_recursive
* 29 0x000000006277b632 [Qt5Core      ] QMetaObject::activate
* 30 0x0000000062b17472 [Qt5Widgets   ] QAction::activate
* 31 0x0000000062c7b0a8 [Qt5Widgets   ] QMenu::actionGeometry
* 32 0x0000000062c7af06 [Qt5Widgets   ] QMenu::actionGeometry
* 33 0x0000000062c7fca9 [Qt5Widgets   ] QMenu::mouseReleaseEvent
* 34 0x0000000062b5233a [Qt5Widgets   ] QWidget::event
* 35 0x0000000062c7c5d4 [Qt5Widgets   ] QMenu::event
* 36 0x0000000062b280b2 [Qt5Widgets   ] QApplicationPrivate::notify_helper
* 37 0x0000000062b25d3e [Qt5Widgets   ] QApplication::notify
* 38 0x00007ffa4be7db1a [studio-11.2.3] SetCrashHandlerCallback
* 39 0x000000006275ae29 [Qt5Core      ] QCoreApplication::notifyInternal2
* 40 0x0000000062b294c0 [Qt5Widgets   ] QApplicationPrivate::sendMouseEvent
* 41 0x0000000062b7a025 [Qt5Widgets   ] QSizePolicy::QSizePolicy
* 42 0x0000000062b78545 [Qt5Widgets   ] QSizePolicy::QSizePolicy
* 43 0x0000000062b280b2 [Qt5Widgets   ] QApplicationPrivate::notify_helper
* 44 0x0000000062b26fc7 [Qt5Widgets   ] QApplication::notify
* 45 0x00007ffa4be7d52c [studio-11.2.3] SetCrashHandlerCallback
* 46 0x000000006275ae29 [Qt5Core      ] QCoreApplication::notifyInternal2
* 47 0x00007ffa547c14a3 [Qt5Gui       ] QGuiApplicationPrivate::processMouseEvent
* 48 0x00007ffa547a785b [Qt5Gui       ] QWindowSystemInterface::sendWindowSystemEvents
* 49 0x00000000627a2ec8 [Qt5Core      ] QEventDispatcherWin32::processEvents
* 50 0x00007ffa9c27681d [USER32       ] CallWindowProcW
* 51 0x00007ffa9c276212 [USER32       ] DispatchMessageW
* 52 0x00000000627a25f6 [Qt5Core      ] QEventDispatcherWin32::processEvents
* 53 0x00007ffa6ec98019 [qwindows     ] qt_plugin_query_metadata
* 54 0x0000000062757553 [Qt5Core      ] QEventLoop::exec
* 55 0x0000000062759bb7 [Qt5Core      ] QCoreApplication::exec
* 56 0x00007ffa4c2d8e28 [studio-11.2.3] SetCrashHandlerCallback
* 57 0x00007ff746f315fd [Nuke11.2     ]
* 58 0x00007ff746f31527 [Nuke11.2     ]
* 59 0x00007ff746f66735 [Nuke11.2     ]
* 60 0x00007ffa9c427bd4 [KERNEL32     ] BaseThreadInitThunk
* 61 0x00007ffa9c64ce71 [ntdll        ] RtlUserThreadStart
*
* loaded modules:
*    0x00007ffa1fa00000  ai
*    0x00007ffa99770000  KERNELBASE
*    0x00007ffa9c5e0000  ntdll
*    0x00007ffa966e0000  VCRUNTIME140
*    0x00007ffa49a00000  Foundation
*    0x00007ffa53160000  CommandEngine
*    0x0000000062240000  python27
*    0x00007ffa4fe20000  nuke-11.2.3
*    0x00000000625a0000  Qt5Core
*    0x0000000062b10000  Qt5Widgets
*    0x00007ffa4b890000  studio-11.2.3
*    0x00007ffa54790000  Qt5Gui
*    0x00007ffa9c260000  USER32
*    0x00007ffa6ec40000  qwindows
*    0x00007ff746f30000  Nuke11.2
*    0x00007ffa9c410000  KERNEL32
****
Stack trace:
  ntdll.dll!RtlRaiseException
  ntdll.dll!KiUserExceptionDispatcher
  VCRUNTIME140.dll!memmove
  Foundation.dll!Tarray::insertElement
  CommandEngine.dll!TcommandEngine::pushLanguageContext
  CommandEngine.dll!TpythonInterpreter::dispatchMayaCommand
  python27.dll!PyCFunction_Call
  python27.dll!PyEval_GetFuncDesc
  python27.dll!PyEval_EvalFrameEx
  python27.dll!PyEval_GetFuncDesc
  python27.dll!PyEval_GetFuncDesc
  python27.dll!PyEval_EvalFrameEx
  python27.dll!PyEval_GetFuncDesc
  python27.dll!PyEval_GetFuncDesc
  python27.dll!PyEval_EvalFrameEx
  python27.dll!PyEval_EvalCodeEx
  python27.dll!PyRun_FileExFlags
  python27.dll!PyRun_StringFlags
  nuke-11.2.3.dll!initnuke
  nuke-11.2.3.dll!initnuke
  nuke-11.2.3.dll!Nuke::NodePanelI::operator=
  nuke-11.2.3.dll!Nuke::NodePanelI::operator=
  nuke-11.2.3.dll!Nuke::ReduceGPUOps::gpuEngine_GL_end_recursive
  Qt5Core.dll!QMetaObject::activate
  Qt5Widgets.dll!QAction::activate
  Qt5Widgets.dll!QMenu::actionGeometry
  Qt5Widgets.dll!QMenu::actionGeometry
  Qt5Widgets.dll!QMenu::mouseReleaseEvent
  Qt5Widgets.dll!QWidget::event
  Qt5Widgets.dll!QMenu::event
  Qt5Widgets.dll!QApplicationPrivate::notify_helper
  Qt5Widgets.dll!QApplication::notify
  studio-11.2.3.dll!SetCrashHandlerCallback
  Qt5Core.dll!QCoreApplication::notifyInternal2
  Qt5Widgets.dll!QApplicationPrivate::sendMouseEvent
  Qt5Widgets.dll!QSizePolicy::QSizePolicy
  Qt5Widgets.dll!QSizePolicy::QSizePolicy
  Qt5Widgets.dll!QApplicationPrivate::notify_helper
  Qt5Widgets.dll!QApplication::notify
  studio-11.2.3.dll!SetCrashHandlerCallback
Labels (5)
4 REPLIES 4
Message 2 of 5
Stephen.Blair
in reply to: m.oumoumad

The Arnold crash handler may catch the crash, but Arnold isn't causing the crash.



// Stephen Blair
// Arnold Renderer Support
Message 3 of 5
m.oumoumad
in reply to: m.oumoumad

I wonder if there is a way to just "close" the maya.standalone and unload everything including mtoa, that way things would be like if the script wasn't executed, so it would work again fine like first time.

When I do cmds.unloadplugin("mtoa") I get an error that says mtoa can't be unloaded cause it's still in use, even after I do the maya.standalone.uninitialize().

Maybe there is something I missed regarding usage of maya python.

Message 4 of 5
m.oumoumad
in reply to: m.oumoumad

Even when I force unloading mtoa plugin, I still get the crash that's catched by arnold, so it's strange for me to think that this is completely independent of arnold

Message 5 of 5
Stephen.Blair
in reply to: m.oumoumad

If you're seeing the Arnold crash report, then Arnold is still loaded in memory.
Turn off Auto Load and restart



// Stephen Blair
// Arnold Renderer Support

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report