Announcements

Between mid-October and November, the content on AREA will be relocated to the Autodesk Community M&E Hub and the Autodesk Community Gallery. Learn more HERE.

Maya crashes after multiple imports with python

Maya crashes after multiple imports with python

ava6HE9J
Observer Observer
270 Views
2 Replies
Message 1 of 3

Maya crashes after multiple imports with python

ava6HE9J
Observer
Observer

Hello,

I am trying to import multiple objects one by one, do a series of renders and delete the object. the problem is that after a fixed number of imports, the file crashes (Maya doesn't log errors and the app just closes).  I have ran the code in multiple systems and the file crashes after the exact same amount of imports. I suspect a memory leak. 
I am already:
1. Delete all the materials from the previous import  

2. Clear script editor after each upload

3. Delete all lights or other scenic object 


0 Likes
271 Views
2 Replies
Replies (2)
Message 2 of 3

jmreinhart
Advisor
Advisor

What Maya version are you using? Could you share some simple code to replicate the issue?

0 Likes
Message 3 of 3

ava6HE9J
Observer
Observer

I am using Maya 2023 and rendering onGPU. Here is a summary of the code.

import maya.OpenMaya as OpenMaya
import maya.cmds as cmds
import maya.mel as mel
import maya.app.general.createImageFormats as createImageFormats
from mtoa.cmds.arnoldRender import arnoldRender
import maya.app.renderSetup.model.renderSetup as renderSetup
import mtoa.aovs as aovs
from maya.api.OpenMaya import MVector, MMatrix, MPoint

import json
import csv
import os


def render_id_random(camera_dis,i,cameraShape,obj)):
      cmds.select('camera1')
      mel.eval('RenderViewWindow')
      name = obj
      cmds.setAttr("defaultArnoldDriver.pre", name, type="string")
      arnoldRender(1024, 1024, True, True,cameraShape, ' -layer defaultRenderLayer')


obj_path = 'C:/Users/aseha/Downloads/Batch'

with open('C:/Users/aseha/Desktop/obj_ids.csv') as f:
      reader = csv.reader(f)
      for obj in reader:

          frame_namespace = str(obj)
          # import the frame and set the namespace
          import_path = os.path.join(obj_path,'scenes'_AI.mb')
          cmds.file(import_path , i = True, force=True,namespace=frame_namespace)


          # delete unused material
          mel.eval('hyperShadePanelMenuCommand("hyperShadePanel1", "deleteUnusedNodes");')
         

         # render object
          i = 1
          while i<11:
              camera_dis = random.randint(1200,3000)
              #create camera
              cameraName = cmds.camera( ar = 1, fl =150, ftv = 0 ,p=(0,0,camera_dis),hfa=0.945,vfa =0.945)
              cameraShape = cameraName[1]

              render_id_random(camera_dis,i,cameraShape,obj)

          # delete the frame to import the next object
          cmds.delete(obj)

          # clear script editor
          cmds.scriptEditorInfo(ch=True)