> For the complete documentation index, see [llms.txt](https://manual-2.karamba3d.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual-2.karamba3d.com/chinese_2_0_0/troubleshooting/4.3.-miscellaneous-problems/4.1.5-definitions-and-components.md).

# 4.1.5: 定义与运算器

## 如果运算器变成红色

如果某些Karamba3D运算器变成红色，请保持镇定。仔细阅读报错信息。报错信息通常会包含更多帮助信息。

## 如果“Analyze（分析）”运算器报告了动态结构，请执行以下操作：

这通常意味着系统是动态的，模型的各个部分能够自由移动而不会产生变形。 请执行以下操作：

* 检查支撑件，以检测被遗忘的支撑条件。
* 检查是否定义了旋转支撑旁的铰链，以确保被支撑的节点可以自由移动。
* 将模型接入本征模运算器。第一个本征模将会是用户忘记修复的刚体模式。在执行此操作之前，请不要忘记保存模型：大型模型的运算可能会需要很长时间。
* 如果前几个本征模态似乎显示出未变形的结构，则系统中可能存在围绕其纵轴旋转的梁。尝试&#x5728;**“ModelView（模型视图）”**&#x8FD0;算器中启&#x7528;**“Local Axes（局部轴）”**，移动滑块缩放变形以进行检测。
* 通过激活桁架的弯曲刚度将其变成梁（设&#x7F6E;**“Bending（弯曲）”**&#x4E3A;“True”）。请注意，节点必须由至少三个不在一个平面中的桁架固定。
* 请记住，桁架没有扭转或弯曲刚度，因此，不能将相应的旋转固定在连接到同一节点的梁上。
* 检查元素的面积、高度或杨氏模量是否为零。

## “StackedStitch（堆叠缝合）”运算器渲染对角线重叠的结构

梁的集合有其方向性。用户可能会误使用反方向的梁的集合。

## 预定义位移无效

检&#x67E5;**“PreDisp（预定义位移）”**&#x8FD0;算器&#x7684;**“Conditions（条件）”**&#x90E8;分中是否禁用了正确的自由度。

## “ModelView（模型视图）” 运算器始终同时显示所有荷载工况

如&#x679C;**“ModelView（模型视图）”**&#x8FD0;算器对下拉列表中针对荷载工况所做选择没有反应，请检&#x67E5;**“ResCase”**&#x8F93;入端口中的值。请记住，其值应添加到在下拉列表中选择的结果案例索引。如果总和为负值，将显示所有荷载工况。

## “View（视图）” 运算器未显示渲染后的网格面（应力、应变）、支撑件等

检查Grasshoppers解决方案菜单中是否启用&#x4E86;**“Shaded Preview（阴影预览）”**。

## “ModelView（模型视图）”运算器无法显示任何标签

检查Rhino背景颜色是否设置为黑色。某些类型的标签显示为黑色，因此，无法在黑色画布上显示。可在“karamba.ini”文件中更改文本颜色（请参阅第[4.1.6](/chinese_2_0_0/troubleshooting/4.3.-miscellaneous-problems/4.1.6-changing-karamba.ini-file.md)节）。

## 圆形断面在渲染时显示为平整条纹

&#x5C06;**“ModelView（模型视图）”**&#x8FD0;算器&#x7684;**“Faces/Cross section（面/断面）”**&#x6ED1;块设置为大于2的值，使其显示结果充分符合对光滑度的预期值。

## 使用旧版本Karamba3D保存的定义在加载时出现错误消息

在基于旧版本Karamba3D加载定义时，程序会弹出一个窗口，通知用户“IO generated x messages, . . .”，通常可以忽略这一提示。但是，太旧版本的Karamba3D运算器可能会导致无法加载定义。在这种情况下，请使用当前版本进行替换。弃用版本在其放大的图标上会标有“old（旧）”的符号。

## 旧定义中的运算器报告运行错误

在某些运算器上，输入端口的顺序会随时间而变化（&#x5982;**“Assemble（模型构建）”**&#x8FD0;算器）。它们在加载时会变为红色，并且运行时错误消息将会指出，一个对象不能被强制转换为其他对象。在这种情况下，可将旧运算器替换为新运算器并相应地重新连接输入端口。

## “Optimize Cross Section（优化断面）” 运算器无效

用户应确保要优化的梁截面与需要选择的梁隶属于同一系列。

## “Optimize Cross Section（优化断面）” 运算器反馈错误结果

增&#x52A0;**“ULSIter”**&#x548C;**“DispIter”**&#x8F93;入端口上的值。横截面优化算法是一个迭代过程。 如果用户停止得过早（将最大迭代次数限制在一个很小值内），该算法将无法收敛，从而反馈看似错误的结果。应注意始终检查组件&#x7684;**“Info（信息）”**&#x8F93;出以获取有关解决过程的信息。

## 将NURBS曲线或折线作为梁

Karamba3D&#x5C06;**“LineToBeam”**&#x8FD0;算器中的线输入识别为一条连接起点和终点的直线。当用户使用从Rhino或grasshopper定义中引用的NURBS曲线（控制点超过2个且曲线度大于1）时，必须先将它们离散并转化为线元素。使&#x7528;**“Rebuild（重建）”**&#x547D;令或运算器可以轻松地将曲线转换为折线。在将折线插&#x5165;**“LineToBeam”** 运算器之前，应确保将其拆分成独立的线元素。
