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

 
 
> 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
Ответов
dxp
сообщение Nov 24 2016, 12:08
Сообщение #2


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, иначе изменения не отображаются.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
op3op3
сообщение Aug 16 2017, 07:12
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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 и тут я уже потерялся куда вставлять и что делать

Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 17 2017, 08:52
Сообщение #4


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.


сделали?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
op3op3
сообщение Aug 18 2017, 02:49
Сообщение #5


Участник
*

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



Цитата(dxp @ Aug 17 2017, 15:52) *
А это:
сделали?


PyShell - Options - Startup - Edit Startup Script --- вот это где находится?
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 18 2017, 05:28
Сообщение #6


Adept
******

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



QUOTE (op3op3 @ Aug 18 2017, 09:49) *
PyShell - Options - Startup - Edit Startup Script --- вот это где находится?

Ну, в самой же скриптовой консоли PyShell - в её меню Options->Startup->Edit Startup Script.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
op3op3
сообщение Aug 18 2017, 05:55
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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 ??
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 21 2017, 05:02
Сообщение #8


Adept
******

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



QUOTE (op3op3 @ Aug 18 2017, 12:55) *
в pcbnew , Tools > Scripting Console открывается такое окно Python console без всяких меню



или где находится консоль PyShell ??

У меня это выглядит вот так:
Прикрепленное изображение


KiCad:
Прикрепленное изображение


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
op3op3
сообщение Aug 22 2017, 00:48
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 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
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 18:55
Рейтинг@Mail.ru


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