Q100497: டேட்டா இழப்பைத் தவிர்க்க Katana ஆட்டோசேவ் ஸ்கிரிப்டை எவ்வாறு அமைப்பது

Follow


சுருக்கம்

Katana திட்டங்களை அமைக்கும்போது, தரவு மற்றும் நேரத்தை இழப்பதைத் தவிர்க்க, முன்னேறும்போது சேமிப்பது அவசியம். Katana உள்ளமைக்கப்பட்ட ஆட்டோசேவ் செயல்பாடு உள்ளது, இது குறிப்பிட்ட நேரம் அல்லது செயல்களுக்குப் பிறகு காப்புப்பிரதி செயலிழப்பு கோப்பைச் சேமிக்கிறது.

க்ராஷ் சேவ்ஸ் பற்றிய கூடுதல் தகவலுக்கு, Katana பயனர் கையேட்டைப் பார்க்கவும்: ஆட்டோசேவ்ஸ்

தன்னியக்க சேமிப்பு ஸ்கிரிப்டை எவ்வாறு அமைப்பது என்பதை இந்தக் கட்டுரை விளக்குகிறது, இது தானாக உருவாக்கப்பட்ட கோப்புப் பெயருடன் Katana தற்காலிக கோப்பகத்தில் சேமிக்கப்படுவதற்குப் பதிலாக, தனிப்பயன் பெயரிடும் மரபுடன் தனிப்பயன் இடத்திற்குச் சேமிக்கப் பயன்படுகிறது, இது தானாகச் சேமிக்கும் செயல்பாட்டின் இயல்புநிலை நடத்தையாகும். .

மேலும் தகவல்

Katana Katana ஏபிஐக்குள் Katana கோப்பு தொகுதி மூலம் தனது திட்டக் கோப்புகளைச் சேமிக்கிறது.

Katana File.Save ( path/to/location/file.katana ) ஐ அழைப்பது , தேர்ந்தெடுக்கப்பட்ட கோப்பு பெயரைப் பயன்படுத்தி தற்போதைய Katana திட்டத்தை தேர்ந்தெடுத்த இடத்தில் சேமிக்கும்.

Katana File.CrashSave() ஐ அழைப்பது, Katana கிராஷ் கோப்பு தேர்வியைப் பயன்படுத்தி மீட்டமைக்கக்கூடிய தற்காலிக கோப்பகத்தில், தானாக உருவாக்கப்பட்ட பெயருடன் தற்போதைய Katana திட்டத்தின் செயலிழப்பு கோப்பைச் சேமிக்கும்.

தானாக சேமிக்கும் கோப்புகளை மீட்டெடுப்பது பற்றிய கூடுதல் தகவலுக்கு, பின்வரும் கட்டுரையைப் பார்க்கவும்: Q100450: செயலிழந்த பிறகு தானாகச் சேமிக்கப்பட்ட கோப்பைக் கண்டுபிடித்து மீட்டெடுப்பது எப்படி

மேலே விவரிக்கப்பட்ட செயல்பாடுகளைப் பயன்படுத்தி, நீங்கள் ஒரு பைதான் ஸ்கிரிப்டை உருவாக்கலாம், அது தானாகவே Katana திட்டத்தை குறிப்பிட்ட நேர இடைவெளியில் சேமிக்கிறது.

Katana கோப்பு தொகுதி பற்றிய கூடுதல் தகவலுக்கு, Katana டெவலப்பர் கையேட்டைப் பார்க்கவும்: திட்டங்களுடன் பணிபுரிதல்

எடுத்துக்காட்டு ஸ்கிரிப்ட்

இந்தக் கட்டுரையில் ஒரு பைதான் உதாரணம் இணைக்கப்பட்டுள்ளது, அதை பதிவிறக்கம் செய்து உங்கள் தேவைகளுக்கு மாற்றலாம்.

உதாரணத்தைப் பதிவிறக்கி, கோப்பை உங்கள் .katana\UIPlugins கோப்புறைக்கு நகர்த்தவும்.

உதாரணத்திற்கு:

Windows: C:\Users\USERNAME\.katana\UIPlugins\autosaveProject.py
லினக்ஸ்: /mnt/nethome/users/USERNAME/.katana/UIPlugins/autosaveProject.py

UIPlugins கோப்புறையில் கோப்பு சேர்க்கப்படும் போது, Katana துவக்கத்தில் கோப்பை ஏற்றி செயல்படுத்தும்.

ஸ்கிரிப்டைப் பயன்படுத்துதல்

ஸ்கிரிப்ட் நீங்கள் saveOption மாறியை அமைப்பதன் மூலம் தேர்வுசெய்யக்கூடிய 3 விருப்பங்களைக் கொண்டுள்ளது. இது கூடுதலாக சேமிப்பிற்கு இடையேயான நேரத்திற்கான விருப்பத்தையும் கொண்டுள்ளது, உதாரணத்திற்கு ஸ்கிரிப்ட், இது தற்போது 60000 மில்லி விநாடிகள் (60 வினாடிகள்) அமைக்கப்பட்டுள்ளது.

கீழே உள்ள விருப்பங்களை மதிப்பாய்வு செய்யவும்:

விருப்பம் 0: தானாகச் சேமிக்கும் செயலிழப்புச் சேமிப்பை கட்டாயப்படுத்தவும்

இந்த விருப்பம் பைதான் மூலம் புதிய CrashSave ஐ கட்டாயப்படுத்த அனுமதிக்கிறது.

