Перейти к публикации
  • Привет. Кажется, ты используешь AdBlock. Наш форум развивается и существует за счет доходов от рекламы. Добавь нас в исключения =) КАК ДОБАВИТЬ?
MuForum

Ruida RMA - Remote Mobile Application

Рекомендованные сообщения

Здравствуйте.
Предлагаю вашему вниманию мобильное приложение под Android для контроллера Ruida.

Ruida RMA - мобильное приложение, которое позволяет удобно управлять станком через Wi-Fi и существенно облегчает юстировку станка.

Youtube video: https://www.youtube.com/watch?v=tUU28vExpJo


Google Play: https://play.google.com/store/apps/details?id=com.bor.ruidarma
- Приложение платное.


P.S. -> Буду рад любым замечаниям, предложениям.

001.jpg

002.jpg

003.jpg

004.jpg

005.jpg

006.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А в чём отличие от старой и всем известной версии? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

30 минут назад, MuForum сказал:

P.S. -> Буду рад любым замечаниям, предложениям.

Вы бы хоть спросили бы про саморекламу, а то правилами так то запрещено.

 Из солидарности к коллеге-программисту тему оставляю пока что.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Награды пользователя

6 часов назад, PavelK сказал:

Вы бы хоть спросили бы про саморекламу, а то правилами так то запрещено.

 Из солидарности к коллеге-программисту тему оставляю пока что.

 

Добрый вечер.

Приношу свои извинения, это моя ошибка, что я невнимательно читал правила.

Я хотел написать вам в личку, но, к сожалению, я не смог, так как у меня меньше 10 сообщений.

Если возможно, подскажите пожалуйста, куда перенести тему, чтобы я не нарушал правила.

 

P.S. -> Данное приложение, честно говоря, я в первую очередь разрабатывал для себя.

- Так как я искал что-то аналогичное, но не нашел. Я постарался в данном приложении сделать всё масимально удобно и заточить всё под конкретные задачи.

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

7 часов назад, MuForum сказал:

- Так как я искал что-то аналогичное, но не нашел.

Странно, что не нашли. Сборка под андроид существует очень давно. и прекрасно работает на контроллерах стандартных серий.
Поковыряйте, вдруг что полезное наковыряете .. )

Na78kIgyKvo.jpg

RuidaAcs_Android_V1.1.apk

RuidaAcs_Android_V1.0.apk

Изменено пользователем Dan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4 минуты назад, Dan сказал:

Странно, что не нашли. Сборка под андроид существует очень давно. и прекрасно работает на контроллерах стандартных серий.
Поковыряйте, вдруг что полезное наковыряете .. )

Na78kIgyKvo.jpg

 

RuidaAcs_Android_V1.1.apk 1 MB · 0 скачиваний

Здравствуйте.

Данное приложение я находил, но, у него есть ряд проблем.

