реклама на сайте
подробности

 
 
> KiCad Scripting, Цели и пути
dxp
сообщение Nov 22 2016, 13:35
Сообщение #1


Adept
******

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



Всем привет!

Как известно с некоторых пор KiCad предоставляет возможность автоматизации работы путём использования скриптов. Пока только в редакторе печатных плат, но всё же. Некоторое знакомство с этой темой показало следующее:
  • запуск скрипта возможен только из специальной консоли;
  • API документирован очень скудно, для нормальной работы явно недостаточно;
  • примеров от разработчиков почти нет, всё, что можно найти, это частный опыт отдельных энтузиастов;
  • не ясно, можно ли применить скрипт не просто ко всей плате, а только к выделенным компонентам;
  • не понятно, как сделать, чтобы изменения внесённые работой скрипта, сразу отображались на плате (приходится режим Canvas переключать руками).


В связи с этим возникает резонный вопрос: а что такого позволяет делать скриптовый API, чего нельзя сделать (и куда проще) простым редактированием файла, благо он текстовый и понятный, хотя и не очень читабельный?

Например, вот скажем, если бы можно было повесить запуск того или иного скрипта на пункт меню или кнопку тулбара, и чтобы скрипт применялся в контексте выделения объектов платы, и затем результат тут же бы отображался на плате, то это было бы понятно и рулезно. Но ничего этого нет.

И вот захотелось мне поменять размер шрифта текстовых полей посадочных, накопал скрипт на гитхабе, чуть-чуть его подрихтовал, чтобы запускалось... работает. Т.е. уменьшил размер шрифта, как и хотел. Но при этом пришлось править скрипт, а не задать размеры шрифта из редактора ПП, после отработки скрипта пришлось переключать режим Canvas, чтобы вид обновился. И даже после этого pcbnew не "врубился", что в плате есть изменения, т.е. он "считает", что плата не изменилась и поэтому сохранить файл в данный момент не даёт (пришлось подвигать посадочное, чтобы до него "дошло").

(Да, конкретно изменить размеры шрифта текстовых полей можно из из редактора ПП, но тут речь не об этом, а про принцип)

В то же время изменить размер текстовых полей можно в текстовом редакторе, который поддерживает регулярные выражения (например, в том же geany). И делается это куда проще и быстрее. Таким же образом можно менять что угодно, только заготовить соответствующие паттерны regex.

В общем, кто этим реально пользуется, поделитесь опытом. И вообще, что думаете про перспективы этой фичи?




--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BackEnd
сообщение Nov 22 2016, 14:13
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Пользовался KiCad давно, могу высказать только самые общие соображения.

Цитата(dxp @ Nov 22 2016, 13:35) *
В связи с этим возникает резонный вопрос: а что такого позволяет делать скриптовый API, чего нельзя сделать (и куда проще) простым редактированием файла, благо он текстовый и понятный, хотя и не очень читабельный?

Поддержка скриптов дает почти неограниченные возможности шаманства. Могучие скрипты могут растягиваться на тысячи и тысячи строк кода, добавляя фичи по инженерным расчетам чего-либо, например. У текстовых файлов возможности более скромные.

Цитата(dxp @ Nov 22 2016, 13:35) *
Например, вот скажем, если бы можно было повесить запуск того или иного скрипта на пункт меню или кнопку тулбара, и чтобы скрипт применялся в контексте выделения объектов платы, и затем результат тут же бы отображался на плате, то это было бы понятно и рулезно. Но ничего этого нет.

Проект живой, дышит, развивается. Дамаю, усё будет.

Цитата(dxp @ Nov 22 2016, 13:35) *
И вообще, что думаете про перспективы этой фичи?

Фича не мешающая работе и ничего не ломающая в уже существующем коде полезна по-любому. Пока пробный шар, потом народ подтянется. Можете сами к разработке подключиться или высказать пожелания команде.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 22 2016, 14:31
Сообщение #3


Adept
******

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



QUOTE (BackEnd @ Nov 22 2016, 21:13) *
Поддержка скриптов дает почти неограниченные возможности шаманства. Могучие скрипты могут растягиваться на тысячи и тысячи строк кода, добавляя фичи по инженерным расчетам чего-либо, например. У текстовых файлов возможности более скромные.

Да, я не вполне корректно выразился. Имел в виду не столько редактирование в текстовом редакторе, сколько обработку файлов снаружи пакета, в первую очередь, конечно же, скриптами (текстовый редактор тут упомянут просто как самое простое средство). Собственно вопрос ставится: "Встроенные средства" vs "Внешние средства".

Что фича есть не просит, оно так. Но вопрос в том, стоит ли изучать, если вдруг она бесполезная.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
nill
сообщение Nov 23 2016, 08:03
Сообщение #4


Частый гость
**

Группа: Validating
Сообщений: 124
Регистрация: 10-08-05
Пользователь №: 7 502



Цитата(dxp @ Nov 22 2016, 21:31) *
Собственно вопрос ставится: "Встроенные средства" vs "Внешние средства".

