Мы используем файлы cookie, чтобы упростить навигацию на этом сайте. Если вы даете свое согласие на использование файлов cookie и обработку ваших персональных данных, нажмите «Принимаю».

Как использовать функции Verge3d через script ?

Домой Форумы Для программистов Как использовать функции Verge3d через script ?

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Автор
    Сообщения
  • #16463
    alex56
    Customer

    Подскажите где почитать или как реализовать подсветку объектов в сцене (outline) ? я использую SOCKET.IO, при получении информации с сервера через скрипт мне необходимо подсвечивать определенные 3D объекты в сцене. что бы я не пробовал и как бы не использовал, браузер сообщает что “outline(myObject, ‘enable’)” не является функцией. пробовал скрипт в html пазле, через exec script – не получается запустить функцию outline.

    #16465

    Добрый день!
    Можно использовать пазл ‘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.

    Chief 3D Verger | LinkedIn | Twitter

    #16466
    alex56
    Customer

    в пазлах все события связаны с непосредственным участием пользователя в браузере.
    мне необходимо чтобы 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?

    #16467
    alex56
    Customer

    Вот пример как я пробую использовать через exec script. что я делаю неправильно?

    Вложения:
    Вы должны войти для просмотра вложений.
    #16476

    Есть ли какие-либо препятствия чтобы просто использовать пазл outline? Вместо пазла Exec Script.

    Chief 3D Verger | LinkedIn | Twitter

    #16479
    alex56
    Customer

    Я разрабатываю промышленные системы автоматизации. Используя ваш продукт я пытаюсь создать скада систему с трехмерным отображением зданий и сооружений. Socket мне необходим для отображения на сцене помещения в котором произошла аварийная ситуация. В пазле html я внедрил script с функциями сокета, но сокет сработал один раз и при обновлении страницы перестает работать. Я уже сам разобрался как outline запустить через exec script. Но не в теле функции socket. У меня вопрос заключается в следующем – в главном файле html созданного вашим приложением в тэге body я размещаю необходимый функционал socket, в асинхронной функции на событие поступления информации от сервера мне необходимо использовать outline. Подскажите пожалуйста способы как использовать outline из главного html файла?

    #16488

    Подскажите пожалуйста способы как использовать outline из главного html файла?

    Если нужен доступ к паззлам извне, то для этого можно использовать паззл процедуры, внутрь которого вставить exec script: outline.png

    И потом вызывать процедуру по её имени вот так:

    
    v3d.puzzles.procedures['outline']();
    

    Или можно, совсем не используя паззлы, сделать через API по аналогии с кодом, который у вас сейчас генерируется паззлами в visual_logic.js.

    Вложения:
    Вы должны войти для просмотра вложений.

    Co-founder and lead developer at Soft8Soft.

    #16497
    alex56
    Customer

    Огромное вам спасибо! предложенный вами вариант работает. Ваш продукт действительно довольно прост в использовании и очень сокращает время разработки, но главное достоинство работа с 3ds max.

    Вложения:
    Вы должны войти для просмотра вложений.
    #16504
    alex56
    Customer

    Возможно ли в одном файле сцены разным объектам назначать разный цвет свойству outline? В 3ds max эффект outline выбирается в настройках и применяется ко всей сцене.

    #16505

    Возможно ли в одном файле сцены разным объектам назначать разный цвет свойству outline?

    Нет, он применяется только для всей сцены сразу.

    Co-founder and lead developer at Soft8Soft.

    #16507
    alex56
    Customer

    спасибо, буду использовать материалы и анимации.

    #16549
    alex56
    Customer

    Здравствуйте! Подскажите пожалуйста как из внешних файлов .js или .html я могу получить значение свойства переменной созданной в пазлах? Например из главного
    .html файла моего проекта я получаю доступ к функциям созданным в пазлах через указанный вами метод -” v3d.puzzles.procedures[‘outline’]();” Как по анологии работать со значениями переменных?

    #16553

    Здравствуйте, для переменных нет такого же доступа, как v3d.puzzles.procedures,
    но есть пара способов того, как это настроить.

    1) Можно сделать специальную процедуру в паззлах для возвращения значения переменной:

    1.png

    и потом просто её вызывать

    
    var value = v3d.puzzles.procedures['getVar']();
    

    2) Можно добавить паззл exec script, в котором зарегистрировать функцию (в принципе неважно на чем v3d.puzzles.procedures или хоть на window), которая вернет специальный встроенный объект VARS, содержащий вообще все переменные:

    2.png
    (код: 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.

    #16556
    alex56
    Customer

    спасибо, помимо предложенных вами способов я попробовал сделать как на прикрепленной картинке, переменную varobj я объявил в главном .html файле.
    теперь могу извлекать имена объектов с которыми произвожу определенные действия, во внешние файлы с которыми дальше работаю….

    Вложения:
    Вы должны войти для просмотра вложений.
    #16573
    alex56
    Customer

    Exec 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({}, {…….”
    во втором объявлении это отсутствует.
    Если я копирую из первого объявления и вставляю во втором то все корректно работает, но как только пазлы пересохраню копировать и вставлять приходится каждый раз. Подскажите пожалуйста это непредусмотренное поведение элемента или я что то делаю не так?

    Вложения:
    Вы должны войти для просмотра вложений.
Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Для ответа в этой теме необходимо авторизоваться.