|
KiCad Scripting, Цели и пути |
|
|
|
Nov 22 2016, 13:35
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Всем привет! Как известно с некоторых пор KiCad предоставляет возможность автоматизации работы путём использования скриптов. Пока только в редакторе печатных плат, но всё же. Некоторое знакомство с этой темой показало следующее: - запуск скрипта возможен только из специальной консоли;
- API документирован очень скудно, для нормальной работы явно недостаточно;
- примеров от разработчиков почти нет, всё, что можно найти, это частный опыт отдельных энтузиастов;
- не ясно, можно ли применить скрипт не просто ко всей плате, а только к выделенным компонентам;
- не понятно, как сделать, чтобы изменения внесённые работой скрипта, сразу отображались на плате (приходится режим Canvas переключать руками).
В связи с этим возникает резонный вопрос: а что такого позволяет делать скриптовый API, чего нельзя сделать (и куда проще) простым редактированием файла, благо он текстовый и понятный, хотя и не очень читабельный? Например, вот скажем, если бы можно было повесить запуск того или иного скрипта на пункт меню или кнопку тулбара, и чтобы скрипт применялся в контексте выделения объектов платы, и затем результат тут же бы отображался на плате, то это было бы понятно и рулезно. Но ничего этого нет. И вот захотелось мне поменять размер шрифта текстовых полей посадочных, накопал скрипт на гитхабе, чуть-чуть его подрихтовал, чтобы запускалось... работает. Т.е. уменьшил размер шрифта, как и хотел. Но при этом пришлось править скрипт, а не задать размеры шрифта из редактора ПП, после отработки скрипта пришлось переключать режим Canvas, чтобы вид обновился. И даже после этого pcbnew не "врубился", что в плате есть изменения, т.е. он "считает", что плата не изменилась и поэтому сохранить файл в данный момент не даёт (пришлось подвигать посадочное, чтобы до него "дошло"). (Да, конкретно изменить размеры шрифта текстовых полей можно из из редактора ПП, но тут речь не об этом, а про принцип) В то же время изменить размер текстовых полей можно в текстовом редакторе, который поддерживает регулярные выражения (например, в том же geany). И делается это куда проще и быстрее. Таким же образом можно менять что угодно, только заготовить соответствующие паттерны regex. В общем, кто этим реально пользуется, поделитесь опытом. И вообще, что думаете про перспективы этой фичи?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
 |
Ответов
|
Nov 24 2016, 12:08
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
По поводу Python Scripting. Попробовал кое-что, в целом работает. Первым делом прикрутил согласно инструкции браузер-ланчер скриптов - чтобы не руками каждый раз вбивать, а одним кликом запускать. Попробовал два скрипта от того же автора. Первый - изменение свойств текстовых полей (хотя в текущей версии pcbnew это не так актуально - есть такая функция вменю Edit). Второй более полезный - позволяет рисовать keepout зоны круглой формы. Это нужно, например, вокруг крепёжных отверстий, а кикад не "умеет" зоны круглой формы делать. Сам скрипт. В конце я подредактировал под свой проект, добавил строки CODE insert_keepout_around_mod("MS1", 2.5, corners=32, layers=(pcbnew.F_Cu, pcbnew.B_Cu,)) insert_keepout_around_mod("MS2", 2.5, corners=32, layers=(pcbnew.F_Cu, pcbnew.B_Cu,)) insert_keepout_around_mod("MS3", 2.5, corners=32, layers=(pcbnew.F_Cu, pcbnew.B_Cu,)) insert_keepout_around_mod("MS4", 2.5, corners=32, layers=(pcbnew.F_Cu, pcbnew.B_Cu,)) где MS1..MS4 - это посадочные крепёжных отверстий. Выглядит вот так:
Keepout зоны добавлены во внешних сигнальных слоях. После применения скрипта нужно переключить режим Canvas, иначе изменения не отображаются.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Aug 16 2017, 07:12
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 20-12-16
Пользователь №: 94 698

