Houdini_VEX属性术语表

如有错误,可在评论区指正。

1、全局变量

wrangles中可用的变量。类型指示器不是必需的,但包含在内作为提醒。

// 在所有 SOP  wrangles 中可用

f@Frame //当前浮动帧号,相当于 $FF Hscript 变量
f@Time //当前时间(以秒为单位),相当于 $T Hscript 变量
i@SimFrame //整数模拟时间步数 ($SF),仅出现在 DOP 上下文中。
f@SimTime //以秒为单位的模拟时间($ST),仅存在于 DOP 上下文中。
f@TimeInc //当前用于模拟或回放的时间步长。

// 可在 Attribute Wrangle 中使用(点、顶点、图元和细节)
v@P // 当前元素的位置。
i@ptnum //附加到当前处理元素的点号。
i@vtxnum //当前处理顶点的线性数。
i@primnum //附加到当前处理的元素的原始编号。
i@elemnum //当前处理元素的索引号。
i@numpt //几何中的点总数。
i@numvtx //当前处理元素的图元中的顶点数。
i@numprim //几何体中图元的总数。
i@numelem //正在处理的元素总数。

// 在 Volume Wrangle
v@P 中可用// 当前体素的位置。
f@@density //当前体素位置的密度场值。
v@center //当前体积的中心。
v@dPdx, v@dPdy, v@dPdz //这些向量存储 x、y 和 z 体素索引中发生的 P 变化。
i@ix, i@iy, i@iz //体素索引。对于密集体积(非 VDB),这些范围从 0 到分辨率-1。
i@resx, i@resy, i@resz //当前volume的分辨率 (或者理解为长宽高)。

2、常见几何属性

// Int
@id // 在整个模拟过程中保持不变的唯一编号。

// float
@pscale // 粒子半径大小。统一尺度。将显示粒子设置为“光盘”以进行可视化。
@width // 曲线的厚度。在对象节点上启用“在视口中对开放曲线进行着色”以进行可视化。
@Alpha // Alpha 透明度覆盖。视口使用它来设置 OpenGL 几何体的 Alpha。
@Pw // 样条权重。

// Vector3
@P // 点位置。用它来在 3D 空间中布置点。
@Cd // 漫反射颜色覆盖。视口使用它来为 OpenGL 几何体着色。
@N // 曲面或曲线法线。如果此属性不存在,Houdini 将计算法线。
@scale //矢量比例。允许定向缩放或拉伸(沿一个方向)。
@rest // 由程序图案和纹理用于粘贴在变形和动画表面上。
@up // 向上向量。局部空间的向上方向,通常为 (0, 1, 0)。
@uv // 该点/顶点的 UV 纹理坐标。
@v // 点速度。移动的方向和速度(以每秒为单位)。

// Vector4
@orient // 点的局部方向(表示为四元数)。
@rot // 在 orient、N 和 up 属性之后应用附加旋转。

// String
@name // 一个唯一的名称,用于标识哪些基元属于哪个部分。也用于标记卷。
@instance // 在渲染时实例化的对象节点的路径。

3、指定VEX数据类型

float f@name // 浮点标量值。
vector2 u@name // 两个浮点值。可用于存储 2D 位置。
vector3 v@name // 三个浮点值。通常是位置、方向、法线、UVW 或颜色。
vector4 p@name // 四个浮点值。通常是旋转四元数,或颜色和 Alpha (RGBA)。
int i@name // 整数值(VEX 使用 32 位整数)。
Matrix2 2@name // 四个浮点值,表示一个 2D 旋转矩阵。
Matrix3 3@名称 // 表示 3D 旋转矩阵或 2D 变换矩阵的九个浮点值。
Matrix4 4@name // 代表 3D 变换矩阵的十六个浮点值。
string s@name // 字符串。

4、Channel快捷语法

ch( 'flt1' ); // 浮动
chf( 'flt2' ); // 浮点数
chi( 'int' ); // 整数
chv( 'vecparm' ); // 向量 3
chp( 'quat' ); // 向量 4 / 四元数
ch3( 'm3' ); // 3x3 矩阵
ch4( 'm4' ); // 4x4 矩阵
chs( 'str' ); // 字符串
chramp( 'r' , X); // 样条斜坡
vector(chramp('c', X)); // RGB 渐变

5、DOP粒子属性

粒子系统由属性驱动,以下是使用的一些属性。

