9/02/2022
подпрограмма и макрос ЧПУ
8/22/2022
Типы сверления АРХИВ
Цикл сверления с шагом G83 выполняет операцию сверления за несколько шагов, этот метод делает глубокое сверление простым и экономичным.
Подача при резании выполняется прерывисто до дна отверстия, пока удаляется стружка.
Поскольку сверление выполняется до дна отверстия с подачей в несколько небольших шагов, каждый раз
Примеры G коды Архив
Примеры учебных пособий по программированию ЧПУ Коды G и M для станков с ЧПУ от начального до продвинутого уровня.
8/20/2022
Типы сверления с использованием G кода.
Подача при резании выполняется прерывисто до дна отверстия, пока удаляется стружка.
Поскольку сверление выполняется до дна отверстия с подачей в несколько небольших шагов, каждый раз
Полный список G-кодов (Complete G Code List)
Программирование на ЧПУ (CNC) Коды G и M
Примеры учебных пособий по программированию ЧПУ Коды G и M для станков с ЧПУ от начального до продвинутого уровня.
8/12/2022
Котлин. Торт и свечи
Всего вы создадите три функции для рисования слоеного пирога со свечами.
Вы будете использовать a repeat()внутри другого repeat(), создавая так называемый «вложенный цикл».
То, как вы создадите этот код, — это то, как вы можете создать любую программу, начиная с общей картины и добавляя детали. Это называется «развитие сверху вниз».
Инструкции для этой практики не такие подробные, и вы можете обратиться к готовому коду, если застряли.
Котлин. Открытка "С днем рождения"
Создайте свое первое приложение для Android на Kotlin
8/11/2022
Открытка "С днем рожения" аргументы, функции
fun main() {
printBorder()
println("Happy Birthday, Jhansi!")
printBorder()
}
fun printBorder() {
repeat(23) {
print("=")
}
println()
}
- Запустите свой код. Вывод должен быть таким же, как и раньше, но на этот раз вы смогли создать границу, указав символ «=» только один раз!
======================= Happy Birthday, Jhansi! =======================
Используйте аргументы, чтобы изменить границу
Что, если вы хотите создать границы, которые используют разные символы, такие как приведенные ниже?
%%%%%%%%%%%%%%%%%%%%%%%%%%
:::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::
Вы можете определить отдельную функцию для каждого из этих различных символов. Однако есть более эффективный способ сделать это. Вы можете повторно использовать уже написанную функцию и сделать ее более гибкой, чтобы она работала для разных типов символов.
Отличительной чертой функций является то, что вы можете вводить в них данные, используя аргументы. Вы кратко столкнулись с этим в предыдущей кодовой лаборатории, когда знакомились с main(). На этом шаге вы добавите аргумент в printBorder()функцию, чтобы она могла печатать любой шаблон границы, который вы указали.
- В
main()верхней части создайте переменную с именемborderдля шаблона границы. Это будет содержать текст, который будет повторяться для границы.
val border = "%"
- Теперь передайте эту
borderпеременную в оба вызоваprintBorder()функции в качестве аргумента. Вы делаете это, помещаяborderв круглые скобки(), как если бы вы вводили текст дляprintln()печати.
Ваша main()функция должна выглядеть как код ниже.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
Функция printBorder()возьмет это значение borderв качестве входных данных и выяснит, как распечатать всю границу.
- Запустите свой код. Ваш код не выполняется, и вместо этого вы видите значки ошибок рядом с вашим кодом.