Katana உள்ளமைந்த கிராஷ் ஆட்டோசேவ் இருந்தாலும், பைதான் மூலம் செயல்பாடுகளை இயக்கும் முன் அமைக்க இந்தச் செயல்பாடு பயனுள்ளதாக இருக்கும்.

விருப்பம் 1: தற்போதைய திட்டக் கோப்பில் சேமிக்கவும்

இந்த விருப்பத்தை பயன்படுத்தி தற்போதைய திட்டம் ஒரு புதிய சேமிப்புடன் மேலெழுதப்படும்.

ப்ராஜெக்ட் மாற்றியமைக்கப்படும் போது மட்டுமே Katana கோப்பைச் சேமிக்கும்.

விருப்பம் 2: கோப்பை ஒரு குறிப்பிட்ட இடத்தில் சேமிக்கவும்

இந்த விருப்பம் விருப்பம் 1 போலவே செயல்படுகிறது, ஆனால் நீங்கள் ஒரு அடைவு இடம் மற்றும் பெயரை தேர்வு செய்ய அனுமதிக்கிறது.

நீங்கள் விரும்பிய சேமிப்பிடத்தை சேர்க்க ஸ்கிரிப்டை மாற்ற வேண்டும்.

கூடுதலாக, தொடக்கத்தில் தானாக சேமிக்கும் கோப்புகளை சரிபார்க்க நீங்கள் ஒரு கருவியை உருவாக்க வேண்டும்.

from Katana import QtCore, NodegraphAPI, Katana File
import os

# VARIABLES

# Set your save option
saveOption = 2

# Set delay interval for autosaves
# function argument is the interval in milliseconds (60 seconds in this example)
autosaveDelay = 60000

def saveAndSubmit():
''' Autosaves project with option specified by user '''

# Get path variables
projectPath = NodegraphAPI.NodegraphGlobals.GetProjectFile()
projectFile = os.path.basename(projectPath)
projectDir = os.path.dirname(projectPath)

# OPTION 0
# Q100450: Locating a crash autosave file - https://support.foundry.com/hc/en-us/articles/360000024960
# Save a crash file (standard autosave):
if saveOption == 0:
KatanaFile.CrashSave(True)

# Check if file has been saved atleast once.
if projectPath != '':
# Check if file has been modified since last save
if Katana File.IsFileDirty():

# OPTION 1
# to save file at the current location use:
if saveOption == 1:
KatanaFile.Save(projectPath)

print ("File autosaved to: " + projectPath)

# OPTION 2
# to save at a specified location use:
if saveOption == 2:
customNameFile = 1 # If you want to use a different project name change the customNameFile = 0
customprojectFile = projectFile #Overwrites the active save with any changes (only happens if customNameFile is not 0
# Custom folder directory for Option 2
customFolderDirectory = '/home/userName/Downloads/customFolder/'

if customNameFile == 0:
customprojectFile = 'CustomFileName' # If customNameFile is 0 then you can change CustomFileName for whatever name you want the file to be save as

KatanaFile.Save(customFolderDirectory + customprojectFile)
print ("File autosaved to: " + customFolderDirectory + customprojectFile)

timer = QtCore.QTimer()
timer.timeout.connect(saveAndSubmit)
timer.start(autosaveDelay)

ஸ்கிரிப்ட் விளக்கம்

டைமர் லூப்பை வழங்க ஸ்கிரிப்ட் QtCore.QTimer() அழைப்பைப் பயன்படுத்துகிறது . QTimer ஐப் பயன்படுத்துவது, ஸ்கிரிப்ட்டின் செயல்பாட்டைச் செயல்படுத்துவதற்கு முன்பு ஒரு குறிப்பிட்ட நேரம் காத்திருக்க ஒரு பின்னணி செயல்பாட்டை அனுமதிக்கிறது.

ஒவ்வொரு முறையும் குறிப்பிட்ட கால அளவு கடந்திருக்கும் போது ( தானியங்கி சேவ் டெலே மாறியால் தீர்மானிக்கப்படுகிறது), டைமர் saveAndSubmit() செயல்பாட்டை இயக்குகிறது.

saveAndSubmit() செயல்பாடு வரையறைக்குள் , saveOption மாறியுடன் மாறக்கூடிய 3 விருப்பங்கள் உள்ளன .

தேர்ந்தெடுக்கப்பட்ட விருப்பத்தைப் பொறுத்து, ஸ்கிரிப்ட் க்ராஷ்சேவ் ஆக சேமிக்கப்படும், தற்போதைய Katana கோப்பில் சேமிக்கப்படும் அல்லது புதிய இடத்தில் சேமிக்கப்படும்.

விருப்பம் 1 மற்றும் 2 முதலில் Katana File.IsFileDirty() என்ற மற்றொரு செயல்பாட்டின் முடிவைச் சரிபார்க்கவும் . இந்தச் செயல்பாடு Katana சரிபார்த்து, முந்தைய சேமிப்பிலிருந்து திட்டமானது மாற்றியமைக்கப்பட்டுள்ளதா என்பதைப் பார்க்கவும், எதுவும் மாற்றப்படவில்லை என்றால், Katana தொடர்ந்து சேமிப்பதைத் தடுக்கிறது.

Katana தானியங்கு சேமிப்பு செயல்பாடுகள் பற்றிய கூடுதல் தகவலுக்கு, Katana டெவலப்பர் வழிகாட்டியைப் பார்க்கவும்.

இணைப்புகள்

We're sorry to hear that

Please tell us why