控制#

等待#

等待块用于等待特定的时间,然后再移动到下一个块。

包含等待 1 秒块的 VEXcode 代码块#
等待 (1) 秒

选择等待的时间。

等待块可以接受小数、整数或数字块。

在此示例中,6 轴臂的磁铁拾取工具将用于拾取物品,然后在 1 秒后放下该物品。

当开始
[Set the Arm and effector to Magnet and engaged.]
设定 [手臂 v] 末端执行器为 [magnet v]
设定 [手臂 v] 磁铁为 [engaged v]
[Move the Arm lower on the z axis to the object to pick it up.]
移动 [手臂 v] 到位置x:(120) y:(0) z:(5) [毫米 v] ▶
[Move the Arm higher on the z axis to move the object.]
移动 [手臂 v] 到位置x:(120) y:(0) z:(100) [毫米 v] ▶
[Drop the item after 1 second.]
等待 (1) 秒
设定 [手臂 v] 磁铁为 [released v]

重复#

重复 C 块用于将其中包含的块重复一定次数。

包含重复 10 块和结束块的 VEXcode 块代码堆栈#
重复 (10)
结束

首先输入一个值来指示堆栈将重复其中包含的块的次数。

Repeat C 块可以接受整数或数字块。

C 代码块也可以嵌套在一起。这种概念称为嵌套,它有助于在编写不同行为的程序时节省时间。

在此示例中,手臂将连续两次在 z 轴上移动 -20 毫米。

包含重复 2 块和结束块的 VEXcode 块代码堆栈#
当开始
[Move -20 mm on the z axis twice in a row.]
重复 (2)
[手臂 v] 位置递增x:(0) y:(0) z:(-20) [毫米 v] ▶
结束

永远#

永远 C 块用于永远重复其中包含的任何块。

包含永久块和结束块的 VEXcode 块代码堆栈#
永久循环
结束

将块放置在永远 C 块中以使这些动作永远重复。

您可以通过在里面放置一个中断块来退出永久 C 块。

C 代码块也可以嵌套在一起。这种概念称为嵌套,它有助于在编写不同行为的程序时节省时间。

在此示例中,代码将持续检查 6 轴机械臂是否可以在 x 轴上移动 +20 毫米。如果 6 轴机械臂可以移动该距离,则会广播一条消息,指示其移动该距离。

包含永久块和结束块的 VEXcode 块代码堆栈#
当开始
永久循环
[Continuously check if the Arm can move +20 mm on the x axis.]
如果 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?> 那么
[Every time the 6-Axis Arm can move, broadcast the message.]
广播 [arm_can_move v]
结束
结束
当我收到 [arm_can_move v]
[When the message is received, move the Arm +20 mm on the x axis.]
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶

如果那么#

如果布尔条件报告“True”,则使用If then C 块运行内部块。

包含 if then 块和 end 块的 VEXcode 块代码堆栈#
如果 <> 那么
结束

If then C 块只会检查一次布尔条件。

如果布尔条件报告“True”,则 C 块内的块将运行。

如果布尔条件报告“False”,则将跳过 C 块内的块。

如果那么 C 块可以接受六边形(六边形)块作为其条件。

在此示例中,代码将持续检查 6 轴机械臂是否可以在 x 轴上移动 +20 毫米。如果 6 轴机械臂可以移动该距离,则会广播一条消息,指示其移动该距离。

包含 if then 块和 end 块的 VEXcode 块代码堆栈#
当开始
永久循环
[Continuously check if the Arm can move +20 mm on the x axis.]
如果 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?> 那么
[Every time the 6-Axis Arm can move, broadcast the message.]
广播 [arm_can_move v]
结束
结束
当我收到 [arm_can_move v]
[When the message is received, move the Arm +20 mm on the x axis.]
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶

如果 那么 其他#

If then else C 块用于根据报告的布尔值运行 if then else 的第一部分或第二部分内的块。

包含 if then else 块的 VEXcode 块代码堆栈#
如果 <> 那么
否则
结束

If then else C 块只会检查一次布尔条件。

如果布尔条件报告“True”,则if部分内的块将会运行。

如果布尔条件报告“False”,则将运行else部分内的块。

If then else C 块可以接受六边形(六边形)块作为其条件。

在此示例中,代码将持续检查 6 轴臂是否可以在 x 轴上移动 +20 毫米。如果 6 轴臂可以移动该距离,则会广播一条消息以移动该距离。如果 6 轴臂无法移动该距离,则会将一条消息打印到打印控制台。

包含 if then else 块的 VEXcode 块代码堆栈#
当开始
永久循环
如果 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?> 那么
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶
否则
在控制台上打印 [Arm can no longer move +20 mm on the x axis.]▶
结束
结束

如果 则 否则 如果 则 否则#

If then else if then else C 块用于运行 If then else if then else C 块中第一组内部块内的块,其中条件返回“True”。

VEXcode 块代码堆栈包含一个 if then 块、一个 else if then 块和一个 else 块。#
如果 <> 那么
否则如果 <> 那么
否则
结束

If then else if then else C 块只会检查一次布尔条件。

如果布尔条件报告“True”,则if部分内的块将运行。

如果布尔条件结果为“False”,则If then else if then else C 代码块将检查else if行的第一行。对于每一行else if,该代码块将检查布尔条件结果是否为“True”。如果结果为“True”,则该行正下方的内部代码块将运行,然后再继续执行If then else if then else C 代码块下的下一个代码块。