- Посмотрите на панель вывода, и там сообщение об ошибке.
Как и раньше, в сообщении указывается, где находится ошибка, и дается подсказка, что это может быть. Важная часть: Too many arguments for public fun printBorder(). Вы вызываете printBorder()функцию и передаете границу в качестве входных данных. Однако printBorder()в данный момент определение функции не принимает никаких входных данных.
- Исправьте эту ошибку, добавив аргумент границы в
printBorder()определение функции. См. первую строку кода, как показано ниже.
fun printBorder(border: String) {
repeat(23) {
print("=")
}
println()
}
- Обратите внимание, что имя аргумента
border. - После имени ставится двоеточие
: - и слово
String, которое является описанием того, какого рода или типа аргумент это.
A String— это фрагмент текста, состоящий из символов, заключенных в кавычки. Вы можете думать об этом как о бусинах, выстроенных в линию, чтобы сформировать ожерелье, как символы, выстроенные в линию, чтобы сформировать слова и текст. Указание того, что аргумент должен быть a, Stringпомогает системе обеспечить, чтобы ваш аргумент был текстом, а не, например, числом.
- Запустите свой код. Функция
printBorder()теперь принимает границуStringв качестве входных данных. И код вmain()вызовахprintBorder(border)сborderаргументом. Ваш код должен работать без ошибок. - Посмотрите на вывод вашей программы в консоли , и она все еще показывает ту же границу, что и раньше?
======================= Happy Birthday, Jhansi! =======================
Это не предполагаемое поведение! Вы попытались сделать рамку с символом "%", но программа все еще печатает рамку с символом "=". На следующих шагах вы узнаете, почему это происходит.
- В редакторе обратите внимание на серый восклицательный знак. Этот значок указывает на предупреждение. Предупреждения — это проблемы с вашим кодом, на которые вам нужно обратить внимание, но они не мешают вашему коду работать.