Ruida ACS - Данное мобильное приложение было скомплиировано под targetSdkVersion="11", а это Android 3.0. (https://developer.android.com/studio/releases/platforms#3.0)

- В связи с этим, оно нормально не работает на новых версих андроид. (Пришлось взять старый телефон, чтобы пощупать его)

- Так же у данного приложение есть ряд проблем с отправкой и подключение к лазеру по UDP протоколу.

- По сугубо моему мнению, им пользоваться неудобно, так как там всё засунуто в одно место.

- Более того, у него нет возможности делать юстировку лазера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, MuForum сказал:

Данное приложение я находил, но, у него есть ряд проблем.

А говорите, не находили. 
Да, проблемы есть, но, что странное, оно нормально работает и на старших версиях андроида. (Лично моё - штука на любителя).

2 минуты назад, MuForum сказал:

- Более того, у него нет возможности делать юстировку лазера.

Если данный функционал только перемещает голову по углам, то странно это назвать юстировкой, если только там не заложена возможность установки точек юстировки на заданном расстоянии от крайних значений по осям. 

Кстати: на последней версии RDC6445S проверяли?
Сам лично протокол не ковырял, но есть подозрение, что разрабы опять его слегка изменили. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

10 минут назад, Dan сказал:

А говорите, не находили. 
Да, проблемы есть, но, что странное, оно нормально работает и на старших версиях андроида. (Лично моё - штука на любителя).

Если данный функционал только перемещает голову по углам, то странно это назвать юстировкой, если только там не заложена возможность установки точек юстировки на заданном расстоянии от крайних значений по осям. 

Кстати: на последней версии RDC6445S проверяли?
Сам лично протокол не ковырял, но есть подозрение, что разрабы опять его слегка изменили. 

Тут принцип немного иной, когда вы конфигурируете подключение к вашему лазеру, вы указываете рабочее поле в мм.

Затем заводите голову в вверхний левый угол и фиксируете точку, приложение само вычисляет координаты и закрепляет из за этими 9 точками.

- Так же учитывая, что станки по разному настроены, была добавлена инверсия координат по оси X и Y.

- Для удобного использования при юстировке подменяется скороcть перемещения а 400, чтобы голова быстро перемещалась.

- Я проверял приложение на контроллере "RDC6442G-B".

 

P.S. -> На контроллере "RDC6445S", не проверял, так как нет под рукой.

 

003.thumb.jpg.4c352d73a0d1040c831dd781c32c6096.jpg006.thumb.jpg.e4690c53a2ba3b47bacb6f5c13a39ab2.jpg

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 минуты назад, MuForum сказал:

приложение само вычисляет координаты и закрепляет из за этими 9 точками.

Это плохо. В таком таинстве, как юстировка, нельзя всё подгонять под некой единый формат - всё сильно индивидуально. (основано на многолетнем опыте с десятками, может уже и сотнями, станков различной конфигурации и конструкции).

6 минут назад, MuForum сказал:

- Более того, для удобного использования при юстировке подменяется скорсоть на 400

Это сильно зря сделано. Ибо не все станки смогут безболезненно перенести такие скорости. (Мы не знаем заводские настройки ускорений и стартовых скоростей по осям, мы не знаем тип ШД, мы не знаем дробления шагов на драйверах - это всё сильно может влиять на поведение ШД на высоких скоростях, особенно на дешёвых станках с 2-х фазными слабыми моторами стандарта Nema17). А для непосвящённого человека вход ШД в резонанс  может довести его до инфаркта. ) 

Но, полагаю, коллективный разум вам сможет помочь ... 

Щас Паша нарисуется, ещё чо-нить добавит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 минут назад, Dan сказал:

Это плохо. В таком таинстве, как юстировка, нельзя всё подгонять под некой единый формат - всё сильно индивидуально. (основано на многолетнем опыте с десятками, может уже и сотнями, станков различной конфигурации и конструкции).

Это сильно зря сделано. Ибо не все станки смогут безболезненно перенести такие скорости. (Мы не знаем заводские настройки ускорений и стартовых скоростей по осям, мы не знаем тип ШД, мы не знаем дробления шагов на драйверах - это всё сильно может влиять на поведение ШД на высоких скоростях, особенно на дешёвых станках с 2-х фазными слабыми моторами стандарта Nema17). А для непосвящённого человека вход ШД в резонанс  может довести его до инфаркта. ) 

Но, полагаю, коллективный разум вам сможет помочь ... 

Щас Паша нарисуется, ещё чо-нить добавит.

Я думаю вы не внимательно прочитали.

Вы сами указываете в настройках размер вашего рабочего поля, и не важно какое оно у вас.

- Дальше когда вы фиксируете левый вверхний угол, вычисляются машинные координаты позиций, на основе размера рабочего поля, которое вы указали.

- Для удобства, после фиксации на каждой кнопки пишутся координаты, куда будет перемещена голова.

На счет скорости, думаю в каком-то смысле вы правы, и будет лучше если человек сможет сам эту скорость выставлять.

- В следующей версии(в понедельник/вторник) будет новая версия с данной возможностью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

31 минуту назад, MuForum сказал:

Я думаю вы не внимательно прочитали.

Вы сами указываете в настройках размер вашего рабочего поля, и не важно какое оно у вас.

Не, прочитал внимательно. 
Да, можно указать размер поля за вычетом желаемой для меня величины. 
Но какова точка отсчёта после этого? От чего он отталкивается в дальнейшем, от аппаратного нуля или от чего? 
Мне кажется, немного сложновато для конфига и понимания простому смертному. 

