https://www.traditionrolex.com/13
3 страницы 1 2 3 >
RhinoScript
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Здравствуйте, уважаемые коллеги.
Работал ли кто нибудь с такой замечательной штукой как RhinoScript? Не с макросами, а именно скриптами на VB иже с ним.
Я недавно попробовал написать к Носорогу небольшой плагин для работы с камнями (на Delphi), однако, столкнулся с некоторыми проблемами - в частности, с частым перекобрячиванием тулбаров при запуске и тормозной работой программы в целом.
Но вообще - вопрос в первом абзаце :)
Модератор
Регистрация: 25.01.2005
Откуда: Москва

Сообщений: 926
В друзьях у: 1
Голосов: 20 / 7
Я пытался чего-то, но как всегда - эээ.. отсутствие мотивации подвело )
А каким же образом плагин влияет на тулбары? если только вы программно кнопки нажимаете..?
i can your 3D
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Цитата
Я пытался чего-то, но как всегда - эээ.. отсутствие мотивации подвело )
А каким же образом плагин влияет на тулбары? если только вы программно кнопки нажимаете..?
Отсутствие мотивации - это а-та-та :) У меня мотивация внутренняя - люблю кодить.
Сам по себе плагин на тулбары не влияет, перекобрячивание происходит при запуске (попробуйте уменьшить окно Рино, и Вы поймёте о чём я)
Модератор
Регистрация: 25.01.2005
Откуда: Москва

Сообщений: 926
В друзьях у: 1
Голосов: 20 / 7
М, неприятно .. а зарубежные ресурсы молчат? Кстати, техподдержка у Рино очень отзывчивая, и серийники не спрашивает  8)
i can your 3D
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
По зарубежным ресурсам пока не лазил - не знаю. Хотел сначала поинтересоваться у соотечественников.
Техподдержка - это интересно... надо будет попробовать написать им.
Пользователь
Регистрация: 14.09.2006

Сообщений: 216
В друзьях у: 0
Голосов: 0 / 0
Со скриптами в Рино ковырялся, но без графических оболочек. Все через КомандПромт.
Всегда интересовало, как связать написанную на Делфи например прогу с Рино, или АвтоКАДом. Может дадите ссылочку на примеры (или туторы) по связке?
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Туториалов отродясь не видел, но в Help по РиноСкрипт в главе "External Access" есть небольшой примерчик. Собсно, с него, методом тыка, я и начал разбираться.
А принцип "связки" довольно простой - OLE. Носорог выступает в качестве сервера, моё приложение - как клиент.
В Делфи это осуществляется через TOleContainer.
Самая большая проблема тут - совместимов типов делфи и VB. Поэтому я собираюсь перейти на C++
Модератор
Регистрация: 25.01.2005
Откуда: Москва

Сообщений: 926
В друзьях у: 1
Голосов: 20 / 7
Цитата
Со скриптами в Рино ковырялся, но без графических оболочек. Все через КомандПромт.

Это не совсем то - скорее похоже на макросы, команда вызывается в готовом виде, API не используется. У Сергея интереснее ))

Недавно видел на рендер.ру пример - там парень каких-то эффектов текстурирования добивался. Интересно это всё, конечно - было несколько задумок под реализацию, алгоритм несложен, знай разбирайся в матчасти ... )))
i can your 3D
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Поищу на досуге.
Да через командную строку - это макросы, в них нельзя использовать переменные. Либо скрипты, написанные на VB непосредственно в Рино - они, кстати, зело быстрые и удобные, зато их возможности скромнее, да и о какой то защите авторских прав говорить не приходится.
Текстура - это интересно, но меня больше интересует геометрия, как более применимая к ювелирке.
Пользователь
Регистрация: 01.06.2006
Откуда: Костромские мы...

Сообщений: 341
В друзьях у: 2
Голосов: 25 / 1
Есть ссылки на пару ресурсов по написанию скриптов (на буржуйском).Надо кому?
С уважением, Владислав.
Пользователь
Регистрация: 14.09.2006