Я год или полтора назад смотрел на этот API и тогда он мне показался недостаточно функциональным. Если он Вас сейчас не устраивает, то и связываться с ним, на мой взгляд, не стоит. Судя по соседней ветке, у Вас уже есть опыт создания своих внешних инструментов и есть время на всё это, поэтому я бы на Вашем месте продожил в этом же направлении.
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 23 2016, 09:11
Сообщение #5


Adept
******

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



QUOTE (nill @ Nov 23 2016, 15:03) *
Я год или полтора назад смотрел на этот API и тогда он мне показался недостаточно функциональным. Если он Вас сейчас не устраивает, то и связываться с ним, на мой взгляд, не стоит. Судя по соседней ветке, у Вас уже есть опыт создания своих внешних инструментов и есть время на всё это, поэтому я бы на Вашем месте продожил в этом же направлении.

Время - так получилось. sm.gif К сожалению, это не всегда возможно. Сторонние инструменты, конечно, заруливают некоторые ситуации, но хочется, чтобы сам инструмент предоставлял требуемую функциональность. Например, я бы предпочёл всё то, что предоставляет упомянутый в соседней теме менеджер компонентов редактора схем, иметь непосредственно в редакторе схем. Для этого всего-то было бы достаточно, если бы был простой plugin API, который позволял бы иметь доступ к компонентам схемы.

Вообще, это единственно, как видится, правильный подход: главная программа должна иметь ядро и API расширений. Не нужно в коде главной программы лепить весь функционал - это можно делать с помощью плагинов. Это сразу резко разгружает разработчиков пакета - пользователи сами напишут всякие полезные и удобные штуки.

Но подход их с этим Python Scripting, имхо, ошибочен (хотя лично я против питона ничего не имею и только за). Правильнее было бы сделать простой API на основе сишных функций, а уж потом кто хочет, тот пусть лепит биндинг на любой язык, какой нравится. Только API этот надо хорошо документировать и снабдить примерами.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
nill
сообщение Nov 24 2016, 07:25
Сообщение #6


Частый гость
**

Группа: Validating
Сообщений: 124
Регистрация: 10-08-05
Пользователь №: 7 502



Цитата(dxp @ Nov 23 2016, 15:11) *
Например, я бы предпочёл всё то, что предоставляет упомянутый в соседней теме менеджер компонентов редактора схем, иметь непосредственно в редакторе схем.

Получите, распишитесь sm.gif :
https://lists.launchpad.net/kicad-developers/msg26723.html
К сожалению, у меня сейчас совсем нет времени для тестирование обоих вариантов и я не могу сказать, насколько они перекрываются в плане фукнций, но патч по ссылке встретили положительно, так что есть вероятность, что он будет добавлен в основной код. Собственно, сам патч в той же рассылке:
https://lists.launchpad.net/kicad-developers/msg26742.html

Цитата(dxp @ Nov 23 2016, 15:11) *
Вообще, это единственно, как видится, правильный подход: главная программа должна иметь ядро и API расширений. Не нужно в коде главной программы лепить весь функционал - это можно делать с помощью плагинов. Это сразу резко разгружает разработчиков пакета - пользователи сами напишут всякие полезные и удобные штуки.

С этим полностью согласен. Не могли бы Вы отписаться о впечатлениях об использовании их системы плагинов после того, как получится её протестировать?

Сообщение отредактировал nill - Nov 24 2016, 07:26
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dxp   KiCad Scripting   Nov 22 2016, 13:35
|- - BackEnd   Цитата(dxp @ Nov 22 2016, 14:31) Но вопро...   Nov 22 2016, 15:05
|- - 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   По поводу Python Scripting. Попробовал кое-что, в ...   Nov 24 2016, 12:08
|- - op3op3   Цитата(dxp @ Nov 24 2016, 19:08) По повод...   Aug 16 2017, 07:12
|- - dxp   QUOTE (op3op3 @ Aug 16 2017, 14:12) Поясн...   Aug 17 2017, 08:52
|- - op3op3   Цитата(dxp @ Aug 17 2017, 15:52) А это: с...   Aug 18 2017, 02:49
|- - dxp   QUOTE (op3op3 @ Aug 18 2017, 09:49) PyShe...   Aug 18 2017, 05:28
|- - op3op3   Цитата(dxp @ Aug 18 2017, 12:28) Ну, в са...   Aug 18 2017, 05:55
|- - dxp   QUOTE (op3op3 @ Aug 18 2017, 12:55) в pcb...   Aug 21 2017, 05:02
|- - op3op3   Цитата(dxp @ Aug 21 2017, 12:02) У меня э...   Aug 22 2017, 00:48
|- - dxp   QUOTE (op3op3 @ Aug 22 2017, 07:48) У мен...   Aug 22 2017, 05:11
- - Эдди   Я для себя начал было делать утилитку для копирова...   Aug 16 2017, 07:56


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 14:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016