|
Цитата(dxp @ Nov 24 2016, 19:08)  По поводу Python Scripting. Попробовал кое-что, в целом работает. Первым делом прикрутил согласно инструкции браузер-ланчер скриптов - чтобы не руками каждый раз вбивать, а одним кликом запускать. Попробовал два скрипта от того же автора. Первый - изменение свойств текстовых полей (хотя в текущей версии pcbnew это не так актуально - есть такая функция вменю Edit). Поясните как вы "прикрутили" первый скрипт - я создал директорию где у меня будут храниться макросы - в pcbnew в меню Preferences - Configure Paths dialog добавил переменную _KIMACROS и указал для нее путь к созданной выше директории - дальше нужно куда-то вставить текст скрипта pyshell_hack.py и тут я уже потерялся куда вставлять и что делать
|
|
|
|
|
Aug 17 2017, 08:52
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (op3op3 @ Aug 16 2017, 14:12)  Поясните как вы "прикрутили" первый скрипт
- я создал директорию где у меня будут храниться макросы - в pcbnew в меню Preferences - Configure Paths dialog добавил переменную _KIMACROS и указал для нее путь к созданной выше директории - дальше нужно куда-то вставить текст скрипта pyshell_hack.py и тут я уже потерялся куда вставлять и что делать А это: QUOTE Copy content of pyshell_hack.py file into your PyShell_pcbnew_startup.py file which can be found through PyShell - Options - Startup - Edit Startup Script... entry. сделали?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Aug 18 2017, 02:49
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 20-12-16
Пользователь №: 94 698

|
Цитата(dxp @ Aug 17 2017, 15:52)  А это: сделали? PyShell - Options - Startup - Edit Startup Script --- вот это где находится?
|
|
|
|
|
Aug 18 2017, 05:55
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 20-12-16
Пользователь №: 94 698

|
Цитата(dxp @ Aug 18 2017, 12:28)  Ну, в самой же скриптовой консоли PyShell - в её меню Options->Startup->Edit Startup Script. в pcbnew , Tools > Scripting Console открывается такое окно Python console без всяких меню или где находится консоль PyShell ??
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 22 2017, 00:48
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 20-12-16
Пользователь №: 94 698

|
Цитата(dxp @ Aug 21 2017, 12:02)  У меня это выглядит вот так: У меня готовая сборка c http://kicad-pcb.org/download/linux-mint/
Сообщение отредактировал op3op3 - Aug 22 2017, 00:48
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
dxp KiCad Scripting Nov 22 2016, 13:35 BackEnd Пользовался KiCad давно, могу высказать только сам... Nov 22 2016, 14:13 dxp QUOTE (BackEnd @ Nov 22 2016, 21:13) Подд... Nov 22 2016, 14:31  BackEnd Цитата(dxp @ Nov 22 2016, 14:31) Но вопро... Nov 22 2016, 15:05  nill Цитата(dxp @ Nov 22 2016, 21:31) Собствен... Nov 23 2016, 08:03   dxp QUOTE (nill @ Nov 23 2016, 15:03) Я год и... Nov 23 2016, 09:11    nill Цитата(dxp @ Nov 23 2016, 15:11) Например... Nov 24 2016, 07:25     dxp QUOTE (nill @ Nov 24 2016, 14:25) Получит... Nov 24 2016, 08:28 dxp Боюсь, долго ждать придётся. Уж года три как анонс... Nov 22 2016, 15:31 BackEnd Если выбешивает что-то конкретное, можно попробова... Nov 22 2016, 15:45 Барановский Константин Цитата(dxp @ Nov 23 2016, 11:11) Правильн... Nov 23 2016, 10:25 dxp QUOTE (Барановский Константин @ Nov 23 2016, ... Nov 23 2016, 11:41        dxp QUOTE (op3op3 @ Aug 22 2017, 07:48) У мен... Aug 22 2017, 05:11 Эдди Я для себя начал было делать утилитку для копирова... Aug 16 2017, 07:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|