编辑超高规则文件
您可以通过以下方式访问此工具:
XML 超高
超高计算器使用 XML 格式的规则文件来计算超高的各方面值。这些文件可以计算线形的每条曲线的最大 E 率,以及将路基从标准路拱横坡旋转到全超高横坡(最大 E)所需的过渡长度。以下章节描述了 XML 文件的架构及其工作原理。
工作原理
如果用户选择 RateTable,则将通过查看速率表中存在的 DesignSpeedRateTable 填充设计速度。如果用户选择 RateEquation,则将使用等式下面速度集合中的速度元素填充设计速度选项。速度不必是简单的数值。例如,Michigan 标准的速度为 "60 Urban" 和 "Loop"。
如果用户要使用速度表执行过渡计算,则必须为每个可能的速度定义一个 TransitionTable。TransitionEquation 可以使用速度作为变量,也可用不使用。
用户完成选择且代码开始处理后,如果在 XML 文件中定义了任何 UserVariable,则会弹出一个对话框,允许用户更改这些值中的任何/全部。
然后代码开始处理每条曲线。处理了曲线的最大 E 率和过渡长度后,代码即会检查 XML 文件是否有任何 CustomKeyStation。如果是这样,它将予以处理。CustomKeyStation 允许添加超高桩号附加项(请参阅 MTO 1% 横坡要求),或调整标准超高关键桩号(请参阅 AR DOT 或 SC DOT)。注意:会为曲线条目 (NC - FS) 编写自定义关键桩号的等式。曲线出口过渡计算会自动镜像。
一旦对任何关键桩号进行了调整,代码即会查找 TransitionOverlapOption,并查看是否应对计算的桩号进行任何其他调整。
编写等式
编写等式时,有 3 种类型的变量可用。全局变量是由系统定义的或在处理期间计算的变量。局部变量在 XML 文件中的不同位置定义,并且可以标识为可变元素。这些变量用于 xml 文件的等式中,且在运行时用户无法对其进行更改。用户变量也在 XML 文件中定义。用户可以在运行时设置/更改这些变量,无需修改 XML 文件。它们在 XML 文件的 "UserVariables" 集合中定义。
下面是全局变量列表:
- MaxE 计算的全局变量:
- 可用于过渡计算的全局变量 - 包括以上所有变量加上:(请注意,标准桩号已计算,但可在此处更改)
- 用于过渡碰撞(重叠)的全局变量 - 尚未在 XML 中定义或编码:
- 以下数学函数也可用在等式中:
-
ABS, ACOS, ASIN, ATAN, CEILING, COS, COSH, FLOOR, LOOKUP, LOG, LOG10, MAX, MIN, MOD, ROUND, SIGN, SIN, SINH, SQRT, TAN, TANH, TRUNCATE
它们的数学值:FALSE, INFINITY, PI, TRUE
数学运算符:+、-、/、*、^ - 幂运算符、%
等式还支持以下形式的逻辑表达式:
"IF(logical expression)? execute if true : execute if false"
例如:equation="if(altDel == 0.0 and AltSuper == 0.0) ? Delta : altDel"
逻辑表达式也可以嵌套,因此另一个 IF 语句可以位于 true 和/或 false 执行语句内。
对于逻辑表达式,可以使用以下条件运算符:
<, <=, =, ==, >=, >, <>。在编写 XML 时需要注意,因为 "<" 和 ">" 是特殊字符,所以在原始 xml 中必须编写为 "<" 和 ">"。一些 xml 编辑器会为用户执行转换操作。
逻辑运算符:IF, AND, OR, NOT
有关如何使用等式的示例,请参阅示例 XML 文件。
-
XML 文件的主要元素
本部分介绍用于自定义计算的超高 XML 方案的顶级元素
- 单位 - 必需
定义计算和输出的单位。
属性:
- DefaultSettings – 可选
从廊道和 XML 输入文件创建超高时,这些设置用于设置超高选项(Apply Superelevation 命令的输入),这是一个自动过程。
属性:
- eSelection – 可选 - 将此值设置为要使用的 RateTable 或 RateEquation 的名称。无效值将导致使用列表中的第一个 RateTable/RateEquation。
- lSelection – 可选 - 将此值设置为 "Speed Table" 可使用过渡表。否则,将其设置为特定的过渡公式名称。无效值将导致使用列表中的第一项 (TranisitonTable/TransitionEqution)。
- designSpeed – 必需 - 输入有效的设计速度 (MPH/KPH)。
- pivotMethod – 必需 - 此时有效值为:Crown、Inside Edge、Outside Edge、Left Edge、Right Edge、Divided Inside或Centerline。如果在未划分的路面上使用Divided Inside,则将与使用Crown的情况相同。如果输入了无效值,则Crown将作为缺省值。Centerline始终使用基线线形半径计算 eRate。所有其他方法都使用半径 +/- 旋转轴的偏移来计算 eRate。
- UserVariables - 可选集合
它们变量可以在运行时由用户设置。支持以下类型。字符串、整数、小数和布尔值。字符串和整数可以有组合框列表(SelectionValue 元素)。整数和小数可以有最小和最大范围。如果变量名匹配 TransitionOption 或 RunoutOption 特性名,则会将该选项特性向用户公开。
这些元素的原因是允许代理锁定这些 XML 文件,以使它们无法编辑,但仍允许用户进行有限访问以更改值,或在超高创建过程中控制计算。
- MaximumERateCalculations - 必需
RateTable 和/或 RateEquation 的集合用于计算给定曲线半径的最大横坡。必须至少有一个 RateTable 或 RateEquation。
- TransitionCalculations - 必需
TransitionTable 和/或 TransitionEquation 的集合用于计算径流(ZeroCrossSlope 到 FullSuper)长度。必须至少有一个 TranstionTable 或 TransitionEquation。
- TransitionOptions - 必需
这些设置用于控制如何计算 ERate 和过渡的值。它们通常由设计机构的标准设置,但如果设计机构希望允许用户更改其中一个或多个值,则它们仍可以通过 UserVariable 公开给用户。
属性:- interpolateTables – 可选 - 如果为 true,则将内插所有 eRate 和过渡表。否则,eRate 和过渡长度值会较高。缺省值为 true。
- percentTransitionOnTangent – 必需 – 不在曲线上的过渡的百分比。限值 0% - 100% (0.0 – 1.0)
- useSpiralLength – 可选 - 如果为 true,则只要存在缓和曲线,即会将其用作过渡长度,而非计算的过渡。在这种情况下,将忽略 percentTransitionOnTangent 值。缺省值为 true。
- lengthsAreTotalTransition – 可选 - 如果为 true,则表长度将从标准路拱至全超高(径流 + 偏转长度)。如果省略,则缺省值为 false。
- transitionType – 可选 - 当横坡斜率有更改时,图中过渡的类型。允许的类型包括:
- nonLinearCurveLength – 可选 - 抛物线过渡的最大长度。如果给定长度超过点任一侧的切线长度,则此长度将减小。缺省值为 0。
- startInsideLaneRotationWithOutside – 可选 - 如果此标记设置为 true,则内侧车道将在外侧车道开始旋转的位置开始旋转(早期启动),而不是在外侧车道上的反向路拱点开始。
- RunourOptions - 可选
通过匹配超高过渡径流段的过渡段坡度确定标准偏转。这些值是对相应计算的简单替代。如果需要更复杂的功能,则使用 CustomKeyStation。
属性:
- CustomKeyStations - 可选
CustomKeyStation 或者是为超高计算的标准过渡桩号的替代,或者是要添加到车道的附加桩号。如果关键桩号的类型是标准类型(NormalCrown、ZeroCrossSlope、ReverseCrown 或 FullSuper)之一,则它将替换标准关键桩号。如果类型为自定义,则系统会将其添加到车道中。
属性:
- TransitionOverlaps - 可选
当从一条曲线退出的过渡与下一条曲线的开始过渡重叠时,这些选项用于修复碰撞。包含 ReverseCurveAdjustmentOption 和 CurveCurveAdjustmentOption 元素的列表。
- UserVariable - 可选,未绑定
这是一个可在运行时由用户编辑的变量。布尔类型显示为复选框。小数类型显示为字符串输入字段(将验证输入)。字符串和整数将显示为字符串输入字段,或者如果定义了一个或多个选择值,则将显示一个组合框。
UserVariable 可用于将 TransitionOption 或 RunoutOption 公开给用户以进行编辑,并允许等式访问该变量。为此,只需将 UserVariable 的名称特性设置为要公开的选项的名称。将忽略 UserVariable 的所有其他特性。例如,要公开 TransitionOptions->percentTransitionOnTangent,则设置 UserVariable name=percentTransitionOnTangent。该模式还要求设置类型和值特性(但会忽略它们),并会为用户提供一个字段,用于输入 0 和 1 之间的数。
可在 MI DOT 和 SC DOT 示例 xml 文件中查看 UserVariable 的示例。
- RateTable – 可选,未绑定
用于根据 designSpeed 和曲线的半径获取最大 E 率。每个允许的设计速度都有一个子表 (DesignSpeedRateTable)。
- RateEquation - 可选,未绑定
用于计算特定曲线的最大横坡的等式(最大 ERate)。
- TransitionTable
- TransitionEquation
- 变量
变量用于生成在等式中使用的中间值。变量本身可以由等式或表定义。如果使用表,则使用 inputVariableName 获取输出值。如果输入变量是数字,则将根据 interpolationType(useLowerBound、linearInterpolation、useUpperBound)内插输出值。否则,输入变量值必须与 TableEntry 的 inputValue 之一完全匹配。
- CustomKeyStation
- TransitionOverlapOptions
当一条曲线上过渡的终点之间的距离重叠,或太接近下一条曲线上过渡的起点时,将使用这些选项。如果某类型(反向曲线或曲线)有一个以上的选项,则代码将使用具有大于实际间隙的最小 minimumTransitionGap 的选项。例如,如果实际间隙为 0,且一个选项的 mTG 为 50,另一选项的 mTG 为 100,则它将应用 mTG 为 50 的选项。
新建 XML 命令
- 创建超高 XML
用于创建新的 XML 文件或编辑现有文件。将根据方案验证任何文件。配置变量 "CIVIL_XML_SUPERELEVATION_SCHEMA" 必须在 superelevation.xsd 文件中设置为点,验证才能生效。
键入命令 - "geometry superelevation xml edit"
XML 文件的提示,但如果将其留空,则将播种新的 XML 文件。
直接单击以继续。对话框的叶子对应于 xml 文件的顶级元素。- 普通叶子
用于设置长度单位(尚未实施精度)和 Apply Superelevation 命令的缺省值。
- 速率计算
用于通过导入 SEP 或 SUP 文件和速率等式创建速率表。AASHTO Method 5 已经准备就绪,可以进行创建,但用户也可以选择在这里创建自己的等式,或者在创建后直接将其添加到 xml 文件中。请注意,此编辑器将对比方案验证 xml 文件,并验证等式的语法。
- 过渡计算
工作原理与速率计算叶子相同。
- 变径选项
允许用户在 XML 文件中设置偏转和过渡选项。
- 自定义关键桩号
用户可以输入描述和条件,然后添加关键桩号。
- 用户变量
允许用户定义 UserVariable。
- 编辑等式
用户在编辑器中创建/编辑等式字符串时,他们可以使用插入按钮插入数学运算符、逻辑运算符或全局变量,或者也可以键入它们。
- 普通叶子
- 打开超高模型
用于在 MSTN 视图中直接打开可编辑的超高图。
键入命令:几何超高打开视图或从水平线形的浮动任务栏中进行选择
提示用户选择平面线形,然后选择视图以在其中打开模型。
用户可以使用操纵器直接编辑图表。