На мой взгляд, проще задать размер поля и отступ по осям.
В этом случае и привязка останется к аппаратному нулю и отступы вычисляемы (Ну, это если вы так хотите реализовать такую фичу, но лично я бы таким никогда не пользовался). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Dan сказал:

Не, прочитал внимательно. 
Да, можно указать размер поля за вычетом желаемой для меня величины. 
Но какова точка отсчёта после этого? От чего он отталкивается в дальнейшем, от аппаратного нуля или от чего? 
Мне кажется, немного сложновато для конфига и понимания простому смертному. 

На мой взгляд, проще задать размер поля и отступ по осям.
В этом случае и привязка останется к аппаратному нулю и отступы вычисляемы (Ну, это если вы так хотите реализовать такую фичу, но лично я бы таким никогда не пользовался). 

Сколько людей, столько мнений =)

По мне проще переместить голову в вверхний левый угол и зафиксировать эту точку. (Эта точка у вас и будет X1)

- После чего на базе абсолютных координат лазера, будет вычислены дургие точки.

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

006.thumb.jpg.e4690c53a2ba3b47bacb6f5c13a39ab2.jpg

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, MuForum сказал:

то при нажатии на перемещение в программе, у вас голова не ударится.

А почему она должна ударяться?
Если в контроллере задано поле и активированы, как минимум, по одному концевику на оси. 
Почему точка привязки именно левый верхний угол, а не, скажем, аппаратный ноль, который у всех может быть в любом углу, но чаще всего, это верхний правый?

10 минут назад, MuForum сказал:

Сколько людей, столько мнений =)

Это да, согласен .. )
Ну, я высказал лично своё мнение.
Лично мне необходимо банальное перемещение головы по полю, пульс, origin, ну и рамка. Всё. Можно добавить старт. Но при работе уже непосредственно с заданием я предпочитаю все оперативные действия выполнять с панели станка. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Dan сказал:

А почему она должна ударяться?
Если в контроллере задано поле и активированы, как минимум, по одному концевику на оси. 
Почему точка привязки именно левый верхний угол, а не, скажем, аппаратный ноль, который у всех может быть в любом углу, но чаще всего, это верхний правый?

Это да, согласен .. )
Ну, я высказал лично своё мнение.
Лично мне необходимо банальное перемещение головы по полю, пульс, origin, ну и рамка. Всё. Можно добавить старт. Но при работе уже непосредственно с заданием я предпочитаю все оперативные действия выполнять с панели станка. 

1. Первая реализация для юстировки была реализована на смещениях, и не один раз случалось, когда я нажимал не ту кнопку и происходило смещение на X координат, что приводило к удару головы.

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

2. Точка привязки в приложении - левый вверний угол. Это просто точка, которая берётся за основу для вычисления абсолютных координат.

- Приложению всё равно, где у вас аппаратный ноль.

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

3. Всё что вы описали, это всё есть и разбито на две страница с заточкой под конкретные задачи.

- Для юстировки, вам нужно быстрое перемещение головы в заданые точки и пульс - всё. (Всё остальное - личнее и не нужное)

- Для подгонки - вам нужно переключение скорости, перемещение по осям X/Y, origin, pulse, start/stop, frame, esc - всё. (Опять же, остальное лишнее)

-- Лично мне было удобно ещё перемещение по диагоналям, особенно когда на большом станке пристреливаешь в левом вверхнем углу =)

 

Для удобства я заблокировал переварачивание приложения в горизонтальный режим. Все кнопки снёс вниз, чтобы не тянуться вверх пальцем. Реализовал автоматическое переподключение к лазеру, когда вы возвращаетесь в приложение с свернутого/заблокированно режима. И много других вещей, которые меня напрягали при ежедневной работе.

 

Сейчас вот попросили добавить возможность подключения через TCP протокол, так как многие используют "LightBurn Bridge".

Для удобства юстировки ещё подумываю сделать возможность указывать для каждой точки мощность луча.

- Потому что в вверхнем левом углу, мощность луча должна быть минимальная, а в правом нижнем - максимальная.

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, MuForum сказал:

когда я нажимал не ту кнопку и происходило смещение на X координат, что приводило к удару головы.

