深入了解Python在HDA中的应用


Posted in Python onSeptember 05, 2019

Event Handler

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

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

Python Model (Python模式)

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

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

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

深入了解Python在HDA中的应用

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

深入了解Python在HDA中的应用

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现删除文件但保留指定文件
Jun 21 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
python列表生成器迭代器实例解析
Dec 19 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
浅析Python 责任链设计模式
Sep 11 Python
python 带时区的日期格式化操作
Oct 23 Python
python通过函数名调用函数的几种方法总结
Jun 07 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 Python
python urllib爬虫模块使用解析
Sep 05 #Python
详解Python3 pandas.merge用法
Sep 05 #Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 #Python
python爬取Ajax动态加载网页过程解析
Sep 05 #Python
python实现静态服务器
Sep 05 #Python
python编写简单端口扫描器
Sep 04 #Python
python 3.6.7实现端口扫描器
Sep 04 #Python
You might like
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
JavaScript中的闭包原理分析
2010/03/08 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Python守护进程实现过程详解
2020/02/10 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
铲车司机岗位职责
2014/03/15 职场文书
研修心得体会
2014/09/04 职场文书
安全先进个人材料
2014/12/29 职场文书
Python中for后接else的语法使用
2021/05/18 Python
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技