搬运大神的代码,超级好用~
#!/usr/bin/python
# encoding utf-8
'''
Author: ZhangZhen
Data:
2018.8.9
Email: orpha2010@qq.com
WeChat: orpha2010 / CGgroup
'''
from PySide2.QtWidgets import *
from PySide2.QtCore import *
from PySide2.QtGui import *
import sys,os
class MainWindow(QMainWindow):
def
__init__(self):
super(MainWindow,self).__init__()
self.setWindowTitle("Import Asset
v0.01")
self.resize(600,450)
self.setProperty('houdiniStyle',
True)
self.setStyleSheet(hou.qt.styleSheet())
self.setAutoFillBackground(True)
#ui
self.window = QWidget()
self.fbxBtn = QPushButton("Import
FBX")
self.abcBtn = QPushButton("Import
ABC")
self.hipBtn = QPushButton("Merge
HIPs")
self.delBtn =
QPushButton("Delete")
self.cancelBtn =
QPushButton("Cancel")
self.okBtn =
QPushButton("OK")
self.lw = QListWidget()
# layout
self.hlay = QHBoxLayout()
self.vlay2 = QVBoxLayout()
self.vlay2.addSpacing(22)
self.vlay2.addWidget(self.fbxBtn)
self.vlay2.addWidget(self.abcBtn)
self.vlay2.addWidget(self.hipBtn)
self.vlay2.addWidget(self.delBtn)
self.vlay2.addStretch()
self.vlay2.addWidget(self.okBtn)
self.vlay2.addWidget(self.cancelBtn)
self.vlay3 = QVBoxLayout()
self.vlay3.addWidget(QLabel("Import
Asset"))
self.vlay3.addWidget(self.lw)
self.vlay3.addLayout(self.hlay)
self.hlay4 = QHBoxLayout()
self.hlay4.addLayout(self.vlay3)
self.hlay4.addLayout(self.vlay2)
self.window.setLayout(self.hlay4)
self.setCentralWidget(self.window)
# connect btn
self.fbxBtn.clicked.connect(self.importFBX)
self.abcBtn.clicked.connect(self.importABC)
self.hipBtn.clicked.connect(self.mergeHip)
self.delBtn.clicked.connect(self.deleteLst)
self.cancelBtn.clicked.connect(self.cancel)
self.okBtn.clicked.connect(self.run)
def
importFBX(self):
#print "import FBX"
fbxFD =
QFileDialog().getOpenFileNames(self,("Search FBX"),"/home","FBX
Files(*.fbx *.FBX)")
if len(fbxFD):
self.lw.addItems(fbxFD[0])
def
importABC(self):
fbxFD =
QFileDialog().getOpenFileNames(self,("Search ABC"),"/home","ABC
Files(*.abc *.ABC)")
if len(fbxFD):
self.lw.addItems(fbxFD[0])
def
mergeHip(self):
fbxFD =
QFileDialog().getOpenFileNames(self,("Search HIP"),"/home","HIP
Files(*.hip *.HIP)")
if len(fbxFD):
self.lw.addItems(fbxFD[0])
def
deleteLst(self):
self.lw.takeItem(self.lw.currentRow())
def
cancel(self):
self.close()
def
run(self):
if self.lw.count()>0:
for i in
range(self.lw.count()):
assetPath =
self.lw.item(i).text()
ex =
assetPath.split(".")[-1]
if ex.lower() ==
"fbx":
hou.hipFile.importFBX(assetPath)
elif ex.lower() ==
"abc":
# create abc node
abcName =
os.path.basename(assetPath)[:-4]
abcGeo =
hou.node("/obj").createNode("geo",abcName)
childrenNodes = abcGeo.children()
for j in childrenNodes:
j.destroy()
abcNode =
abcGeo.createNode("alembic")
abcNode.setParms({"fileName":assetPath})
elif ex.lower() ==
"hip":
hou.hipFile.merge(assetPath)
hou.ui.displayMessage("test")
else:
hou.ui.displayMessage("NONE")
Dialog = MainWindow()
Dialog.show()