nuget 67 Опубликовано 11 февраля, 2015 Жалоба Поделиться Опубликовано 11 февраля, 2015 Привет, Данная тема для тех, кто желает научиться писать собственные плагины для приложения SketchUp. Инструмент разработки В качестве инструмента разработки на платформе Windows, можно использовать IDE (например: Aptana, NetBeans, RubyMine), но я предпочел Notepad++. Самый простой вариант (без инсталляции приложения), можно просто скачать Notepad++ zip package, и распаковать (например, на рабочий стол). Далее необходимо добавить в настройках приложения (меню: Settins / Preferences..) поддержку языка Ruby (см. Preferences_Language_Menu.PNG). В данном случае, будет работать только подсветка языка Ruby, поддержка IntelliSense возможна только в области переменных. Каталог загрузки плагинов Корневой каталог загрузки плагинов по умолчанию, является Plugins (полный путь: "C:\Users\User_Name\AppData\Roaming\SketchUp\SketchUp 2015\SketchUp\Plugins"). Как правило, плагин состоит из загрузочного файла, расположенного в корневом каталоге, и подкаталог с исполняемыми файлами и ресурсами. Пример hello cube , демонстрирует, как можно создать простейший плагин в обычном текстовом редакторе. Для удобства, вы можете создать отдельный каталог Plugins, где будут располагаться предварительные версии плагинов, например: SketchUp - Plugins -- Plugin_1 --- test --- test.rb -- Plugin_2 -- Plugin_n В данном случае, каталог Plugin_1 представляет собой директорию проекта, на тот случай если появится необходимость перехода на IDE. Далее, добавим путь в настройках Notepad++ на каталог Plugins по умолчанию (см. Preferences_Default_Directory.PNG). Создание загрузочного файла Запустите приложение Notepad++. Далее, сохраните файл (см. npp_SaveAs.PNG) под именем (test.rb), и добавьте следующий код: # Source manifest require 'sketchup.rb' require 'extensions.rb' module Sketchup module Extensions module Test # Plugin information PLUGIN_ID = 'Test'.freeze PLUGIN_NAME = 'Test'.freeze PLUGIN_VERSION = '1.0.0'.freeze # Resource paths FILENAMESPACE = File.basename(__FILE__, '.*') PATH_ROOT = File.dirname(__FILE__).freeze PATH = File.join(PATH_ROOT, FILENAMESPACE).freeze PATH_ICONS = File.join(PATH, 'icons').freeze # Extension loader unless file_loaded?(__FILE__) loader = File.join( PATH, 'loader.rb' ) ex = SketchupExtension.new(PLUGIN_NAME, loader) ex.description = 'Test plugin Hello World!' ex.version = PLUGIN_VERSION ex.copyright = 'Copyright © 2015' ex.creator = 'SketchUp' Sketchup.register_extension(ex, true) end end end end Сохраните файл. Данный файл, будет загружен на момент запуска SketchUp в первую очередь. Далее, метод file_loaded?(__FILE__) передаст управление файлу ресурсов (loader.rb), который расположен в каталоге ресурсов "test". Важно, что бы загрузочный файл и каталог ресурсов имел одинаковое наименование. Создание файла ресурсов Создайте новый файл (см. npp_SaveAs2.PNG) и сохраните под именем (loader.rb) в предварительно созданный каталог "test", и добавьте следующий код: # Loader Extension # Add Menu plugins_menu = UI.menu('Plugins') item = plugins_menu.add_item('Test') { UI.messagebox('Hello World!') } Сохраните файл. Запуск плагина Копируйте содержимое директории "Plugin_1" в каталог загрузки плагинов. Запустите приложение SketchUp, и выполните плагин "test" (меню: "Extensions / test", см. su_test_run.PNG) Дополнительные ресурсы Основной справочник - SketchUp API. Репозиторий разработчиков SketchUp (https://github.com/SketchUp) 2 Цитата Ссылка на сообщение Поделиться на другие сайты
~Novikov~ 311 Опубликовано 11 февраля, 2015 Жалоба Поделиться Опубликовано 11 февраля, 2015 nuget,Еще раз спасибо, будем разбираться.Очень полезная тема, учитывая ещё тот момент что именно по созданию плагинов для скетча очень мало инфы находится через всемогущие поисковики.А на ваш взгляд вот что бы вы еще посоветовали начинающим для освоения руби - может какие то блиц уроки или изучить какую то литературу? Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 11 февраля, 2015 Автор Жалоба Поделиться Опубликовано 11 февраля, 2015 А на ваш взгляд вот что бы вы еще посоветовали начинающим для освоения руби - может какие то блиц уроки или изучить какую то литературу?В интернете много материалов, можете начать с этого (http://ru.wikibooks.org/wiki/Ruby). 1 Цитата Ссылка на сообщение Поделиться на другие сайты
~Novikov~ 311 Опубликовано 11 февраля, 2015 Жалоба Поделиться Опубликовано 11 февраля, 2015 nuget,И как по вашему утверждение лучше два новых платья сшить чем одно перешивать - применимо к написанию плагинов?То есть если переделывать плагин то не проще его с нова написать? Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 11 февраля, 2015 Автор Жалоба Поделиться Опубликовано 11 февраля, 2015 То есть если переделывать плагин то не проще его с нова написать? Смотря что вы хотите переделать. Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 11 февраля, 2015 Автор Жалоба Поделиться Опубликовано 11 февраля, 2015 Создал репозиторий на GitHubПлагин переименован на "nReport" Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 20 июня, 2015 Автор Жалоба Поделиться Опубликовано 20 июня, 2015 Обновление плагина nReport Сделано на базе исходного кода Attribute ReportingАналог стандартной функции "Generate Report...", с поддержкой контекстного меню. Так же как и стандартная функция, имеет не доработки в отношении формата данных, генерация отчетов с единицами измерения (Inches). Репозиторий на GitHub 3 Цитата Ссылка на сообщение Поделиться на другие сайты
~Novikov~ 311 Опубликовано 20 октября, 2015 Жалоба Поделиться Опубликовано 20 октября, 2015 Обновление плагина nReport Сделано на базе исходного кода Attribute ReportingАналог стандартной функции "Generate Report...", с поддержкой контекстного меню. Так же как и стандартная функция, имеет не доработки в отношении формата данных, генерация отчетов с единицами измерения (Inches). Репозиторий на GitHubСпасибо установил - работает. Но вот есть вопрос: что это за три файла (LICENSE, .gitignore,README.md) за что они отвечают и обязательно ли их устанавливать - ведь при установке требуется замена подобных файлов в папке Плагинов. Заранее спасибо и простите если вопрос глуп ) Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 20 октября, 2015 Автор Жалоба Поделиться Опубликовано 20 октября, 2015 (изменено) Спасибо установил - работает. Но вот есть вопрос: что это за три файла (LICENSE, .gitignore,README.md) за что они отвечают и обязательно ли их устанавливать - ведь при установке требуется замена подобных файлов в папке Плагинов. Заранее спасибо и простите если вопрос глуп ) Файлы (LICENSE, .gitignore, README.md) имеют отношение к репозиторию на GitHub. Копировать нужно только файлы, имеющие отношение к плагину, которые расположены в директории (src). На самом деле, плагин еще не готов. Изменено 20 октября, 2015 пользователем nuget 1 Цитата Ссылка на сообщение Поделиться на другие сайты
~Novikov~ 311 Опубликовано 21 октября, 2015 Жалоба Поделиться Опубликовано 21 октября, 2015 Файлы (LICENSE, .gitignore, README.md) имеют отношение к репозиторию на GitHub. Копировать нужно только файлы, имеющие отношение к плагину, которые расположены в директории (src). На самом деле, плагин еще не готов.что с ним не так? Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 21 октября, 2015 Автор Жалоба Поделиться Опубликовано 21 октября, 2015 что с ним не так? Нужно реализовать фильтрацию атрибутов. То есть, определить конфигурацию фильтра и добавить возможность сохранять данные для последующего использования. Основное отличие от стандартной функции экспорта данных SketchUp, возможность настраивать фильтр выгрузки. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
~Novikov~ 311 Опубликовано 23 октября, 2015 Жалоба Поделиться Опубликовано 23 октября, 2015 Нужно реализовать фильтрацию атрибутов. То есть, определить конфигурацию фильтра и добавить возможность сохранять данные для последующего использования. Основное отличие от стандартной функции экспорта данных SketchUp, возможность настраивать фильтр выгрузки.а так значит он работает как родной скетчаповский гератор рапорта без всяких заморочек? Цитата Ссылка на сообщение Поделиться на другие сайты
nuget 67 Опубликовано 23 октября, 2015 Автор Жалоба Поделиться Опубликовано 23 октября, 2015 а так значит он работает как родной скетчаповский гератор рапорта без всяких заморочек? Да, так и есть. Основной скрипт генерации отчетов (attrreporter). Диалог (Fttribute Filter), представляет собой шаблон с полями атрибутов динамических компонентов (стандартные и атрибуты пользователя). 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.