Как это возможно, если в контроллере чётко заданы размеры поля или установлены концевики? 
Или софтина способна заставить контроллер игнорировать заводские настройки? Что в принципе неправильно и опасно.

 

2 часа назад, MuForum сказал:

- Потому что в вверхнем левом углу, мощность луча должна быть минимальная, а в правом нижнем - максимальная.

А это зачем?
И чем это обусловлено?

 

2 часа назад, MuForum сказал:

2. Точка привязки в приложении - левый вверний угол. Это просто точка, которая берётся за основу для вычисления абсолютных координат.
- Приложению всё равно, где у вас аппаратный ноль.

А может плясать от печки? Привязаться к аппаратному нулю? Или к декартовому, от которого и строится конфиг контроллера?

 

2 часа назад, MuForum сказал:

Сейчас вот попросили добавить возможность подключения через TCP протокол, так как многие используют "LightBurn Bridge".

Это как? Если Ruida, да и другие контроллеры, заточена на UDP.
Между какими узлами tcp?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, Dan сказал:

Как это возможно, если в контроллере чётко заданы размеры поля или установлены концевики? 
Или софтина способна заставить контроллер игнорировать заводские настройки? Что в принципе неправильно и опасно.

Данная программа работает с зашифрованным протоколом, и может давать любые задания/команды.

По умолчанию, когда приходит команда на прямую контролеру, котроллер ничего не проверяет.

Именно по этой причине и было переделано на абсолютные координаты и фиксацию в верхнем левом углу.

- Хотя угол фиксации в даном случае роли не играет, так как всё равно в расчет берутся координаты.

2 часа назад, Dan сказал:

А это зачем?
И чем это обусловлено?

Я хотел сказать, что в самом ближнем месте от лампы(вверхний левый угол), мощность пульса нужно делать слабее, а в самом дальнем углу от лампы(правый нижний угол), пульс нужно делать немного сильнее.

- Я делал юстировку на специальном прицеле и повех молярный скотч. Так вот, чтобы пульс не обжигал малярный скотч, но точку было четко видно, и нужно регулировать мощность в разных точках.

2 часа назад, Dan сказал:

А может плясать от печки? Привязаться к аппаратному нулю? Или к декартовому, от которого и строится конфиг контроллера?

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

2 часа назад, Dan сказал:

Это как? Если Ruida, да и другие контроллеры, заточена на UDP.
Между какими узлами tcp?

LightBurn Bridge - описание с оффициального сайта.

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 минут назад, MuForum сказал:

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

Кстати, нет, говорю серьёзно, как вариант реализации. Если у вас есть контроллер, почему бы не снять дамп ответа?
Нет, эти беседы контроллера я не разбирал. Скорее всего Паша ответит на этот вопрос. На сколько я знаю, он имеет весьма обширное представление о протоколе, ибо ковырял его.

 

8 минут назад, MuForum сказал:

Это спец.прибор, который работает с лазером напрямую через Ethernet порт, а дальше работает через Wi-Fi и по TCP.

TCP только до моста, а дальше в любом случае - UDP. Лично для меня, пока сомнительно использование этого устройства. 
Ну, если народ хочет, можно и допилить. 

 

10 минут назад, MuForum сказал:

По умолчанию, когда приходит команда на прямую контролеру - Ruida ничего не проверяет.

Вот именно это мне не очень нравится. Народ разный, могут и ошибиться в размерах. 

 

12 минут назад, MuForum сказал:

Так вот чтобы пуль не обжигал малярный скотч, но точку было четко видно, и нужно регулировать мощность в разных точках.

Ну, за 7 с лишним лет работы на различных станках, ниразу подобное не требовалось. Всегда было достаточно одного значения мощности. Но ... может кто и оценит эту фичу. 

 

На самом деле, тема весьма интересна, но, лично для меня, есть ряд не очень понятных и спорных моментов.
Ну, и в дальнейшем, думаю, стоит пересобрать это и под огрызки, если "религия" позволяет . ) 

PS ... Куда-то главный по тарелочкам потерялся ... )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

28 минут назад, Dan сказал:

Кстати, нет, говорю серьёзно, как вариант реализации. Если у вас есть контроллер, почему бы не снять дамп ответа?
Нет, эти беседы контроллера я не разбирал. Скорее всего Паша ответит на этот вопрос. На сколько я знаю, он имеет весьма обширное представление о протоколе, ибо ковырял его.

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

