Mengalihkan#

Perkenalan#

Blok Switch membantu siswa beralih dari pengkodean berbasis blok ke pengkodean berbasis teks. Dengan blok Switch, siswa dapat mengetik kode Python langsung di dalam proyek blok — menulis perintah, kondisi, nilai, atau definisi fungsi — sambil tetap membangun bagian proyek lainnya dengan blok. Blok individual juga dapat dikonversi menjadi perintah Python yang setara.

Untuk mempelajari cara mengetik perintah, metode, dan operator Python, lihat VEX CTE Python API.

Karena blok Switch berisi kode Python, ejaan, tanda baca, dan indentasi harus benar agar proyek dapat berjalan sesuai harapan.

Berikut adalah daftar semua blok Switch:

Ganti blok — Tambahkan kode Python ke proyek Blok.

  • Stack — Menyediakan ruang untuk mengetik perintah Python yang dijalankan secara berurutan dengan blok stack lainnya.

  • Blok C — Menyediakan ruang untuk mengetik kode kontrol Python, seperti pernyataan if, while, atau for.

  • C Expandable — Menyediakan ruang untuk mengetik kode kontrol Python dengan banyak percabangan, seperti if, elif, atau else.

  • Boolean — Menyediakan ruang untuk mengetik kode Python yang mengembalikan True atau False.

  • Reporter — Menyediakan ruang untuk mengetik kode Python yang mengembalikan nilai.

  • Topi — Menyediakan ruang untuk mendefinisikan fungsi Python.

Tumpukan#

Blok Stack menyediakan ruang untuk mengetik perintah Python yang dijalankan secara berurutan dengan blok stack lainnya.

Blok tumpukan#
[] :: custom-switch

Sebuah blok Stack dapat berisi satu baris atau beberapa baris kode Python.

Saat dijalankan, menggunakan blok Stack untuk menggerakkan Lengan 6-Axis ke suatu posisi.#
saat dimulai :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch

Blok C#

Blok C menyediakan ruang untuk mengetik kode kontrol Python, seperti pernyataan if, while, atau for Blok yang ditempatkan di dalam Blok C akan dijalankan sebagai bagian dari struktur kontrol Python tersebut.

Blok C#
if [] :: custom-switch
selesai

Kode kontrol Python yang dapat digunakan dalam Blok C meliputi:

Saat dijalankan, program menggunakan Blok C untuk memeriksa apakah Lengan 6-Axis dapat mencapai suatu posisi.#
saat dimulai :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
cetak [The 6-Axis Arm can't move to this position.] di konsol ◀ dan atur kursor ke baris berikutnya
selesai

C Dapat Diperluas#

Blok C Expandable menyediakan ruang untuk mengetik kode kontrol Python dengan banyak percabangan, seperti if, elif, atau elsePercabangan tambahan dapat ditambahkan dengan memilih tanda panah plus.

Blok yang dapat diperluas C#
if [] :: custom-switch-expand
selesai

Kode kontrol Python yang dapat digunakan dalam blok C Expandable meliputi:

Saat dijalankan, program menggunakan blok C Expandable untuk memeriksa apakah Lengan 6-Axis dapat mencapai suatu posisi.#
saat dimulai
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
cetak [The 6-Axis Arm can't move to this position.] di konsol ◀ dan atur kursor ke baris berikutnya
else [else:] :: custom-switch-expand
cetak [The 6-Axis Arm can move to this position.] di konsol ◀ dan atur kursor ke baris berikutnya
selesai

Boolean#

Blok Boolean menyediakan ruang untuk mengetik kode Python yang mengembalikan nilai True atau False. Blok ini dapat ditempatkan di dalam blok dengan input heksagonal.

Blok Boolean#
<[] :: custom-switch>

Blok Boolean dapat berisi kondisi Python.

Blok Boolean dengan kondisi Python#
<[bumper_a.is_pressed()] :: custom-switch>

Blok Boolean juga dapat menggunakan operator logika:

Blok Boolean dengan operator logika Python#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Blok Boolean dapat menggunakan operator perbandingan untuk membandingkan nilai:

  • Lebih besar dari: >

  • Kurang dari: <

  • Sama dengan: ==

  • Operator perbandingan lainnya termasuk <=, !=, dan >=

Blok Boolean dengan operator perbandingan Python#
<[drivetrain.get_heading()> 100] :: custom-switch>
Saat dijalankan, program menggunakan blok Boolean untuk memeriksa apakah Lengan 6-Axis dapat mencapai suatu posisi.#
saat dimulai
[Check if the 6-Axis Arm can move to a position.]
jika <bukan <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> maka
cetak [The 6-Axis Arm can't move to this position.] di konsol ◀ dan atur kursor ke baris berikutnya
selesai

Reporter#

Blok Reporter menyediakan ruang untuk mengetik kode Python yang mengembalikan nilai. Blok ini dapat ditempatkan di dalam blok dengan input melingkar.

Blok reporter#
([] :: custom-switch)

Blok Reporter dapat berisi kode Python yang mengembalikan suatu nilai.

Blok pelapor dengan kode Python yang mengembalikan nilai.#
([arm.get_y()] :: custom-switch)

Operator matematika dapat digunakan dalam blok Reporter:

  • Penambahan: +

  • Pengurangan: -

  • Pembagian: /

  • Perkalian: *

Blok reporter dengan tambahan Python#
([arm.get_y() + 45] :: custom-switch)
Saat dijalankan, akan mencetak posisi y saat ini ketika Lengan 6-Axis bergerak.#
saat dimulai
[Display the current y-position while the 6-Axis Arm moves.]
gerakkan [lengan v] ke posisi x:(-100) y:(200) z:(100) [mm v] ◀ dan jangan tunggu
ulangi sampai <[lengan v] selesai bergerak?>
cetak ([arm.get_y()] :: custom-switch) di konsol ◀ dan atur kursor ke baris berikutnya
tunggu [0.25] detik
selesai

Topi#

Blok Topi menyediakan ruang untuk mendefinisikan fungsi Python. Blok yang terpasang di bawah Topi menjadi isi dari fungsi tersebut.

Batang untuk topi#
[] :: hat custom-switch

Ketik definisi fungsi Python di dalam blok Hat. Parameter diletakkan di dalam tanda kurung. Jika fungsi tidak menggunakan parameter, gunakan tanda kurung kosong.

Blok topi dengan definisi fungsi Python#
[def function_name(parameter):] :: hat custom-switch
Saat dijalankan, menggunakan blok Hat untuk mendefinisikan dan memanggil sebuah fungsi.#
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
tambah posisi [lengan v] sebesar x:[0] y:[100] z:[0] [mm v] ▶

saat dimulai :: hat events
[increment_y_100()] :: custom-switch