Es kann für diejenigen offensichtlich sein, die Werkzeuge mit Python herstellen, Es ist eine großartige Gelegenheit, also möchte ich etwas zusammen lassen ٩ (๑ • ̀ω • ́๑) ۶
○ csv ist in Ordnung, aber Designer möchten auch Excel ~ lesen und verwenden ○ Ich möchte die Anzahl der Frames aus der Excel-Bewegungsliste ~ abrufen ○ Ich möchte, dass Sie den Status von Google Spreadsheet nach der Ausgabe und dem Hochladen von ~ ohne Erlaubnis aktualisieren
Ich möchte auf externe Daten wie ... verweisen und diese aktualisieren! !! !! !! !! !! !!
Es gibt viele externe Module von Drittanbietern in Python. Sie können leicht solche Dinge tun, die Mel nicht tun kann.
import csv
import os
In Python können Sie verschiedene Module aufrufen, indem Sie zuerst den Import einfügen. Da csv und os Originalmodule sind, müssen sie nicht separat abgelegt werden.
Maya ist eine Python2-Serie. Lassen Sie das Modul also vorsichtig fallen!
Dieses Mal werde ich die Module direkt in den Skriptordner von Maya legen, Bei der Teamverwaltung ist es daher besser, in einem separaten Verzeichnis zu verwalten Details finden Sie hier! http://www.comtec.daikin.co.jp/DC/UsersNotes/Ritaro/tutorial/maya_04/ http://tm8r.hateblo.jp/entry/2016/10/18/222755
Ich habe es so direkt in den Skriptordner gelegt.
Diese Umgebung ○ Windows 7 ○ Maya 2016 ○ (○. ○. ○) jedes Moduls ist die diesmal verwendete Version!
Ich denke, es ist besser, mit pip zu installieren Wie benutzt man Pip? http://www.python-izm.com/contents/basis/pip.shtml Dieses Mal habe ich einfach die an anderer Stelle installierte in Skripte verschoben.
xlrd (0.9.4) xlwt (1.0.0) xlutils (1.7.1)
Ermitteln Sie die Anzahl der Frames aus dem Szenennamen in Excel und schreiben Sie das heutige Datum Speichern Sie Excel in .xls!
import xlrd
import xlwt
from xlutils.copy import copy
import maya.cmds as cmds
import os
import datetime
excel = "" #Excel-Dateipfad
scene = os.path.splitext(cmds.file(q=True, shortName=True, sceneName=True))[0] #Holen Sie sich den Namen der Szene
read = xlrd.open_workbook(excel)
ex_row = 0 #Speichern Sie, welche Zeile aktualisiert wird
d = datetime.datetime.today() #Holen Sie sich das heutige Datum
today = d.strftime("%Y/%m/%d")
sheet_1 = read.sheet_by_index(0)
for col in range(sheet_1.ncols):
for row in range(sheet_1.nrows):
if scene == sheet_1.cell(row, col).value:
ex_row = row
print u"Rahmen starten:" + sheet_1.cell(row, 1).value + u"Endrahmen:" + sheet_1.cell(row, 2).value
continue
#Ausgabeverarbeitung usw., falls erforderlich
write = copy(read) #Kopieren Sie das Objekt zum Lesen vollständig in das Objekt zum Schreiben, einschließlich des Stils
sheet1 = write.get_sheet(0)
sheet1.write(ex_row, 3, today) #Fügen Sie das heutige Datum in die 4. Spalte ein
write.save(excel)
Ich habe mich auf diesen Bereich bezogen! http://qiita.com/koyopro/items/d8d56f69f863f07e9378
Grundsätzlich machen Sie dasselbe wie oben in Excel
gspread (0.4.1) httplib2 (0.9.2) oauth2client (4.0.0) requests (2.12.1) six (1.10.0)
import os
import datetime
import maya.cmds as cmds
import gspread
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow
flow = OAuth2WebServerFlow(client_id='Kunden ID',
client_secret='Kundengeheimnis',
scope='https://spreadsheets.google.com/feeds',
redirect_uri="urn:ietf:wg:oauth:2.0:oob")
scene = os.path.splitext(cmds.file(q=True, shortName=True, sceneName=True))[0]
d = datetime.datetime.today() #Holen Sie sich das heutige Datum
today = d.strftime('%Y/%m/%d')
storage = Storage('cred.dat') #Datei zum Speichern von Anmeldeinformationen
credentials = storage.get()
if credentials is None or credentials.invalid == True:
authorize_url = flow.step1_get_authorize_url()
cmds.confirmDialog(m='Go to the following link in your browser: ' + authorize_url)
code = raw_input('Enter verification code: ').strip()
credential = flow.step2_exchange(code)
storage.put(credential)
credential.set_store(storage)
credentials = credential
gc = gspread.authorize(credentials)
spr = gc.open_by_key('Tabellenkalkulations-ID')
for j, worksheet in enumerate(spr.worksheets()):
worksheet.get_all_values()
list_of_lists = worksheet.get_all_values()
for i, l in enumerate(list_of_lists):
if l[0] == scene:
print u'Rahmen starten:' + l[1] + u'Endrahmen:' + l[2]
continue
for j, worksheet in enumerate(spr.worksheets()):
worksheet.get_all_values()
list_of_lists = worksheet.get_all_values()
for i, l in enumerate(list_of_lists):
if l[0] == scene:
worksheet.update_acell('D' + str(i+1), today)
Wenn Sie zum ersten Mal darauf zugreifen Weil so etwas herauskommen wird Kopieren Sie die Adresse und fügen Sie sie in Ihren Browser ein Wenn Sie mit Maya auf Bestätigen klicken, wird das folgende Fenster angezeigt. Kopieren Sie daher den Code des Browsers Ab dem zweiten Mal werden die Informationen in cred.dat angezeigt und abgerufen, sodass diese Arbeit nur einmal ausgeführt wird.
Es hat nichts mit Maya zu tun, sondern mit den Daten in der Tabelle Ich habe auch so etwas wie überprüft, ob es sich auf dem Server des Unternehmens befindet, und den Status aktualisiert. Wenn Sie mit Maya verschiedene Aufgaben ausführen können, können Designer möglicherweise verschiedene Tools verteilen, ohne Python fallen zu lassen!
Es tut mir leid, dass ich nicht viel mit Maya Python zu tun habe!
Wenn Sie Hilfe von einer Katze bekommen möchten, geben Sie mir einen Job! !! !! !! !! !! !! Twitter: @ yukarin33
Recommended Posts