f@age // 自粒子诞生以来的时间(以秒为单位)。
f@life // 允许粒子存活的时间(以秒为单位)。当f@age>f@life时,i@dead将被设置为1。
f@nage //标准化年龄,f@age除以f@life。隐式属性,您无法写入此属性。
i@dead // 粒子是活的 (0) 还是死的 (1)。死粒子在收割阶段被删除。
i@id // 粒子的唯一 ID,在一次模拟中保持不变。

i@stopped // 粒子是移动 (0) 还是停止 (1)。
i@stuck // 粒子是自由的 (0) 还是被卡住的 (1)。
i@sliding // 粒子是自由的 (0) 还是沿着表面滑动 (1)。
f@cling // 向内滑动粒子的力(根据碰撞的表面法线)。
s@pospath // 粒子碰撞对象的路径。
i@posprim // 我们希望引用路径几何中哪个碰撞基元的位置。
v@posuv // 碰撞基元上的参数化 uv。

i@hittotal // 粒子所有命中的累积总数(每个时间步仅递增一次)。
i@has_pprevious // 如果 v@pprevious 包含有效值,则该值设置为 1。
v@pprevious // 存储粒子在前一帧上的位置。用于碰撞检测。
i@hitnum // 上次 POP Collision Detect 中粒子碰撞的次数。
s@hitpath // 被击中的对象的路径。磁盘上文件的路径或 op: 路径。
i@hitprim // 原始命中。如果碰撞检测器无法找出哪个 prim,则可能为 -1。
v@hituv // 基元上的参数化 UV 空间。
v@hitpos // 实际发生命中的位置。如果碰撞物体正在移动,则很有用。
v@hitnml // 碰撞时表面的法线。
v@hitv // 碰撞时表面的速度。
f@hittime // 碰撞发生时,可能发生在帧内。
f@hitimpulse // 记录碰撞解决所需的脉冲量。随时间步长变化。
f@bounce // 当粒子从另一个物体反弹时,这控制它们保留多少能量。
f@bounceforward // 控制它们在切线方向上保留多少能量。
f@friction // 当粒子弹跳时,它们的速度会根据撞击的力度成比例地减慢。
s@collisionignore // 匹配此模式的对象不会发生碰撞。

f@force // 此帧中粒子上的力。
f@mass // 粒子的惯性。
v@spinshape // 将其乘以 f@pscale 以确定旋转惯性粒子的形状。
f@drag // 粒子受风效应影响的程度。
f@dragexp // 范围从 1 到 2,默认值在求解器上设置。用于角度和线性阻力。
v@dragshape // 粒子在其每个局部轴上被拖动的程度。
v@dragcenter // 如果指定,阻力也会在粒子上产生扭矩。
v@targetv // 当地风速。被认为是粒子的目标或目标速度。
f@airresist// 匹配风速有多重要。空气的厚度。
f@speedmin // 粒子可以移动的最小速度,以每秒单位为单位。
f@speedmax // 粒子可以移动的最大速度,以每秒单位为单位。

p@orient // 粒子的方向。用于计算“本地/local”力量。
v@w // 粒子的角速度。给出旋转轴的向量。
v@torque // 相当于旋转的力。不支持惯性张量(相当于质量)。
v@targetw // 该粒子的目标旋转方向和速度。
f@spinresist // 匹配目标有多重要w。
f@spinmin // 粒子可以旋转的最小速度(以弧度每秒为单位)。
f@spinmax // 粒子可以旋转的最大速度(以弧度每秒为单位)。

6、DOP Grains属性

POP Grains 控制下的粒子的“ispbd”属性设置为 1。这会导致它们绕过 POP Solver 中的运动更新,因为实际的运动更新是由 POP Grains 节点完成的。

i@ispbd // 值为 1 会使粒子表现为颗粒。
f@pscale // 用于确定每个粒子的半径。
f@repulsionweight // 粒子碰撞力的加权量。
f@repulsionstiffness // 粒子保持分离的强度。值越高,弹性排斥力越小。
f@attractionweight // 粒子靠近时会自然粘在一起的程度。
f@attractionstiffness // 附近粒子相互粘附的强度。
v@targetP // 粒子被限制在这个位置。
f@targetweight // v@targetP 约束的权重。
f@targetstiffness // 粒子固定到其 v@targetP 属性的刚度。

