This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
geda:gschem_ug:extensions.ru [2012/02/20 15:14] 127.0.0.1 external edit |
geda:gschem_ug:extensions.ru [2014/04/24 14:24] (current) vzh Proper quotes |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Расширение функциональности gschem ===== | ===== Расширение функциональности gschem ===== | ||
- | Так как [[config.ru|файлы настроек]] gschem являются Scheme-скриптами, это | + | Так как [[config.ru|файлы настроек]] gschem представляют собой скрипты на |
- | позволяет расширять функциональность gschem, определяя новые функции обработки | + | языке Scheme, в них заложена возможность расширения функциональности gschem |
- | объектов и страниц. | + | с помощью определения новых функций обработки объектов и страниц. |
В gschem (и других утилитах gEDA/gaf, таких как, например, | В gschem (и других утилитах gEDA/gaf, таких как, например, | ||
- | [[geda:gnetlist_ug.ru|gnetlist]]) | + | [[geda:gnetlist_ug.ru|gnetlist]]) для обеспечения возможности написания |
- | для обеспечения возможности написания скриптов на Scheme используется | + | скриптов на Scheme используется [[http://www.gnu.org/s/guile/|Guile |
- | [[http://www.gnu.org/s/guile/|Guile Scheme]], и в распоряжении разработчика | + | Scheme]], и в распоряжении разработчика оказываются все возможности языка |
- | оказываются все возможности языка Guile. //Справочное руководство по Guile// | + | Guile. //Справочное руководство по Guile// [//Guile Reference Manual//] |
- | [//Guile Reference Manual//] можно найти либо в формате Info | + | можно найти либо в формате Info (''[[info://guile|info guile]]'' на |
- | (''[[info://guile|info guile]]'' на большинстве систем), либо в формате HTML | + | большинстве систем), либо в формате HTML на |
- | на [[http://www.gnu.org/software/guile/docs/docs.html|веб-странице Guile]]. | + | [[http://www.gnu.org/software/guile/docs/docs.html|веб-странице Guile]]. |
Для доступа к объектам и страницам gEDA и для их изменения имеется набор | Для доступа к объектам и страницам gEDA и для их изменения имеется набор | ||
Line 23: | Line 23: | ||
==== Добавление действия ==== | ==== Добавление действия ==== | ||
- | Действия --- это отложенные вычисления [thunks], то есть процедуры Scheme, не | + | Действия --- это отложенные вычисления [thunks], то есть процедуры Scheme, |
- | принимающие аргументов. Чтобы программа gschem могла их найти, они должны | + | не принимающие аргументов. Чтобы программа gschem могла их найти, они |
- | быть определены в верхнеуровневом | + | должны быть определены в верхнеуровневом |
[[http://www.gnu.org/software/guile/manual/html_node/Modules.html|модуле]], | [[http://www.gnu.org/software/guile/manual/html_node/Modules.html|модуле]], | ||
поэтому для добавления действия необходимо предпринять один из следующих | поэтому для добавления действия необходимо предпринять один из следующих | ||
Line 39: | Line 39: | ||
==== Перехват встроенных действий ==== | ==== Перехват встроенных действий ==== | ||
- | gschem позволяет регистрировать функции, называемые функциями перехвата | + | gschem позволяет регистрировать функции, называемые //функциями перехвата// |
[//hooks//], которые должны выполняться при выполнении пользователем | [//hooks//], которые должны выполняться при выполнении пользователем | ||
встроенной функции. Возможность работы с ними предоставляется модулем Guile | встроенной функции. Возможность работы с ними предоставляется модулем Guile | ||
''(gschem hook)''. Более подробную информацию об этом см. в разделе | ''(gschem hook)''. Более подробную информацию об этом см. в разделе | ||
//Hooks// в //gEDA Scheme Reference Manual//. | //Hooks// в //gEDA Scheme Reference Manual//. | ||
- | |||
- | |||
==== Процедуры для разработчиков расширений ==== | ==== Процедуры для разработчиков расширений ==== | ||
Line 51: | Line 49: | ||
расширений предусмотрено несколько вспомогательных процедур. | расширений предусмотрено несколько вспомогательных процедур. | ||
- | <note important>Нет гарантии, что функции, приведённые в этом разделе, | + | <note important>Нет гарантии, что функции, приведённые в этом разделе, не |
- | не будут меняться в последующих версиях gEDA/gaf. Для обеспечения | + | будут меняться в последующих версиях gEDA/gaf. Для обеспечения стабильности |
- | стабильности в долгосрочной перспективе используйте только gEDA Scheme | + | в долгосрочной перспективе используйте только gEDA Scheme API.</note> |
- | API.</note> | + | |
^ Функция ^ Описание ^ | ^ Функция ^ Описание ^ | ||
- | | ''gschem-print'' | Экспорт в выходной файл в формате PostScript (см. раздел [[Printing.ru|Печать]]), имя которого либо задаётся с помощью [[command_line.ru|ключа командной строки]] ''-o'', либо, если данный ключ не задан, устанавливается по умолчанию в самой функции. | | + | | ''gschem-print'' | Экспорт в выходной файл в формате PostScript (см. раздел [[Printing.ru|Печать]]), имя которого либо задаётся с помощью [[command_line.ru|ключа командной строки]] ''-o'', либо, если данный ключ не задан, устанавливается в значение по умолчанию, определённое в самой функции. | |
| ''gschem-postscript ИМЯ_ФАЙЛА'' | Экспорт PostScript в файл ''ИМЯ_ФАЙЛА''. | | | ''gschem-postscript ИМЯ_ФАЙЛА'' | Экспорт PostScript в файл ''ИМЯ_ФАЙЛА''. | | ||
| ''gschem-image ИМЯ_ФАЙЛА'' | Экспорт изображения (см. раздел [[exporting.ru|Экспорт изображений]]) в выходной файл, указанный с помощью ключа ''-o'', или, если данный ключ не задан, в файл ''ИМЯ_ФАЙЛА''. | | | ''gschem-image ИМЯ_ФАЙЛА'' | Экспорт изображения (см. раздел [[exporting.ru|Экспорт изображений]]) в выходной файл, указанный с помощью ключа ''-o'', или, если данный ключ не задан, в файл ''ИМЯ_ФАЙЛА''. | | ||
Line 63: | Line 60: | ||
| ''gschem-log СООБЩЕНИЕ'' | Записать ''СООБЩЕНИЕ'' в журнал gschem. | | | ''gschem-log СООБЩЕНИЕ'' | Записать ''СООБЩЕНИЕ'' в журнал gschem. | | ||
| ''gschem-msg СООБЩЕНИЕ'' | Открыть информационное диалоговое окно с текстом ''СООБЩЕНИЕ''. | | | ''gschem-msg СООБЩЕНИЕ'' | Открыть информационное диалоговое окно с текстом ''СООБЩЕНИЕ''. | | ||
- | | ''gschem-confirm СООБЩЕНИЕ'' | Открыть диалоговое окно подтверждения с кнопками "Да" ["Yes"] и "Нет" ["No"] и текстом ''СООБЩЕНИЕ''. Возвратить ''#t'', если пользователь выберет "Да", или ''#f'' в противном случае. | | + | | ''gschem-confirm СООБЩЕНИЕ'' | Открыть диалоговое окно подтверждения с кнопками «Да» [«Yes»] и «Нет» [«No»] и текстом ''СООБЩЕНИЕ''. Возвратить ''#t'', если пользователь выберет «Да», или ''#f'' в противном случае. | |
- | | ''gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ'' | Открыть диалоговое окно выбора файла с текстом ''СООБЩЕНИЕ'' в заголовке и установленным по умолчанию именем файла ''ШАБЛОН''. ''ФЛАГИ'' управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке ''ФЛАГИ'' можно задавать следующие строки: ''"may_exist"'', если допускается, что выбранный файл уже существует; ''"must_exist"'', если выбранный файл уже должен существовать; ''"must_not_exist"'', если выбранный файл ещё //не// должен существовать; ''"save"'' для вызова диалогового окна сохранения файла; ''"open"'' для вызова диалогового окна открытия файла. | | + | | ''gschem-filesel СООБЩЕНИЕ ШАБЛОН ФЛАГИ'' | Открыть диалоговое окно выбора файла с текстом ''СООБЩЕНИЕ'' в заголовке и установленным по умолчанию именем файла ''ШАБЛОН''. ''ФЛАГИ'' управляют поведением диалогового окна выбора файла, и должны быть списком строк. В списке ''ФЛАГИ'' можно задавать следующие строки: ''%%"may_exist"%%'', если допускается, что выбранный файл уже существует; ''%%"must_exist"%%'', если выбранный файл уже должен существовать; ''%%"must_not_exist"%%'', если выбранный файл ещё //не// должен существовать; ''%%"save"%%'' для вызова диалогового окна сохранения файла; ''%%"open"%%'' для вызова диалогового окна открытия файла. | |