深入了解Python在HDA中的应用

yipeiwu_com7年前Python基础

Event Handler

在HDA中,要创建Python脚本,需要先选择一个事件处理器(EventHandle),他表示你要在什么时候执行你现在所创建的脚本命令

On Created (在节点创建时,执行脚本)
如选择此项编辑Python脚本,Python将会在节点创建时执行Python中的命令

Python Model (Python模式)

这一项会使创建的脚本在使用过程中根据用户设置执行

可以使用这一项给节点设置参数提示等功能

On Delete(在节点创建时执行脚本)

Python在Houdini节点上的常用方法

Set Color 设置颜色

node = kwargs['node']  #获取当前节点
context = hou.pwd()  #当前节点的父对象
node.setColor(hou.Color((0.584,0.776,1)))  #设置当前节点颜色

Node 创建节点

try:
  out = context.createNode('null','OUT_render')  #从当前节点的父对象创建节点
  out.setInput(0,node)  #设置out节点输入端为当前节点node
  out.setColor(hou.Color(0,0,0))  #设置out节点的颜色
except:
  pass

Print and Button feedback 打印字符和按钮反馈

def CacheGeo():  #在OnCreate创建一些自定的方法,然后可以在节点参数中调用
  this = hou.pwd()  #获取当前节点
  print "\nCaching......!"  
  filecache = hou.node(this.path() + '/cache_geo')  #获取设置当前节点内cache_geo的路径为filecache
  filecache.parm('execute').pressButton()  #获取filecache节点上execute的状态
  this.setColor(hou.Color((0.584,0.776,1)))  #设置节点颜色
  
def ReloadGeo():
  this = hou.pwd()
  print "\nLoaded successfully"
  filecache = hou.node(this.path() + '/report_geo')
  filecache.parm('reload').pressButton()
  this.setColor(hou.Color((0.475,0.812,0.204)))

  output = hou.node(this.path() + '/output0')  #设置当前节点内output0节点的路径为output
  geo = output.geometry()  #获取output的geometry并赋予到geo(要求出geometry才可以求这个节点上的geometry属性)
  print len(geo.points())  #打印geo的点数

设置这两个按钮(cache_geo、report_geo)执行时调用不同的方法,执行不同的操作

参数调用PythonScripts

hou.pwd().hdaModule().CacheGeo()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Python实现一个简单的项目监控

在公司里做的一个接口系统,主要是对接第三方的系统接口,所以,这个系统里会和很多其他公司的项目交互。随之而来一个很蛋疼的问题,这么多公司的接口,不同公司接口的稳定性差别很大,访问量大的时候...

Python实现感知机(PLA)算法

Python实现感知机(PLA)算法

我们主要讲解一下利用Python实现感知机算法。 算法一 首选,我们利用Python,按照上一节介绍的感知机算法基本思想,实现感知算法的原始形式和对偶形式。 #利用Python实现感...

Python判断变量名是否合法的方法示例

Python判断变量名是否合法的方法示例

问题: 变量名是否合法:          1.变量名可以由字母,数字或者下划线组成   &nb...

python if not in 多条件判断代码

python if not in 多条件判断代码

百度作业帮提问: python if not in 多条件 判断怎么写 s = ['1','2'] 判断条件 sta = "12345" 正常的是这样的, if "1" not in s...

Python代码打开本地.mp4格式文件的方法

想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件。我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放代码中指定的视频文件。 cla...