f@restlength // 由折线连接的粒子将被迫保持这个距离(prim 属性)。
f@constraintweight // 缩放,基于约束力的每个粒子。
f@constraintstiffness // 这控制每个粒子的刚度。
f@strain // 这个原始属性记录约束被拉伸的程度。
f@strength // 如果 f@strain 超过此原始属性,则约束将被删除。

7、DOP Packed RBD属性

Bullet Solver 使用多个点属性来存储打包对象的每个部分的属性。

i@active // 指定该对象是否能够对其他对象做出反应。
i@animated // 指定是否应在每个时间步从其 SOP 几何体更新变换。
i@deforming // 指定是否应在每个时间步从其 SOP 几何体重建碰撞形状。

f@bounce // 物体的弹性。
i@bullet_add_impact // 模拟期间发生的影响将记录在影响或反馈数据中。
i@bullet_ignore // 指定 Bullet 解算器是否应完全忽略该对象。
f@bullet_angular_sleep_threshold // 物体角速度的休眠阈值。
f@bullet_linear_sleep_threshold // 物体线速度的睡眠阈值。
i@bullet_want_deactivate // 禁用对不移动对象的模拟,直到该对象再次移动。
i@computecom // 指定是否应根据碰撞形状计算质心。
i@computemass // 指定是否应根据碰撞形状和密度计算质量。
f@creationtime // 存储创建对象的模拟时间。
i@dead // 指定在下一次求解期间是否应删除该对象。
f@density // 物体的质量等于其体积乘以密度。
f@friction // 物体的摩擦系数。
f@inertialtensorstiffness // 旋转刚度。应用于惯性张量的比例因子。
i@inheritvelocity // SOP 几何体中的 v 和 w 点属性将覆盖初始速度。
f@mass // 物体的质量。
s@name // 对象的唯一名称。由约束网络使用。
p@orient // 对象的方向。
v@P // 物体质心的当前位置。
v@pivot // 方向适用的枢轴。如果 i@computecom 非零,则这是自动计算的。
v@v // 物体的线速度。
v@w // 物体的角速度,以弧度每秒为单位。

i@bullet_adjust_geometry // 缩小碰撞几何体。
i@bullet_autofit // 使用长方体、胶囊体、圆柱体、球体或平面的对象边界。
f@bullet_collision_margin // 碰撞形状之间的填充距离。
s@bullet_georep // 可以是凸包、凹面、盒子、胶囊、圆柱体、复合体、球体或平面。
i@bullet_groupconnected // 创建每组连接基元的凸包。
f@bullet_length // Capsule 或 Cylinder 碰撞形状在 Y 方向的长度。
v@bullet_primR // 盒子、胶囊、圆柱体或平面碰撞形状的方向。
v@bullet_primS // 盒子碰撞形状的大小。
v@bullet_primT // 长方体、球体、胶囊体、圆柱体或平面碰撞形状的位置。
f@bullet_radius // 球体、胶囊体或圆柱体碰撞形状的半径。
f@bullet_shrink_amount // 指定收缩碰撞几何体完成的大小调整量。

s@activationignore // 不会因与任何匹配此模式的对象发生碰撞而被激活。
s@collisiongroup // 指定该对象所属的碰撞组的名称。
s@collisionignore // 该对象不会与任何匹配此模式的对象发生碰撞。
f@min_activation_impulse// 导致对象从非活动状态切换到活动状态的最小脉冲。

f@speedmin // 粒子可以移动的最小速度,以每秒单位为单位。
f@speedmax // 粒子可以移动的最大速度,以每秒单位为单位。
f@spinmin // 粒子可以旋转的最小速度(以弧度每秒为单位)。
f@spinmax // 粒子可以旋转的最大速度(以弧度每秒为单位)。
f@accelmax // 限制由于强制约束而导致的对象速度变化。
f@angaccelmax // 限制由于强制约束而导致的对象角速度的变化。

f@airresist// 指定匹配目标速度 (v@targetv) 的重要性。
f@drag // v@targetv 和 f@airresist 属性对对象的影响程度。
f@dragexp // 范围从 1 到 2,默认值在求解器上设置。用于角度和线性阻力。
v@force // 指定将施加到对象质心的力。
f@spinresist // 指定匹配目标角速度 (v@targetw) 的重要性。
v@targetv // 物体的目标速度。与 f@airresist 属性结合使用。
v@targetw // 物体的目标角速度。与 f@spinresist 属性结合使用。
v@torque // 指定将应用于对象的扭矩。

