Домой › Форумы › Для программистов › Как использовать функции Verge3d через script ?
Помечено: outline
- В этой теме 16 ответов, 3 участника, последнее обновление 3 года, 11 месяцев назад сделано alex56.
-
АвторСообщения
-
11 октября, 2020 в 10:24 #16463alex56Customer
Подскажите где почитать или как реализовать подсветку объектов в сцене (outline) ? я использую SOCKET.IO, при получении информации с сервера через скрипт мне необходимо подсвечивать определенные 3D объекты в сцене. что бы я не пробовал и как бы не использовал, браузер сообщает что “outline(myObject, ‘enable’)” не является функцией. пробовал скрипт в html пазле, через exec script – не получается запустить функцию outline.
11 октября, 2020 в 11:42 #16465Yuri KovelenovStaffДобрый день!
Можно использовать пазл ‘outline’
https://www.soft8soft.com/docs/manual/en/puzzles/Objects.html#outline
и вызывать его через JavaScript
https://www.soft8soft.com/docs/manual/en/introduction/Using-JavaScript.htmlИли подсмотреть код этого пазла в файле visual_logic.js.
11 октября, 2020 в 13:24 #16466alex56Customerв пазлах все события связаны с непосредственным участием пользователя в браузере.
мне необходимо чтобы outline срабатывал при поступлении информации через SOCKET.IO . я организовал связь клиента с сервером через сокет но как бы я не пробовал использовать функцию outline она не работает через предложенные вами выше способы. “var obj = app.scene.getObjectByName(VARS[‘vur’]);
obj.material = new v3d.MeshBasicMaterial({color: new v3d.Color(Math.random(), Math.random(), Math.random())});”—- это в exec script работает а outline не работает. “getObjectByName” и “outline” — описаны в одном и том же файле но одна функция работает а другая нет. у меня есть функция которая получив через сокет информацию отображает её в консоли браузера, вместо console.log как использовать outline?11 октября, 2020 в 22:42 #16467alex56CustomerВот пример как я пробую использовать через exec script. что я делаю неправильно?
Вложения:
Вы должны войти для просмотра вложений.12 октября, 2020 в 14:26 #16476Yuri KovelenovStaff12 октября, 2020 в 15:17 #16479alex56CustomerЯ разрабатываю промышленные системы автоматизации. Используя ваш продукт я пытаюсь создать скада систему с трехмерным отображением зданий и сооружений. Socket мне необходим для отображения на сцене помещения в котором произошла аварийная ситуация. В пазле html я внедрил script с функциями сокета, но сокет сработал один раз и при обновлении страницы перестает работать. Я уже сам разобрался как outline запустить через exec script. Но не в теле функции socket. У меня вопрос заключается в следующем – в главном файле html созданного вашим приложением в тэге body я размещаю необходимый функционал socket, в асинхронной функции на событие поступления информации от сервера мне необходимо использовать outline. Подскажите пожалуйста способы как использовать outline из главного html файла?
12 октября, 2020 в 18:35 #16488Ivan LyubovnikovStaffПодскажите пожалуйста способы как использовать outline из главного html файла?
Если нужен доступ к паззлам извне, то для этого можно использовать паззл процедуры, внутрь которого вставить exec script:
И потом вызывать процедуру по её имени вот так:
v3d.puzzles.procedures['outline']();
Или можно, совсем не используя паззлы, сделать через API по аналогии с кодом, который у вас сейчас генерируется паззлами в visual_logic.js.
Вложения:
Вы должны войти для просмотра вложений.Co-founder and lead developer at Soft8Soft.
13 октября, 2020 в 13:05 #16497alex56CustomerОгромное вам спасибо! предложенный вами вариант работает. Ваш продукт действительно довольно прост в использовании и очень сокращает время разработки, но главное достоинство работа с 3ds max.
Вложения:
Вы должны войти для просмотра вложений.13 октября, 2020 в 16:09 #16504alex56CustomerВозможно ли в одном файле сцены разным объектам назначать разный цвет свойству outline? В 3ds max эффект outline выбирается в настройках и применяется ко всей сцене.
13 октября, 2020 в 17:59 #16505Ivan LyubovnikovStaffВозможно ли в одном файле сцены разным объектам назначать разный цвет свойству outline?
Нет, он применяется только для всей сцены сразу.
Co-founder and lead developer at Soft8Soft.
13 октября, 2020 в 23:42 #16507alex56Customerспасибо, буду использовать материалы и анимации.
30 октября, 2020 в 12:24 #16549alex56CustomerЗдравствуйте! Подскажите пожалуйста как из внешних файлов .js или .html я могу получить значение свойства переменной созданной в пазлах? Например из главного
.html файла моего проекта я получаю доступ к функциям созданным в пазлах через указанный вами метод -” v3d.puzzles.procedures[‘outline’]();” Как по анологии работать со значениями переменных?30 октября, 2020 в 19:48 #16553Ivan LyubovnikovStaffЗдравствуйте, для переменных нет такого же доступа, как
v3d.puzzles.procedures
,
но есть пара способов того, как это настроить.1) Можно сделать специальную процедуру в паззлах для возвращения значения переменной:
и потом просто её вызывать
var value = v3d.puzzles.procedures['getVar']();
2) Можно добавить паззл exec script, в котором зарегистрировать функцию (в принципе неважно на чем
v3d.puzzles.procedures
или хоть наwindow
), которая вернет специальный встроенный объект VARS, содержащий вообще все переменные:
(код:v3d.puzzles.procedures.getAllVars = function() { return VARS; }
)– и вот так им пользоваться:
var VARS = v3d.puzzles.procedures['getAllVars'](); console.log(VARS.myVar); console.log(VARS.myVar2);
Вложения:
Вы должны войти для просмотра вложений.Co-founder and lead developer at Soft8Soft.
30 октября, 2020 в 20:24 #16556alex56Customerспасибо, помимо предложенных вами способов я попробовал сделать как на прикрепленной картинке, переменную varobj я объявил в главном .html файле.
теперь могу извлекать имена объектов с которыми произвожу определенные действия, во внешние файлы с которыми дальше работаю….Вложения:
Вы должны войти для просмотра вложений.2 ноября, 2020 в 15:02 #16573alex56CustomerExec Script не работает если его добавить второй раз например в другую функцию. Если в окне для работы с пазлами Exec Script используется один раз то все корректно работает. Но стоит в этом же окне использовать еще один пазл Exec Script так браузер начинает жаловаться:
“Uncaught ReferenceError: VARS is not defined
at HTMLDocument.<anonymous> (visual_logic.js:624)”
В файле visual_logic.js я сравнил два описания Exec Script на наличие разницы –
в первом объявлении Exec Script присутствует:
” var VARS = Object.defineProperties({}, {…….”
во втором объявлении это отсутствует.
Если я копирую из первого объявления и вставляю во втором то все корректно работает, но как только пазлы пересохраню копировать и вставлять приходится каждый раз. Подскажите пожалуйста это непредусмотренное поведение элемента или я что то делаю не так?Вложения:
Вы должны войти для просмотра вложений. -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.