如果 else if 行的所有布尔条件都报告“False”,则将运行 else 部分内的块。

If then else if then else C 块可以接受六边形(六边形)块作为其条件。

要添加另一个 else if 条件,请点击 else 行上的 +。这会在当前列表底部添加一个新的 else if 条件。

要移除 else if 条件,请点击 else 行上的 -。这将移除最后一个 else if 条件行,但不会删除该条件中已使用的任何代码块。

在此示例中,代码将持续检查 6 轴机械臂是否可以在 x 轴上移动 +20 毫米。如果 6 轴机械臂可以移动该距离,则会广播一条消息以移动该距离。如果 6 轴机械臂无法移动该距离,则会检查其是否可以在 y 轴上移动 +20 毫米,如果可以则执行此操作。6 轴机械臂将继续移动,直到无法移动为止,然后打印一条消息。

VEXcode 块代码堆栈包含一个 if then 块、一个 else if then 块和一个 else 块。#
当开始
永久循环
如果 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?> 那么
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶
否则如果 <[手臂 v] 位置增加x:(0) y:(20) z:(0) [毫米 v]?> 那么
[手臂 v] 位置递增x:(0) y:(20) z:(0) [毫米 v] ▶
否则
在控制台上打印 [Arm can no longer move +20 mm on the x or y axes.]▶
结束
结束

等到#

等待直到块用于等待布尔块报告“True”后再移动到下一个块。

包含等待块的 VEXcode 块代码堆栈#
等到 <>

等待直到块将重复检查布尔报告块,并且直到布尔报告块报告“True”时才会移动到下一个块。

等待直到布尔块可以接受六边形(六边形)形状的块。

在此示例中,6 轴臂将沿 z 轴向下移动,并且一旦 6 轴臂的位置低于 z 轴上的 20 毫米,就会将磁铁拾取工具设置为接合。

包含等待块的 VEXcode 块代码堆栈#
当开始
设定 [手臂 v] 末端执行器为 [magnet v]
移动 [手臂 v] 到位置x:(120) y:(0) z:(5) [毫米 v] ◀ 并且不等待
等到 <([手臂 v] [z v] 位置 [毫米 v] :: custom-arm) [math_less_than v] (20)>
设定 [手臂 v] 磁铁为 [engaged v]

重复直到#

重复直到 C 块用于重复内部的块,直到布尔条件报告“True”。

包含重复直到块的代码的 VEXcode 块堆栈#
重复直到 <>
结束

重复直到 C 块只会在每个循环开始时检查布尔条件。

如果布尔条件报告“False”,则块内的块将运行。

如果布尔条件报告“True”,则将跳过块内的块。

“重复直到” C 块可以接受六边形(六边形)块作为其条件。

在此示例中,6 轴臂将沿 x 轴增量移动 +20 毫米,直到无法再移动该距离。

包含重复直到块的代码的 VEXcode 块堆栈#
当开始
重复直到 <非 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?>>
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶
结束

尽管#

While C 块用于在布尔条件报告“True”时重复内部的块。

包含 while 块的 VEXcode 块代码堆栈#
当 <>
结束

While C 块只会在每个循环开始时检查布尔条件。

如果布尔条件报告为“True”,则块内的块将运行。

如果布尔条件报告为“False”,则块内的块将被跳过。

While C 块可以接受六边形(六边形)块作为其条件。

在此示例中,6 轴臂将移动到坐标 (200, 200, 100),并且每 0.25 秒打印一次其 x 位置,因为 6 轴臂会移动。

包含 while 块的 VEXcode 块代码堆栈#
当开始
移动 [手臂 v] 到位置x:(200) y:(200) z:(100) [毫米 v] ◀ 并且不等待
当 <非 <[手臂 v] 已结束?>>
在控制台上打印 ([手臂 v] [X v] 位置 [毫米 v] :: custom-arm)◀ 并设定光标为下一行
等待 (0.25) 秒
结束

休息#

Break 块用于立即退出重复循环。

包含断块的 VEXcode 块代码堆栈#
退出循环

当添加到重复的 C 块时,Break 块将退出其当前所在的循环。

在此示例中,6 轴机械臂将不断检查是否可以在 x 轴上增量移动 +20 毫米,直到无法移动为止。一旦 6 轴机械臂无法再增量移动该距离,它将跳出循环并移动到坐标 (120, 0, 100)。

包含断块的 VEXcode 块代码堆栈#
当开始
永久循环
如果 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?> 那么
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶
结束
退出循环
结束
移动 [手臂 v] 到位置x:(120) y:(0) z:(100) [毫米 v] ▶

停止项目#

停止项目块用于停止正在运行的项目

包含停止项目块的 VEXcode 块代码堆栈#
停止程序

在此示例中,6 轴机械臂将持续检查其是否能够在 x 轴上以 +20 毫米的增量移动,直至无法移动。一旦 6 轴机械臂无法再以该增量移动该距离,项目将停止。

包含停止项目块的 VEXcode 块代码堆栈#
当开始
永久循环
如果 <[手臂 v] 位置增加x:(20) y:(0) z:(0) [毫米 v]?> 那么
[手臂 v] 位置递增x:(20) y:(0) z:(0) [毫米 v] ▶
结束
停止程序
结束