i@bullet_autofit_valid // 存储解算器是否已经计算碰撞形状属性。
i@bullet_sleeping // 跟踪对象是否已被解算器置于睡眠状态。
f@deactivation_time // 速度低于线性阈值或角度阈值的时间量。
i@found_overlap // 求解器使用它来确定是否执行了重叠测试。
i@id // 对象的唯一标识符。
i@nextid // 存储求解器将分配给下一个新对象的 i@id。

8、DOP RBD约束属性

几何体上的属性可自定义每个约束行为和类型。如果存在与约束属性(例如阻尼damping)同名的基本属性,则属性值将与约束子数据的值相乘。

s@constraint_name // 按名称指定一段关系数据,例如“Glue”或“Spring”。
s@constraint_type // 指定约束是否影响“位置”、“旋转”或“所有”自由度。
f@restlength // 指定要强制执行的约束的所需长度。
f@width // 每条边的宽度。
f@density // 每个点的密度。
p@orient // 每个点的初始方向。以四元数形式存储的值。
v@v // 每个点的初始速度。
v@w // 每个点的初始角速度,以弧度每秒为单位测量。
f@friction // 每个点的摩擦力。
f@klinear // 定义导线抵抗拉伸的强度。
f@damplinear // 定义导线抵抗拉伸力引起的振动的强度。
f@kangular // 定义电线抵抗弯曲的强度。
f@dampangular // 定义导线抵抗弯曲力引起的振动的强度。
f@targetstiffness // 定义导线抵抗动画位置变形的强度。
f@targetdamping // 定义导线抵抗拉伸力引起的振荡的强度。
f@normaldrag // 垂直于导线方向的拖动分量。
f@tangentdrag // 与导线相切方向的拖动分量。
i@nocollide // 禁用边缘的碰撞检测(仅在碰撞处理为 SDF 时使用)。
v@restP // 每个点的静止位置。
p@restorient // 每个点的静止方向。
i@gluetoanimation // 使点的位置和方向受到输入几何体的约束。
i@pintoanimation // 使点的位置受限于输入几何体。
v@animationP // 每个点的目标位置。
p@animationorient // 每个点的目标方向。
v@animationv // 每个点的目标速度。
v@animationw // 每个点的目标角速度。
i@independentcollisionallowed // 切换外部碰撞(仅限非 SDF 几何碰撞)。
i@independentcollisionresolved // 未解决的外部碰撞(仅限非 SDF 几何碰撞)。
i@codependentcollisionallowed // 切换软体碰撞(仅限非 SDF 几何碰撞)。
i@codependentcollisionresolved // 未解决的切换软体碰撞(仅限非 SDF 几何碰撞)。
i@selfcollisionallowed // 切换自碰撞(仅限非 SDF 几何碰撞)。
i@selfcollisionresolved // 未解决的切换自碰撞(仅限非 SDF 几何碰撞)。
i@propagate_rate // 指定碰撞产生的脉冲如何在约束网络中传播。
i@propagationiterations // 指定胶合的冲击传播迭代次数。

9、DOP FLIP属性

FLIP 求解器包含嵌入式 POP解算器,因此上面列出的所有 POP 属性都适用。

f@pscale // 粒子尺度
v@v // 粒子速度
f@viscosity // 流体的“厚度”。
f@density //单位体积的质量。
f@temperature // 流体的温度。
f@vorticity // 测量流体中的循环量。
f@divergence // 正值导致粒子散开,负值导致粒子聚集在一起。
v@rest // 用于跟踪流体随时间的位置。
v@rest2 // 用于混合双重休息属性,避免拉伸。
f@droplet // 识别与流体主体分离的颗粒。
f@underresolved // 网格上尚未完全解析的粒子。
i@ballistic // 指定流体求解将忽略的粒子。
v@Lx // 角动量 X 轴
v@Ly // 角动量 Y 轴
v@Lz // 角动量 Z 轴

10、DOP Vellum Point属性

//Vellum几何体也被视为粒子,因此上面列出的所有 POP 属性都适用。