28 минут назад, Dan сказал:

TCP только до моста, а дальше в любом случае - UDP. Лично для меня, пока сомнительно использование этого устройства. 
Ну, если народ хочет, можно и допилить. 

Абсолютно с вами согласен, но, "клиенты" на iOS за это платят =)))

28 минут назад, Dan сказал:

Вот именно это мне не очень нравится. Народ разный, могут и ошибиться в размерах. 

Точно также, человек может ошибится и указав неправильные размеры рабочей зоны в программе RDWorksV8 =)

28 минут назад, Dan сказал:

Ну, за 7 с лишним лет работы на различных станках, ниразу подобное не требовалось. Всегда было достаточно одного значения мощности. Но ... может кто и оценит эту фичу. 

Я согласен, что без этого можно спокойно обойтись, но как доп.фича, я лично хотел бы это иметь =)

28 минут назад, Dan сказал:

На самом деле, тема весьма интересна, но, лично для меня, есть ряд не очень понятных и спорных моментов.
Ну, и в дальнейшем, думаю, стоит пересобрать это и под огрызки, если "религия" позволяет . ) 

Я писал приложения под iOS, это не проблема, просто у огрызка нужно платить $100 в год за возможность публикации приложений.

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

 

Это приложение изначально получилось как идея сделать нормальное удаленное управление для лазера =)

- Я изначально начал делать мобильное приложение, но при повседневной работе, для подгонки - это не очень удобно лично мне.

- Не хватает тактильных ощущений =))) Поэтому я пошел дальше< разработал спец.приложений под Windows x64, которое перехватывает нажатия "Wireless USB NumPad" и отправляет команды контроллеру =))) 

Ruida_RWA_v001.png

 

Numpad_v001.jpg

 

 

 

 

 

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, MuForum сказал:

Так как контролер не пресылает информацию об этом. Вы сами должны задать в программе где у вас точка home(в каком углу)

Я немного не об этом. А о получении размера поля с контроллера, дальше от него и плясать. Аппаратный ноль так же можно взять из состояния Dir polarity по осям. Но тут есть проблема - половина станков/контроллеров сконфигурирована неправильно .. ) Либо явно указать, как в RD положение аппаратного нуля.

 

13 минут назад, MuForum сказал:

Точно также, человек может ошибится и указав неправильные размеры рабочей зоны в программе RDWorksV8 =)

Если чел уже достаточно давно работает на станке, то вероятность ввода некорректного размера по осям очень мала.
 

 

15 минут назад, MuForum сказал:

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

Как обычно, с огрызками всё испортила "религия" .. )

 

16 минут назад, MuForum сказал:

- Не хватает тактильных ощущений =)))

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, Dan сказал:

Я немного не об этом. А о получении размера поля с контроллера, дальше от него и плясать. Аппаратный ноль так же можно взять из состояния Dir polarity по осям. Но тут есть проблема - половина станков/контроллеров сконфигурирована неправильно .. ) Либо явно указать, как в RD положение аппаратного нуля.

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

6 минут назад, Dan сказал:

Если чел уже достаточно давно работает на станке, то вероятность ввода некорректного размера по осям очень мала.

В таком случае, вероятность того, что такой человек введёт "кривые" данные в приложение - тоже сводится к нулю :D

6 минут назад, Dan сказал:

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

Именно поэтому я перевел всё на мини клавиатуру. При пристрелке - на много удобнее, но, это должен быть рядом комп с Windows x64, клавиатура + ресивер от клавиатуры нормально работает на расстоянии до 1.5 метра.

А вот при юстировке - на много удобнее моб.приложение + ты пришел в любое место, и при наличии приложения, тебе больше ничего не надо =)

Изменено пользователем MuForum

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 минут назад, MuForum сказал:

+ ты пришел в любое место, и при наличии приложения, тебе больше ничего не надо =)

Ну, не в любое. А только там, где есть сеть, и в эту сеть воткнут контроллер, и тебе дали доступ в неё. )
Ну, а собственный мир мы сами себе построим, какой хотим .. ) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Приложение Ruida RMA не доступно в гуглплэй. Подскажите где можно скачать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...