- Наведите указатель мыши на восклицательный знак, и появится сообщение. В нем говорится, что
"Parameter 'border' is never used."это предупреждение объясняет проблему с выходом. Вы передаете в функцию новую строку для границы, но не используете ее для печати. - Измените
printBorder()функцию, чтобы использовать переданныйborderвместо печати "=". Это работает точно так же, как если быborderэто была переменная, которую вы определили внутри функции!
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
- Запустите свой код еще раз. Вывод должен выглядеть так, как показано ниже.
%%%%%%%%%%%%%%%%%%%%%%% Happy Birthday, Jhansi! %%%%%%%%%%%%%%%%%%%%%%%
Отличная работа, вы решили проблему! Вот ваш готовый код.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
Вы сделали printBorder()функцию намного более гибкой, не добавляя много кода. Теперь вы можете напечатать рамку из разных символов с небольшим изменением.
- [Необязательно] Изменив всего одну строку кода в
main()функции, как вы будете печатать такие баннеры ко дню рождения?
*********************** Happy Birthday, Jhansi! ***********************
::::::::::::::::::::::: Happy Birthday, Jhansi! :::::::::::::::::::::::
Измените функцию, чтобы она имела два аргумента
Что делать, если вы хотите использовать другой шаблон длиной более 1 символа, скажем, "'-._,-'". Вы не стали бы повторять этот шаблон 23 раза, так как это было бы слишком долго. Вы могли бы повторить это, может быть, 4 раза. Для этого вы можете изменить количество повторений в repeat()операторе printBorder(). Тем не менее, вы можете сделать что-то лучше!
Вы можете определить более красивую границу на основе двух вещей:
- Шаблон для повторения (который вы уже сделали)
- Количество раз, которое вы хотите повторить шаблон
Вы можете создать переменные для каждого шаблона и количества повторений, а затем передать обе части информации в printBorder()функцию.
- В
main()измените границу, чтобы она была"'-._,-'"узором.
val border = "`-._,-'"
- Запустите свой код и обратите внимание, что шаблон стал слишком длинным.
- В
main(), под определениемborder, создайте новую переменную с именемtimesToRepeatколичества повторений. Установите его значение на 4.
val timesToRepeat = 4
- В
main(), при вызовеprintBorder()добавьте количество повторений в качестве второго аргумента. Разделите два аргумента запятой.
printBorder(border, timesToRepeat)
Теперь main()функция должна выглядеть так:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println("Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
Как и прежде, этот код выдает ошибку, потому что у вас вызывается больше аргументов, printBorder()чем в определении printBorder().
- Исправьте
printBorder(), чтобы также принимать количество повторений в качестве входных данных. Добавьте запятую после аргумента, а затем дополнительный аргумент:timesToRepeat: Int.Первая строка определения вашей функции теперь выглядит так, как показано ниже.
fun printBorder(border: String, timesToRepeat: Int) {
Уведомление:
- Запятая разделяет два аргумента.
timesToRepeatимя аргумента,- с последующим двоеточием: символ,
- а тип:
Int. timesToRepeatявляется числом, поэтому вместо того, чтобы делать его типаString, вам нужно сделать его типаInt, что является сокращением от целого числа, целого числа.
- Внутри
printBorder()измените,repeatчтобы использоватьtimesToRepeatаргумент (вместо числа 23). ВашprintBorder()код должен выглядеть так.
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
- Запустите свой код. И вывод выглядит так, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
- Чтобы сделать вывод идеальным, вставьте два пробела в начале сообщения «С днем рождения». Тогда ваш вывод будет таким, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
Вот окончательный код для вашего баннера:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println(" Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
Поздравляем! С функциями, аргументами, переменными и повторяющимся циклом вы изучили основные строительные блоки, которые используются почти во всех программах.
Сделайте перерыв, а затем приступайте к следующей задаче ниже, где вы создадите больше функций и циклов, и вы получите возможность построить гигантский торт с нужным количеством свечей всего за несколько строк программирования.
fun main() {
printBorder()
println("Happy Birthday, Jhansi!")
printBorder()
}
fun printBorder() {
repeat(23) {
print("=")
}
println()
}
- Запустите свой код. Вывод должен быть таким же, как и раньше, но на этот раз вы смогли создать границу, указав символ «=» только один раз!
======================= Happy Birthday, Jhansi! =======================
Используйте аргументы, чтобы изменить границу
Что, если вы хотите создать границы, которые используют разные символы, такие как приведенные ниже?
%%%%%%%%%%%%%%%%%%%%%%%%%%
:::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::
Вы можете определить отдельную функцию для каждого из этих различных символов. Однако есть более эффективный способ сделать это. Вы можете повторно использовать уже написанную функцию и сделать ее более гибкой, чтобы она работала для разных типов символов.
Отличительной чертой функций является то, что вы можете вводить в них данные, используя аргументы. Вы кратко столкнулись с этим в предыдущей кодовой лаборатории, когда знакомились с main(). На этом шаге вы добавите аргумент в printBorder()функцию, чтобы она могла печатать любой шаблон границы, который вы указали.
- В
main()верхней части создайте переменную с именемborderдля шаблона границы. Это будет содержать текст, который будет повторяться для границы.
val border = "%"
- Теперь передайте эту
borderпеременную в оба вызоваprintBorder()функции в качестве аргумента. Вы делаете это, помещаяborderв круглые скобки(), как если бы вы вводили текст дляprintln()печати.
Ваша main()функция должна выглядеть как код ниже.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
Функция printBorder()возьмет это значение borderв качестве входных данных и выяснит, как распечатать всю границу.
- Запустите свой код. Ваш код не выполняется, и вместо этого вы видите значки ошибок рядом с вашим кодом.

- Посмотрите на панель вывода, и там сообщение об ошибке.
Как и раньше, в сообщении указывается, где находится ошибка, и дается подсказка, что это может быть. Важная часть: Too many arguments for public fun printBorder(). Вы вызываете printBorder()функцию и передаете границу в качестве входных данных. Однако printBorder()в данный момент определение функции не принимает никаких входных данных.
- Исправьте эту ошибку, добавив аргумент границы в
printBorder()определение функции. См. первую строку кода, как показано ниже.
fun printBorder(border: String) {
repeat(23) {
print("=")
}
println()
}
- Обратите внимание, что имя аргумента
border. - После имени ставится двоеточие
: - и слово
String, которое является описанием того, какого рода или типа аргумент это.
A String— это фрагмент текста, состоящий из символов, заключенных в кавычки. Вы можете думать об этом как о бусинах, выстроенных в линию, чтобы сформировать ожерелье, как символы, выстроенные в линию, чтобы сформировать слова и текст. Указание того, что аргумент должен быть a, Stringпомогает системе обеспечить, чтобы ваш аргумент был текстом, а не, например, числом.
- Запустите свой код. Функция
printBorder()теперь принимает границуStringв качестве входных данных. И код вmain()вызовахprintBorder(border)сborderаргументом. Ваш код должен работать без ошибок. - Посмотрите на вывод вашей программы в консоли , и она все еще показывает ту же границу, что и раньше?
======================= Happy Birthday, Jhansi! =======================
Это не предполагаемое поведение! Вы попытались сделать рамку с символом "%", но программа все еще печатает рамку с символом "=". На следующих шагах вы узнаете, почему это происходит.
- В редакторе обратите внимание на серый восклицательный знак. Этот значок указывает на предупреждение. Предупреждения — это проблемы с вашим кодом, на которые вам нужно обратить внимание, но они не мешают вашему коду работать.

- Наведите указатель мыши на восклицательный знак, и появится сообщение. В нем говорится, что
"Parameter 'border' is never used."это предупреждение объясняет проблему с выходом. Вы передаете в функцию новую строку для границы, но не используете ее для печати. - Измените
printBorder()функцию, чтобы использовать переданныйborderвместо печати "=". Это работает точно так же, как если быborderэто была переменная, которую вы определили внутри функции!
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
- Запустите свой код еще раз. Вывод должен выглядеть так, как показано ниже.
%%%%%%%%%%%%%%%%%%%%%%% Happy Birthday, Jhansi! %%%%%%%%%%%%%%%%%%%%%%%
Отличная работа, вы решили проблему! Вот ваш готовый код.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
Вы сделали printBorder()функцию намного более гибкой, не добавляя много кода. Теперь вы можете напечатать рамку из разных символов с небольшим изменением.
- [Необязательно] Изменив всего одну строку кода в
main()функции, как вы будете печатать такие баннеры ко дню рождения?
*********************** Happy Birthday, Jhansi! ***********************
::::::::::::::::::::::: Happy Birthday, Jhansi! :::::::::::::::::::::::
Измените функцию, чтобы она имела два аргумента
Что делать, если вы хотите использовать другой шаблон длиной более 1 символа, скажем, "'-._,-'". Вы не стали бы повторять этот шаблон 23 раза, так как это было бы слишком долго. Вы могли бы повторить это, может быть, 4 раза. Для этого вы можете изменить количество повторений в repeat()операторе printBorder(). Тем не менее, вы можете сделать что-то лучше!
Вы можете определить более красивую границу на основе двух вещей:
- Шаблон для повторения (который вы уже сделали)
- Количество раз, которое вы хотите повторить шаблон
Вы можете создать переменные для каждого шаблона и количества повторений, а затем передать обе части информации в printBorder()функцию.
- В
main()измените границу, чтобы она была"'-._,-'"узором.
val border = "`-._,-'"
- Запустите свой код и обратите внимание, что шаблон стал слишком длинным.
- В
main(), под определениемborder, создайте новую переменную с именемtimesToRepeatколичества повторений. Установите его значение на 4.
val timesToRepeat = 4
- В
main(), при вызовеprintBorder()добавьте количество повторений в качестве второго аргумента. Разделите два аргумента запятой.
printBorder(border, timesToRepeat)
Теперь main()функция должна выглядеть так:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println("Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
Как и прежде, этот код выдает ошибку, потому что у вас вызывается больше аргументов, printBorder()чем в определении printBorder().
- Исправьте
printBorder(), чтобы также принимать количество повторений в качестве входных данных. Добавьте запятую после аргумента, а затем дополнительный аргумент:timesToRepeat: Int.Первая строка определения вашей функции теперь выглядит так, как показано ниже.
fun printBorder(border: String, timesToRepeat: Int) {
Уведомление:
- Запятая разделяет два аргумента.
timesToRepeatимя аргумента,- с последующим двоеточием: символ,
- а тип:
Int. timesToRepeatявляется числом, поэтому вместо того, чтобы делать его типаString, вам нужно сделать его типаInt, что является сокращением от целого числа, целого числа.
- Внутри
printBorder()измените,repeatчтобы использоватьtimesToRepeatаргумент (вместо числа 23). ВашprintBorder()код должен выглядеть так.
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
- Запустите свой код. И вывод выглядит так, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
- Чтобы сделать вывод идеальным, вставьте два пробела в начале сообщения «С днем рождения». Тогда ваш вывод будет таким, как показано ниже.
`-._,-'`-._,-'`-._,-'`-._,-' Happy Birthday, Jhansi! `-._,-'`-._,-'`-._,-'`-._,-'
Вот окончательный код для вашего баннера:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println(" Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
Поздравляем! С функциями, аргументами, переменными и повторяющимся циклом вы изучили основные строительные блоки, которые используются почти во всех программах.
Сделайте перерыв, а затем приступайте к следующей задаче ниже, где вы создадите больше функций и циклов, и вы получите возможность построить гигантский торт с нужным количеством свечей всего за несколько строк программирования.
-
G-коды, также называемые подготовительными кодами, представляют собой слово в программе ЧПУ, начинающееся с буквы G. Как правило, это код, с...
-
Цикл сверления с шагом G83 выполняет операцию сверления за несколько шагов, этот метод делает глубокое сверление простым и экономичным. Пода...
-
Примеры учебных пособий по программированию ЧПУ Коды G и M для станков с ЧПУ от начального до продвинутого уровня.