栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Houdini参数常见问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Houdini参数常见问题

文章目录
  • Houdini参数
    • 一.参数引用问题
      • 1.使用 hsript
      • 2.使用 wrangle
      • 3.使用 python
    • 二、节点属性筛选
      • 1. Sop 节点按属性筛选
      • 2.Top 节点按属性筛选

Houdini参数 一.参数引用问题 1.使用 hsript

简单表达式()

ch("../facet1/mkplanar")
ch("../facet1/mkplanar")>0
if(ch("../facet1/mkplanar")>0, 2,3 )

混合表达式,通过属性获取引用路径

//不太推荐,会有警告
//point(),prim()读取的都是float,一般情况下parm会根据自己的类型是否转化为int
//但是作为path存在的时候,需要自己使用ftoa,ftrim转化为string
//ftrim是四舍五入
ch("../facet"+==ftrim==(point(0,1,"id",0)) + "/mkplanar") 

 //推荐,但是要求属性必须是string
ch("../facet"+(points(0,1,"id")) + "/mkplanar")
2.使用 wrangle

vex表达式,需要提前声明类型,否则编译报错

i@intValue = chi( "../facet" + itoa(point(0,"id",1)) + "/mkplanar" );  //需要标记int类型
s@stringValue = chs( "../facet" + itoa(point(0,"id",1)) + "/group" ); //需要标记string类型
3.使用 python

一般情况下,只是部分参数使用python,大部分还是使用hsript
可以如下图所示修改,这样可保证hsript和python表达式一起使用

二、节点属性筛选 1. Sop 节点按属性筛选

注意:group也是一种属性
在group参数里面填写,其实就是一种字符串匹配
一般都会存在一个默认的attribClass层级,常见的是point和prim,少量的edgs,遍历当前层级下的所有元素,进行数据匹配筛选

  • 直接填写当前element层级的id或group名称进行筛选
  • 点击下拉列表会 显示group 和 prim层级name属性相关的内容
  • 使用hsript和python表达式,可以和通配符一起运用

Houdini属性筛选的通配符

*           \ 匹配任何
?        \ 匹配任意单个字符
[chars]  \ 匹配中括号里面的任意字符,但是不支持以[a-z]的写法
^pattern \ 删除已经匹配的部分内容
@name    \ 匹配属性,对象组,通道组

常见用法

@name=mask*         //匹配name属性前缀为mask的内容,包括mask
@name=?_mask*       //匹配name属性第一个为任意字符,中间为_mask,后面为任意内容
@name=[ABCD]_mask*  //匹配name属性第一个为ABCD中任意一个,中间为_mask,后面为任意内容
* ^@name=mask       //匹配name属性不等于mask的任意内容
2.Top 节点按属性筛选

filterbyexpression 节点内hsript表达式*

@coord==x5_y6           //错误写法,会直接报错
`@coord==x5_y6`         //错误写法,会直接报错
`@coord`==x5_y6         //错误写法,会直接报错
strmatch(@coord,x5_y6)  //正确写法,会直接报错
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号