i@isgrain // 值为 1 时,粒子表现为颗粒,值为 0 时,粒子表现为布料。
f@attractionweight // 粒子在接近时会自然粘在一起的程度,零会禁用结块。
f@friction // 静摩擦力的缩放比例。
f@dynamicfriction // 动摩擦缩放多少。
f@inertia // 粒子对旋转约束的阻力。如果为零,粒子将不会旋转。
v@v // 点速度。
p@w //(头发或电线)角速度。
p@orient //(头发或金属丝)方向。
i@stopped // 用于固定点(0=自由,1=无运动,2=无旋转,3=无旋转或移动)。
i@pintoanimation // 如果为 1,固定点的位置将更新以匹配目标点。
i@gluetoanimation // 如果为 1,则位置和方向都会更新
s@target_path // 任何引脚的目标路径(当 Target 参数在 Vellum Source 中设置时)
i@target_pt // 任何引脚的目标点编号(当Target 参数在 Vellum Source 中设置)
f@targetweight // 使用 0..1 权重值影响固定点的强度。
i@weld // 将此点焊接到一个点号。如果有@id属性,则指向一个点id。
i@branchweld // 当被迫分割点进行头发模拟时,由头发约束构建。
i@collisionweld // 根据需要生成,为缠结算法提供单个焊缝。
f@breakthreshold // 断裂焊缝和分支焊缝的阈值
s@breaktype // 'stretchstress'、'bendstress'、'stretchdistance'、'stretchratio' 或'bendangle'。

// 碰撞
f@pscale // 用于确定布料的厚度或每个粒子的半径。
f@overlap_self // 存储原始 pscale 的重叠量。
f@overlap_external // 存储原始 pscale 的重叠量。
i@layer // 表示属于不同的布料层。数字越大表示层数越高。
i@disableself // 值为 0 表示该点将使用自碰撞。
i@disableexternal // 值为 0 表示该点将使用外部碰撞。
s@collisionignore // 存储对象和碰撞组不发生碰撞的模式。
s@collisiongroup // 给出该点所属的碰撞组。

// 内部工作变量(保留以避免每帧删除/添加属性)
v@pprevious // 对于一阶积分,前一帧位置(时间步的开始)。
v@plast // 对于二阶积分,是前两帧的位置。
v@vprevious // 对于一阶积分,前一帧速度(时间步长的开始)。
v@vlast // 对于二阶积分,前两帧的速度。
p@orientprevious // 对于一阶积分,前一帧方向(时间步长的开始)。
p@orientlast // 对于二阶积分,前两帧的方向。
p@wprevious // 对于一阶积分,前一帧角速度(时间步长的开始)。
p@wlast // 对于二阶积分,前两帧的角速度。
f@dP // 约束位移。可能是最后一次迭代。
f@dPw // 约束权重。可能是最后一次迭代。
s@patchname // 标识模拟中生成的每个补丁,以便可以更新/替换它。
// 当点是压力约束的一部分时,这些属性保存在约束更新期间计算的值。
v@PressureGradient // 沿着最大体积增益方向向外指向的向量。
i[]@volumepts // 包含计算体积属性所需的点的数组。
i@volume // 与压力约束的剩余长度值进行比较。

11、DOP Vellum约束属性

约束有多种类型,因此这些变量的含义通常取决于约束类型。它们通常在primitive。

s@type // 约束的类型。
s@type = 'distance' // 显示几何图形中的每条边都转换为保持该边长度的距离约束。
s@type = 'stitch' // 使用距离约束将同一几何体中的点缝合在一起。这些点实际上不需要通过几何图形连接。这对于保持夹克闭合或防止口袋摆动很有用
s@type = 'branchstitch' //
s@type = 'ptprim' //
s@type = 'bend' // 每对三角形(或隐含三角形,如果输入为四边形或更高)创建一个保持三角形之间初始二面角的约束。'trianglebend' // 每对三角形(如果输入是四边形或更高,则为隐含三角形)都会创建一个约束,以维持三角形之间的初始二面角。
angle
tetvolume
pressure // 由 Define Pieces 参数确定的每个部件都存储其原始体积,并构建多点约束来维护它。执法是全球性的,因此压扁一个地方就会膨胀另一个地方,就像气球一样。
Attach, pin AttachNormal Pinorient Bendtwist StretchShear TetFiber Triarap Tetarap*
f@stiffness // 约束的刚度,控制约束拉动的强度。
f@restlength f@restlengthorig f@dampingratio // 评估约束时,阻尼通过释放能量来减少抖动。阻尼太大会导致约束无法得到满足。必须使用小于 1 的值。
f@stress // 约束所做工作的估计(由 Vellum 求解器更新)。
s@constraint_tag // 创建约束的节点的名称。

12、KineFX属性