Сообщений: 216
В друзьях у: 0
Голосов: 0 / 0
to Shakdo
Надо-надо. Все надо. :) Давай.
to Bob
Имелось ввиду не простые макросы, а полноценные скрипты на VB, но начали утомлять громоздкие "дружественные" интерфейсы в командной строке, отсюда желание делать скрипты с графическими диалоговыми окнами. Пробую на Делфи, но чета пока ноль. :(
А с самими скриптами вроде особых проблем нет.  :oops:
Не могу сделать даже простого :( Например при активном Рино вызвать диалог и нарисовать окружность. Есть у кого такой примерчик на Делфи?
Делаю по аналогии с АвтоКАДом (примеры в Нете), но не катит.
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
var Rhino: variant;
<...>
procedure InitRhino(const OLE:TOleContainer);
begin
OLE.CreateObject('Rhino4.Application',False);
OLE.Run;
OLE.OleObject.Visible := True;
end;

procedure StartRhino(const OLE:TOleContainer);
begin
Rhino:=OLE.OleObject.GetScriptObject;
end;

procedure CloseRhino(const OLE:TOleContainer);
begin
OLE.Destroy;
end;

<...>


procedure TForm1.FormCreate(Sender: TObject);
begin
InitRhino(RhinoOLE);
end;

//StartRhino(RhinoOLE); надо вызывать после инициализации Носорога

А дальше - всё как в скриптах. Ивиняюсь, пока не могу написать полноценный пример.

to Shakdo
Мне надо! :)
Пользователь
Регистрация: 01.06.2006
Откуда: Костромские мы...

Сообщений: 341
В друзьях у: 2
Голосов: 25 / 1
Вот одна http://www.rhino3d.com/resources/display.asp?language=&listing=601
Ещё: http://www.cgtutorials.com/t111/Rhinoceros/Command_Scripting
Это на всякий случай, вдруг не все знают, где порыться можно: http://www.rhino3d.com/resources/
С уважением, Владислав.
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Обе у меня есть. Первая особой ценности не представляет, ибо для начинающих программистов. Я её распечатал и почитал - там много "воды", но кое-что почерпнул.
Вторая, по-моему, вообще по макросам.
Кстати, Batuhan, а что за скрипты писали? А то может поменяемся чем ;)
Пользователь
Регистрация: 14.09.2006

Сообщений: 216
В друзьях у: 0
Голосов: 0 / 0
to Сергей Ч.
Тут ты приводишь пример, в котором из приложения происходит запуск Рино. А мне хочется, чтобы из Рино можно было запустить (командой Run) свое диалоговое окно, в котором я бы задал нужные мне параметры, а уже это окно передало эти параметры на выполнение обычному скрипту .rvb. То есть мне не надо запускать Рино, а надо использовать уже открытое.
Все это реализовано в ТехДжемсе, там это можно посмотреть, однако само создание диалога (вернее его согласование с уже открытым Рино) вызывает у меня трудности.
А скрипты писал - многое подсмотрено в техджемсовской techjewel.rvb и несколько переделано под себя. Толкнули на переделки некоторые глюки в techjewel.rvb :)
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Как я понял, "чистые" плагины, о которых говорит Batuhan, пишутся с помощью Rhino 4.0 C++ SDK

"What comes with the SDK (C++)?

   * C++ header files to include in your plug-in project.
   * Library files to link with your plug-in project.
   * Documentation, in HTML help format, that provides information on SDK classes and their hierarchy.
   * Getting started sample projects that demonstrate plug-in basics.
   * A Visual C++ AppWizard that allows you to quickly build a skeleton plug-in project.
   * A Visual C++ Add-in that provides tools to prototype new command classes and create unique identifiers (uuid)."

Где-то я там вычитал что МакНил отказался от поддержки VB.
Мне запускать Рино даже интереснее, я замахнулся на Матрикс  :oops:
Batuhan, а можно поподробнее? Я с TechGems не работал, так что его возможности представляю довольно смутно. Что именно удалось ст... эээ... реализовать? :)
Пользователь
Регистрация: 14.09.2006

Сообщений: 216
В друзьях у: 0
Голосов: 0 / 0
В SDK уклон на плагины, а в том же ТГ реализовано без плагинов. Все на скриптах с использованием напрограммленых визуальных диалогов.

