सारांश
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 फ़ोल्डर में ले जाएँ।
उदाहरण के लिए:
विंडोज़: C:\Users\USERNAME\.katana\UIPlugins\autosaveProject.py
लिनक्स: /mnt/nethome/users/USERNAME/.katana/UIPlugins/autosaveProject.py
जब फ़ाइल को UIPlugins फ़ोल्डर में जोड़ा जाता है, Katana स्टार्टअप पर फ़ाइल को लोड और निष्पादित करेगा।
स्क्रिप्ट का उपयोग करना
स्क्रिप्ट में 3 विकल्प हैं जिन्हें आप सेवऑप्शन वेरिएबल सेट करके चुन सकते हैं। इसमें सेव के बीच के समय के लिए एक विकल्प भी है, उदाहरण स्क्रिप्ट के लिए, यह वर्तमान में 60000 मिलीसेकंड (60 सेकंड) पर सेट है।
कृपया नीचे दिए गए विकल्पों की समीक्षा करें:
विकल्प 0: फोर्स ऑटोसेव क्रैश सेव
यह विकल्प आपको पायथन के माध्यम से एक नए क्रैशसेव को बाध्य करने की अनुमति देता है।
हालाँकि 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()
फ़ंक्शन परिभाषा के भीतर , 3 विकल्प हैं जो saveOption वेरिएबल के साथ स्विच करने योग्य हैं।
चुने गए विकल्प के आधार पर, स्क्रिप्ट या तो क्रैशसेव के रूप में सहेजी जाएगी, वर्तमान Katana फ़ाइल पर सहेजी जाएगी, या किसी नए स्थान पर सहेजी जाएगी।
विकल्प 1 और 2 पहले Katana File.IsFileDirty()
नामक किसी अन्य फ़ंक्शन का परिणाम जांचें । यह फ़ंक्शन यह देखने के लिए Katana जांच करता है कि क्या प्रोजेक्ट को पिछले सेव के बाद से संशोधित किया गया है और यदि कुछ भी संशोधित नहीं किया गया है, तो Katana लगातार सहेजने से रोकता है।
Katana में ऑटोसेविंग फ़ंक्शन के बारे में अधिक जानकारी के लिए, कृपया Katana डेवलपर गाइड की समीक्षा करें।
संलग्नक
हम चाहते हैं कि खेद व्यक्त करते हैं
कृपया हमें बताएँ कि