展示视频: https://www.bilibili.com/video/BV1i7411U7Kk

该作品为我前不久所做,由于个人能力有限,无法继续压缩,dalao勿喷。

其结构为一个储存装置、一个三级递归活塞组和一对无痕处理用挡板,如图所示:

结构

关门时,挡板打开,上方活塞将顶部玻璃瞬推推出,接着侧面储存活塞将玻璃推出,然后使用一个二级递推将两排玻璃推动到位,挡板关闭,至此关门完成。
开门时,挡板打开,活塞二级递归收回第一排玻璃,侧面储存活塞将其收回至储存位,接着活塞三级递归将第二排玻璃收回,挡板关门,至此开门完成。

以上是根据玻璃的移动情况直接设置的时序,但该时序并非最优方案,直接对其布线可能造成线路无规律和冗余,对体积的影响也非常大。

事实上,不难发现,关门和开门的第一步都是挡板打开,而之后的时序中都包含活塞向上推2格的动作且关门后储存位为空。因此,如果我们统一使用完整的二级递归并采用短脉冲来完成关门时推到地面上方第一格的位置,那么关门全过程和开门的第一次收回可以使用完全相同的时序!此时,关门会出现一个最上面活塞运行的多余动作,开门则会出现储存位和第一排活塞第一次运行的多余动作,但对门的运作没有任何影响。

开门时,只需单独设置一个侧边储存收回第一排玻璃和一个三级递归收回第二排玻璃的线路,而三级递归单独的时序运行完后会直接变成二级递归,二级递归的时序在之前已经设置好了!因此,我们只需将三级递归的剩余部分接到二级递归,最后调节挡板关闭时间即可完成开门全过程。

综上,这个门关门和开门的前半部分的时序完全一致,同时又自带一个可多次利用的二级递归,因此时序量非常小,这也给压缩体积提供了巨大可能。

至于如何在开关门时运行相同的时序,使用按钮作为开关即可。对于开门时单独运行的部分,使用t触发设置成第2n次运行,第(2n-1)次不运行是再好不过的方案,如图为门中使用的t触发,由2个投掷器和2个漏斗组成:

t触发

对于挡板的控制,巧用bud即可,因为挡板关闭一定位于二级递归后,所以只需将其接在二级递归完成的位置,如图品红色部分为挡板控制:

挡板控制

以上就是本文的全部内容,因时间仓促,讲解可能不是很详细,见谅。

1 对 “320b版2×2墙面下吸玻璃门时序讲解”的想法;

发表评论