В принципе из TG брались только идеи (что вообще можно сделать), а сама реализация в ТГ не оч понравилась, так что все кодилось самостоятельно. Ну, еще подглядел работу расстановщика Pave в Матриксе, что тоже натолкнуло на плодотворные мысли... :)
А пока список скриптов небольшой: расстановка Pave (только камни одного размера), расстановка вручную (просто тыкаешь, куда поставить), авторасстановка по дорожке адаптированная к ширине дорожки, расстановка Паве на шарике или куске шарика, прямоугольный Pipe с промежуточными сечениями как в родном Пайпе.
Все работы с камнями производятся с блоками из внешних файлов, так что возможна модификация уже расставленных камней (ака размер, наклон буля для сверления, размер крапанов и т.п.) до момента взрыва блоков.
В Матриксе это конечно сделано толковей, но меня устраивает то, что я сэкономил гроши... :))) и получил вполне рабочий (есть конечно недоработки кое-какие) вариант.
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
А что мешает написать этот самый плагин и запускать скрипты из него? Впрочем, надо почитать инфу по OLE - я уверен, что прицепиться к уже запущенному Рино можно.
Я подглядывал в Матрикс :)
У меня сделаны: билдер печаток (нормальных печаток, а не тех страхолюдин из Матрикса), билдер и расстановщик резаков для камней, жутко корявый расстановщик крапанов, крутильщик крапанов вокруг оси камня, расстановка камней заданного диаметра по линии.
Планирую сделать расстановку камней по поверхности, как в матриксе, но через команду -_OrientOnSrf мне как-то не очень нравится - не знаю как диаметр задавать интерактивно.
Никак не могу понять как Gemvision сделали интерактивные расстановщики крапанов и, особенно, резаков - чтоб при манипуляциях с движками менялись сразу все объекты. Точно не History.
Паве, даже одним диаметром, - это ого-го. Можно скриншот результата посмотреть? Про пайп что-то не понял.
Пользователь
Регистрация: 14.09.2006

Сообщений: 216
В друзьях у: 0
Голосов: 0 / 0
Плагин писать - это надо С++, у меня нету, и SDK тоже нет, и в СИ я не шарю так как в Делфи :) И думаю это не проще будет, чем просто со скриптами работать. :) Я просто сунулся сейчас в облагораживание скриптов, а так глубоко копать аж до плагинов - не готов пока. :)

Привязка через OLE есть, нашел, но гадство не работает. :( Причем если применительно к АвтоКАДу еще есть какие-то пояснения на форумах, то к Ринке - ноль.

Касательно интерактивности в Матриксе - думаю там тоже сделано все через блоки. А блоки - это очень полезная штука. Вот например даже своими средствами я могу отредактировать количество крапанов на камнях, уже расставленных по поверхности за счет редактирования исходного файла блока. Или их диаметр.

Что мне нравится в Матриксе, так это дорасстановка камней в ручном режиме к Паве. Красиво смотрится. :) Плюс разные диаметры камней. В принципе сделать можно и такое в скрипте, но больше времени надо потратить... помозговать.

Прямоугольный пайп - это когда вместо окружностей на концы базовой кривой ставятся ректанглы (ессно с задаваемыми сторонами), плюс как в родном пайпе - возможность вставки пром сечения в участке между концами кривой.

Скриншот можно показать, но толку? :) Вот видео расстановки - это гораздо информативней. Может выложу попозже ролик.

Подитожу все вышесказанное: Расстановку в автомате всех камней нужно делать блоками. А потом, если чего поменять - исходный файл корректируешь, и BlockManager -> Update. Я где-то на форуме кажись писал про BlockManager.
Пользователь
Регистрация: 10.09.2008
Откуда: Иваново

Сообщений: 31
В друзьях у: 0
Голосов: 0 / 0
Камни у меня позаимствованы прямо из Матрикса - они блоки, да. Но в то что Матрикс расставляет крапана и резаки блоками - что-то не верю. Сейчас протестирую, но мне кажется что работать это будет ещё дольше чем простая расстановка.
Скриншот мне нужен чтоб оценить качество расстановки ;)
"дорасстановка камней в ручном режиме к Паве" - это Gem Spring? Пружинка такая на иконке? Очень хочу такую сделать, но боюсь мозг сломать.
3 страницы 1 2 3 >
https://www.traditionrolex.com/13