STROYKA
http://stroyka.in/

Как используя руби скрипт запустить программу
http://stroyka.in/viewtopic.php?f=45&t=846
Страница 1 из 1

Автор:  DED [ 18 май 2011, 14:02 ]
Заголовок сообщения:  Как используя руби скрипт запустить программу

Вопрос:
Как используя руби скрипт запустить программу в папке находящейся рядом со скриптом не прописывая полного пути к ней.
Код:
if( not file_loaded?('test.rb'))
UI.menu('Plugins').add_item('Notepad'){UI.openURL "?????/TEST/NOTEPAD.EXE" }
end

Автор:  sahi [ 18 май 2011, 16:15 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

DED писал(а):
Как используя руби скрипт запустить программу в папке находящейся рядом со скриптом не прописывая полного пути к ней.


есть два способа
1 способ
Код:
txt = Sketchup.find_support_file("txt.txt","Plugins/")
UI.openURL txt

2 способ
Код:
path = File.dirname(__FILE__)
UI.openURL path + "txt.txt"

или так
Код:
path = File.dirname(__FILE__)
imgdir = File.join(path, "txt.txt")
UI.openURL imgdir

Автор:  DED [ 18 май 2011, 16:22 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

Блин о как просто когда подскажут
получилось
Код:
EXE = Sketchup.find_support_file("TEST.exe","Plugins/test/")
if( not file_loaded?('test.rb'))
UI.menu('Plugins').add_item('Notepad'){ UI.openURL txt }
end


Спасибо

Автор:  sahi [ 18 май 2011, 16:26 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

На примере указано что открыть блокнот (блокнот зарегестрирован в Windows), то в этом случае можно и так написать
Код:
UI.openURL "notepad.exe"

Откроеться блокнот.

Автор:  DED [ 18 май 2011, 16:28 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

Нет блокнот для примера прогу я сам сделал

Автор:  sahi [ 18 май 2011, 16:30 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

Да я понял.

Просто я примеры привожу что и как можно сделать.

Автор:  DED [ 18 май 2011, 17:34 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

# контекст только для группы при развертывании меню
Разьесните пожалюйста не знающим на примере для линии
Код:
UI.add_context_menu_handler do |menu|
ss = Sketchup.active_model.selection
if(ss[0].typename=="Edge")
menu.add_item("test") { test }
end
end

Автор:  sahi [ 18 май 2011, 17:57 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

ss - это массив (selection - выделенное), в "выделенное" могут входит группы, компоненты, края, точки и т.д
ss[0] - это первый элемент массива - например точка
ss[1] - это второй элемент массива - например группа
ss[2] - это третий элемент массива - ещё одна группа

и т.д

ss[0].kind_of?(Sketchup::Group) - спрашиваем и в ответ правда или ложь true или false

if - значит есть то есть true
else - значит нет то есть false
unless - значит нет то есть false

PS: вообщем я увлёкся вот
Код:
UI.add_context_menu_handler do |menu|
ss = Sketchup.active_model.selection
if(ss[0].kind_of?(Sketchup::Group))
menu.add_item("test") { test }
end
end

Автор:  DED [ 18 май 2011, 18:28 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

тоесть если я правильно понял
то
Код:
UI.add_context_menu_handler do |menu|
ss = Sketchup.active_model.selection
if(ss[1].kind_of?(Sketchup::Group))
menu.add_item("test") { test }
end
end

будет работать не менее чем с двумя и более группами

Автор:  sahi [ 18 май 2011, 18:42 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

Нет.

ss - это массив

пример:
ss = [группа, точка, линия, группа, группа, компонент, nil]

[0] - первый элемент массива (группа) или так first то-есть ss.first или ss[0]
[1] - второй элемент массива (точка)
[2] - третий элемент массива (линия)

и последний элемент массива (nil - пустое место) или так last то-есть ss.last или ss[-1]

и т.д
он может содержат разное количество обектов.

если указать if(ss[1].kind_of?(Sketchup::Group)) то запрашиваем второй элемент массива группа? - да или нет

а не количество.

количество мы можем узнать ( размер массива) ss.size или ss.length или так ss.nitems (в последнем случае он не считает пустые места)

Автор:  DED [ 18 май 2011, 19:04 ]
Заголовок сообщения:  Re: Язык Rybu в SketchUp

Будем знать :D129:

Автор:  lost [ 29 авг 2012, 20:08 ]
Заголовок сообщения:  Re: Как используя руби скрипт запустить программу

Кто подскажет, что такое руби, и в чем его фишка?
я не особо дружу с компьютером, но как я понял копаясь в интернете, что это на программном уровне вывод определенных комбинаций с помощью ввода определенных слов. Такли это? и еще, для чего он нужен в СЮ?

Автор:  urgen [ 29 авг 2012, 20:45 ]
Заголовок сообщения:  Re: Как используя руби скрипт запустить программу

lost писал(а):
...как я понял копаясь в интернете, что это на программном уровне вывод определенных комбинаций с помощью ввода определенных слов. Такли это? и еще, для чего он нужен в СЮ?

...в общем вы правильно поняли...это программный язык на котором написан SU....а нужен для создания дополнительных подпрограм (плагинов)или другими словами новых инструментов ...
lost писал(а):
...я не особо дружу с компьютером...

...тогда он (руби)вам и не нужен...пользуйтесь наиболее удобными для вас готовыми плагинами которые сделали другие... ;)

Автор:  lost [ 29 авг 2012, 21:59 ]
Заголовок сообщения:  Re: Как используя руби скрипт запустить программу

благодарю за ответ.

значит консоль руби для только для продвинутых пользователей)))))
объясните скрипты и плагины это одно и тоже?
http://www.smustard.com/products/ в книге, которую нашел здесь (на форуме),был упомянут сайт со скриптами, стал их скачивать и устанавливать в папку с плагинами, они работают. До этого не знал, думал, что это что-то другое.

Автор:  urgen [ 29 авг 2012, 22:05 ]
Заголовок сообщения:  Re: Как используя руби скрипт запустить программу

lost писал(а):
благодарю за ответ.

....
объясните скрипты и плагины это одно и тоже?
....

да
...смотри еще здесь:
http://forums.sketchucation.com/viewtop ... 23&t=28782

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/