sahi писал(а):
здраствуйте!
не совсем ясна задача. , зачем такие сложности? пишем простейший скрипт назначаем ему клавишу и всё. при нажатии выбранной клавиши обект или модель будет передвигать на выбранный шаг в указанном направлении.
Это было бы супер!! Хочу уточнить. В SketchUp, получается, возможно выбрать, так сказать, центр координат, (0, 0, 0) и от него в начале работы скриптами устанавливать элементы модели на разные расстояния (скажем, модель "автооператор" - На 10, 100, 100, модель "каретка" - 20, 100, 100)? И затем скриптами же "двигать" эти модели (скажем, модели "автооператор" и "каретка" передвинуть на 10 по оси z)? Если так, то это то, что нужно!
sahi писал(а):
можно это сделать и из сторонней программы. выглядеть это будет так - программа вызывает скрипт - а скрипт уже выполняет свою функцию. - это довольно простой скрипт всего пять - семь сточек.и опять же изачем это делать из другой программы? но если вы всё же желаете я могу написать скрипт а вам нужно только его вызвать. и всё.
Да, это то, что нужно!
Поясняю ещё раз. Я пишу программы для ПЛК (программируемый логический контроллер). Грубо говоря, это микроконтроллер для промышленной автоматики. Сейчас мы делаем проект ручного автооператора. Это такой подвижный типа кран, который ездит по рельсам вдоль гальванической линии и опускает/поднимает в ванны/из ванн с различными технологическим жидкостями подвески с деталями. Приводится в движение кран двумя двигателями - вертикальным (который подымает/опускает подвеску) и горизонтальным (двигает автооператор вперёд/взад по линии). Каждый двигатель управляется четырьмя входами, то есть всего ПЛК должен использовать 8 своих выходов.
Позиционирование автооператора на позиции и подвески на положении вверху/внизу производится с помощью 3 и 4 соответсвтенно индуктивных датчиков. Также используются конечные выключатели - всего получается 11 датчиков, подключённых к входам, с помощью которых контроллер автооператора производит "выяснение" своего положения в пространстве.
Я собрал устройство на другом микроконтроллере, своеобразную интерфейсную плату, которая имеет 11 выходов (то есть, может управлять 11 входами ПЛК) и 8 входов (то есть, может считывать состояние 8 выходов ПЛК). Интерфейсная плата по USB "общается" с программой, написанной на Delphi на ПК. В программе производится эмуляция движения реального автооператора. То есть, известна скорость движения по горизонтали и вертикали. Каждые 50 мс, если ПЛК выдаёт сигнал на двигатели, в программе производится инкремент (или декремент) положения модели нарисованного автооператора. Параллельно проверяется, не "замкнулись" ли его "датчики", и если замкнулись, то передаётся этот сигнал в интерфейсную плату, и она соответственно устанавливает свои выходы. ПЛК считывает свои входы (ему как бы всё равно, реальные датчики на входе, или такие) и снимает сигнал управления двигателем. "Двигатель" останавливается, модель останавливается.
Для чего нужна 3D модель. В настоящий момент эмулируемая линия очень простая (9 ванн в один ряд, один ручной автооператора). В будущем планируется делать сложные длинные линии (возможно, в два ряда, либо под углом), с несколькими автооператорами. Нарисовать, конечно, можно, но потеряется наглядность, да к тому же я до сих пор чётко не вижу, как на 2D можно нарисовать двухрядную скажем линию (а между рядами ещё тележки должны перемещаться). Да и просто хочется красиво сделать, современно
Для чего вообще нужно моделирование. Для работы нескольких автооператоров в автоматическом режиме должен быть очень хорошо отлажен алгоритм их взаимодействия, чтобы не происходило простаивания, очередей. Строить в производственном цеху прототип линии почти нереально, а когда линия уже у заказчика, остаётся очень мало времени на программирование и запуск. Поэтому придумалось и отлично себя зарекомендовало на данном этапе вышеописанное моделирование. Вот... вроде всё рассказал, если что ещё непонятно, с удовольствием поясню.
То есть программа моделирования на дельфи меня полностью устраивает, хочется из неё управлять 3D моделью, просто двигать в модели элементы друг относительно друга. Вы говорите, что из сторонней программы можно двигать модели в SketcрUp с помощью скриптов. Вы можете показать пример, как это делается? Или где можно хорошо об этом почитать?
Спасибо большое!