Although there are more elaborate ways to process files in TOPs by now, here is an example on how to open, scale and save a bunch of OBJ-files from a folder right in SOPs.
Create a python node inside a geometry container with three parameters: a float named
scale and two strings:
import os geo = hou.pwd().geometry() scale = hou.evalParm('scale') dir_imp = hou.evalParm('dir_import') dir_exp = hou.evalParm('dir_export') for root, dirs, files in os.walk(dir_imp): for file in files: if file.endswith('.obj'): path_import = os.path.join(root, file) path_export = dir_exp + file geo.loadFromFile(path_import) for point in geo.points(): pos = point.position() * scale point.setPosition(pos) geo.saveToFile(path_export)
import os loads a module to work on the underlying operating system, in our case reading from and writing to files on our hard disk.
hou.pwd().geometry() makes the geometry of our current node accessible.
hou.evalParm evaluates the parameters values.
for loops iterate through folders and files using
os.walk on the directory its given to.
if file.endswith is a condition that filters files by their ending such as *obj.
After defining import and export paths, we read the mesh files from the import folder using
geo.loadFromFile and iterate through the points to scale our geometry.
geo.saveToFile writes our scaled geometry back to the export path.