KANGAROO2学习 (本笔记为在根据原厂工程师的教学视频整理部分学习笔记,供各位网友学习交流 Class1.基本 运算器分为三大部分:约束力部分(目标)、主体运算器、辅助部分。 接入kangaroo的线必须为直线,用一个line接收器可以保证从rhino拾取进来的线为直线,避免后续错误。 null值是前面接进来的点控制约束,在接入主运算器前可以用Entwine来整理前端数据,再用explore tree 来整理后端输出的东西。养成一个好的数据管理习惯。 不给值的时候默认是维持原来长度,加上数值之后可以达成维持等长的效果。 在kangaroo2中,锚点实际上也是一个弹性约束力,只不过是值很大的弹性约束力,在kangaroo1中是理想点。 kangaroo2中,力的大小一般初始用默认值,调试时可以试试1-10范围内的值,不行再加大力度。而且当约束力的值越大时,其解算精度也会相应提高,导致运算速度变慢。在kangaroo2中力切记不要太大!!(锚点是个例外)当然,选用标准运算核心的时候还是影响不大。 物体受力变形导致长度约束不能跟原来一致。ps,当物体总长超出长度约束值总和时,结果必然超出约束值,但结果之间会趋于平均状态。 物体受力变形导致长度约束不能跟原来一致,因此可以通过调小重力的约束值来使得重力在形变完成后,不会对系统产生影响,从而能够实现先前的长度约束,但有一点要注意,调0的过程中需要较为缓和地调整,不然还是会产生惯性的畸变。 bouncy solver 弹性运算器,迭代的值就是计算多少次显示一次,越小过程更漫长。阻尼就是通过百分比来控制运算过程速度。这个运算器用来看计算过程不错,但是其结果输出的结果不太好,是一个拍平输出的结果,前端数据管理好的话其实也可以通过list length +slipt list 实现数据切割,还可以通过插件筛出。 tolerance接口是容差的意思,可以加大容差来弥补误差,但是还是最好让结构在结构点处重合比较好。 solver运算器的GoalObject端口只能接入经过约束力处理过的物体,要想输入可以用show运算器处理加入。solver运算器的输出端,I为运算次数,V为所有的点(点的运算是kangaroo核心算法),O为输出物件。
CLASS2.长度约束 OnPlane 将点固定到平面上。AnchorXYZ该运算器的强度值默认为1000,会导致解算精度变高,初始状态可将其先设置为1。XYZ输入的是布尔值。 MeshEdege运算器可以找出网格的边界和内部的线。 Edegelengths等同于下面经过MeshEdege拆解后再进行线的长度约束,但没有下面的灵活,有时候会通过边缘和内部线的不同程度约束达到更为灵活的效果。Edegelengths在整体控制时比较好用,他的LengthFactor端口是一个比例值,当需要曲面网格总是处于收缩状态时可以将其直接设为0。还有一个要注意的就是Edegelengths的强度值默认为1,length的强度值默认是10。 在对一个曲面进 行结构优化的时候,可以通过在其表面先找出uv点阵,经过约束力的运算之后,再通过Surface From Points重构成一个完整的曲面表面结构。ps:记得重构的uv要+1,这个运算器还可以拿来排点序。 MeshCorners运算器可以挑出网格的角点,其A端可以输入一个角度值,来判定要输出的角点。 这两个都是重力荷载的运算器下面少个方向,默认垂直向上。 NakedVertices可以找出曲面内部的点和边缘的点,l是点序,Pts是点。 首先用MeshEdege找出外边线,组合起来,再用SplitAtCorners在边缘线的角点出断开线段,达成分组的效果,其A端同样是角点的角度判定值。 OnCurve将点吸附到曲线上。 这个kangaroo2中的矩形网格转化成菱形网格的运算器,转化玩之后有缝,会导致网格内部有外露边缘。 这个时候可以用这个运算器来缝合这些裂缝。N端输入的缝合点数。R端输出结果。 但是之前的输出结果只是让点归在同个位置的结果,还是要使用这个焊接清理运算器来将整个网格修复好。 kangaroo2中网格细分的运算器,输入端L输入细分次数。 这里会出现一个突出去的点是因为原曲线是一个封闭曲线,在端点处首尾会有两个控制点叠加,因此剔除重复点之后就可以修复这种问题。ps:但其实教程中用到的这个运算器并不好,其运算量太大,可以直接用SplitList直接切掉第一个点,其运算速度可以大大加快,在gh中,最好使用一些较为直接的数据处理方式,而不是用大量的数据比对得出结果其运算速度会比较快。 refine细分的网格输出的结果是是个拍平的网格,ByParent输出的结果还是以之前的网格作为单元分面细分出来。但其对三角面的细分还是输出三角面的结果,若要使得三角面细分成四边面则要用wb的细分运算器。 一组点的刚体设置 MeshPipe是一个成网格管的运算器,但其有个问题就是生成的网格没有发现方向,可以用UnifyMesh来调整或者使用wb的网格细分。CustomPreview运算器可以设置显示材质,与rhino中同步。
塑性锚点运算器输入的L端和Strength端一般使用同一个值,从0.1开始调试,R端要输入一个复位按钮,复位按钮通常与解算器复位按钮用同一个。 风力输入端W是风力的大小和方向。ps:在kangaroo搭建模型框架的时候,先处理内力,再加入外力。力先用一开始的默认值调试。 等长约束运算器有个问题就是其长度是不明确的,当运算没有结果时,可能是因为运算到无穷远处,可以用弹性核心来看到这种现象,一般要搭配一个长度约束先让 运算收束,达到 稳定 状态之后再讲长度约束的力调成0,就能够实现等长约束的效果。 恒定的约束力运算器可以让相交在一个点上线有相同的约束力,以达到各个力的角度是恒定的效果。ps:比较少用,但其甚至能在三维空间形成角度稳态。 长度对齐约束力运算器可以规整线的长度,使其趋于一个整齐的比例值。 长度比例约束力运算器可以让前面的线和后面的线形成一定的比例关系。 塑性长度约束运算器可以使超出特定阈值之后的线的长度产生不可逆形变,这个运输器不好用。 固定长度约束运算器,这个运算器可以约束线的最小值和最大值。可以利用这个计算器来模拟出点碰撞的效果 这个运算器只知道Direction端不接入东西的时候可以将线归成横平竖直的体系。如果这里接入了非xy矢量,则要 搭配一个长度约束的运算器,不然运算结果将会瞬间崩溃。
|