KineFX 层次结构或骨架由多边形线连接的点的集合表示。层次结构中关节之间的父子关系由顶点顺序决定。

s@name // 关节名称属性
3@transform // 点的世界空间 3×3 变换(旋转、缩放和剪切)。
4@localtransform // 点相对于其父点的变换。
i@scaleinheritance // 确定点如何从其父点继承局部比例。

13、View port显示属性

覆盖viewport显示模式

i@gl_wireframe // 细节属性,强制线框 (1) 或阴影 (-1)
i@gl_lit // 细节属性,使用照明 (1) 或无照明 (0) 绘制
i@gl_showallpoints // 细节属性,均匀绘制点如果连接到几何体
f@vm_cuspangle // 细节属性,用于生成尖角法线的角度
i@gl_spherepoints // 细节属性,(1) 导致未连接的点绘制为球体
i@gl_xray // 细节属性,(1) 几何体即使隐藏在其他几何体后面也可见
v@Cd // 颜色漫反射
f@Alpha // 表面不透明度
v@N // 光照的表面法线
f@width // 曲线宽度
f@pscale // 如果不存在 pscale,则视口默认为 1.0,而 Mantra 默认为 0.1
s@spritepath s@shop_materialpath i@group__3d_hidden_primitives // 将图元添加到该组将它们从 3D 视口中隐藏
f@intrinsic:volumevisibledesired // 控制体积不透明度的原始内在属性。
f@volvis_shadowscale // 控制体积阴影强度的详细属性。

14、复制和实例化属性

当复制或实例化时,Houdini 会查找这些点属性来转换每个副本/实例。

p@orient // 副本的方向。
f@pscale // 统一比例。
v@scale // 非均匀缩放。
v@N // 正常(+Z 轴副本,如果没有 p@orient)。
v@up // 副本的向上向量(+副本的 Y 轴,如果没有 p@orient)。
v@v // 副本的速度(运动模糊),如果没有 p@orient 或 v@N,则用作 +Z 轴。
p@rot // 附加旋转(在上面的方向属性之后应用)。
v@P // 副本的翻译。
v@trans // 除了 v@P 之外,还翻译了副本。
v@pivot // 副本的本地枢轴点。
3@transform 或 4@transform // 变换矩阵覆盖除 v@P、v@pivot 和 v@trans 之外的所有内容。
s@shop_materialpath // 实例化对象使用此材质。
s@material_override // 将材质参数名称映射到值的序列化 Python 字典。
s@instance s@instancefile // 指示要实例化的几何体的文件路径。
s@instancepath // 实例的几何图形。这是磁盘上文件的路径或 op: 路径。

15、访问其它输入

此语法用于引用连接到争论输入的节点或网络中的其他节点。

// 'opinput:X' 是最清晰且始终有效的(第一个输入是输入 0)。
point( 'opinput:0' , 'P' , i@ptnum)
point( 'opinput:1' , 'P' , i@ptnum)
point( 'opinput:2' , 'P' , i@ptnum)
point( 'opinput:3' , 'P' , i@ptnum)

// 整数输入数(第一个输入为 0)。有些函数不支持此功能,但它很容易输入。
point( 0 , 'P' , i@ptnum)
point( 1 , 'P' ,, i@ptnum)
point( 3 , 'P' , i@ptnum)

// @OpInputX 也可以工作,但要小心,因为它不是基于 0 的,而是从 1 开始,这很令人困惑
point(@OpInput1, ' P' , i@ptnum)
point(@OpInput2, 'P' , i@ptnum)
point(@OpInput3, 'P' , i@ptnum)
point(@OpInput4, 'P' , i@ptnum)

// v@opinputX_* 从编号输入上的同一元素读取属性(第一个输入是输入 0)。
v@opinput0_P
v@opinput1_P
v@opinput2_P
v@opinput3_P

// 到其他节点的绝对路径和相对路径如下所示。
point('op:/obj/geo1/OUT', 'P', i@ptnum)
point('op:../../OUT', 'P', i@ptnum)

16、For循环元数据

详细属性,您可以通过“获取元数据”Block Begin 节点获取此信息。

i@numiterations // 预期的迭代总数

i@iteration // 当前迭代次数,始终从 0 开始,每次循环加 1。

f@value // 在分段循环中,这是属性的当前值

i@ivalue // 在简单重复中,这是 value 的整数版本。

你可能感兴趣的:(算法)