Перейти к публикации

расчет тепловой задачи с пользовательскими ГУ


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

Вот интересно, если меня не устраивает способ, которым ансис считает тот или иной теплообмен, то я могу командной вставкой создать собственные ГУ. Но отражается ли это на скорости расчета?

Конкретнее.

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

А что если всю программу расчета (то есть описание всех ГУ) написать руками в командной вставке? Пользоваться ансисом только как конечно-элементной средой с удобным набором команд по общению с узлами/элементами. Но в таком случае я как бы не пользуюсь ядром ансиса при расчете, а создаю своё ядро в командной вставке. Я вручную буду составлять матрицы и проводить с ними всякие операции. Вопрос. Как такой способ решения повлияет на скорость?

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


56 минут назад, aquarido сказал:

Меня не устраивает, что в теплообмене излучением (radiosity) ансис на каждом шаге пересчитывает угловые коэффициенты.

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

Скрытый текст

 

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

А суть Вашей идеи для меня осталась весьма туманна. Вам чего в конечном счете надо? Может есть решения попроще, чем писать свою решалку?

 

 

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

ансис на каждом шаге пересчитывает угловые коэффициенты

Вы уверены, что это не по Вашей просьбе?

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Dandy сказал:

А зачем вам вообще тогда Ансис? :) Стройте модель в Wolfram Mathematica, MathLab или еще где.

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

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

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

  Скрыть содержимое

 

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

А суть Вашей идеи для меня осталась весьма туманна. Вам чего в конечном счете надо? Может есть решения попроще, чем писать свою решалку?

 

 

Вы уверены, что это не по Вашей просьбе?

С флюентом никогда не общался. А ансис уже несколько лет с некоторой периодичностью мучаю.

Я уверен, что он пересчитывает УК каждый шаг. Это связанно с тем, что в методе radiosity нет отдельной матрицы угловых коэффициентов. Он все в купе решает. Да и на форумах пытался правду найти как можно повлиять на его желание считать "константу" каждый раз.

 

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

 

 Если считать "в лоб" уйдет времени в 2-3 раза больше, чем реальный процесс (то есть ~400 часов). Поэтому и пытаюсь заставить ансис не делать лишних операций, которые жрут львиную часть времени.

 

Ссылка на сообщение
Поделиться на других сайтах
53 минуты назад, aquarido сказал:

Я уверен, что он пересчитывает УК каждый шаг. Это связанно с тем, что в методе radiosity нет отдельной матрицы угловых коэффициентов. Он все в купе решает.

Я все еще не уверен, что на это нельзя повлиять. но если принять это за данность, то стоит перейти на флюент. сетка у вас уже есть, выборки под ГУ, вероятно, тоже. время на "разобраться" займет меньше 400 часов.

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

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

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

Повлиять на пересчет УК не получится.

https://cae-club.ru/forum/i-snova-raschet-uglovyh-koefficientov

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

Цитата

стоит перейти на флюент. сетка у вас уже есть, выборки под ГУ, вероятно, тоже. время на "разобраться" займет меньше 400 часов.

 Да вот про разобраться не уверен. Тут у меня и тепловые контакты еще между экранной изоляцией (взамен излучения), и кода своего достаточно, и необходимость влиять на шаг по времени, ну еще и "рестарты" (возврат на шаг назад). Я не имею представления о структуре флюента. Куда там залезать, что бы все это делать.

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

@aquarido , ой всё. выхода нет.

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

Ссылка на сообщение
Поделиться на других сайтах
22 hours ago, aquarido said:

Я уверен, что он пересчитывает УК каждый шаг. Это связанно с тем, что в методе radiosity нет отдельной матрицы угловых коэффициентов. Он все в купе решает. Да и на форумах пытался правду найти как можно повлиять на его желание считать "константу" каждый раз.

@aquarido,

угадай мелодию источник:

Quote

 


You can specify whether new view factors should be computed or if existing values should be used:

 

Command(s): VFOPT
GUI: Main Menu> Preprocessor> Radiation Opts> View Factor 
Main Menu> Radiation Opt> Radiosity Meth> View Factor 
Main Menu> Solution> Radiation Opts> View Factor

VFOPT, Opt allows you to compute view factors and write them to a file (Opt = NEW). If view factors already exist in the database, this command also allows you to deactivate the view factor computation (Opt = OFF). OFF is the default upon encountering the second and subsequent SOLVE commands in /SOLU. After the first SOLVE command, the program uses view factors existing in the database, unless they are overwritten by the VFOPT command.

For 3-D analyses using Distributed ANSYS, you can specify parallel or serial mode for view factor calculations. See the Notes section of the VFOPT command for more information.

VFOPT allows you to output view factors in ASCII or binary file format. Binary is the default.

To ensure a good energy balance, you need to satisfy both the row sum relationship as well as the reciprocity relationship for the view factor matrix. The VFSM command can be used to adjust the view factor matrix to satisfy reciprocity and/or row sum properties.

For a perfect enclosure, each row of the generated view factor matrix should sum to a value of 1. For a leaky enclosure, the sum across any row can be less than or equal to one, depending on the amount and characteristics of the leakiness.

The VFSM command must be used before VFOPT is issued, or Solve is initiated.

 

Еще по поводу "уверенности": вы точно не путаете расчет излучения на каждом шаге с вычислением матрицы коэфф. видимости?

 

По поводу Флуента совет норм - он тоже умеет сохранять матрицу коэффициентов.

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

Правда, при рестарте тоже вычисляет заново..

 

22 hours ago, aquarido said:

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

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

Сегодня вечером или аж через две недели)

 

Хотя можем и не пробовать.

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

Да, я на самом деле немного был не прав, уже позабыл корень проблемы: 

угловые коэффициенты пересчитываются если изменился тепловой поток.

 RADIATION BOUNDARY CONDITIONS HAVE CHANGED.
 CREATING NEW VIEW FACTOR DATABASE.

Но в моем случае тепловой поток меняется практически на каждом шаге. То есть происходит постоянный пересчет угловых коэффициентов.

19 минут назад, piden сказал:

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

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

Ссылка на сообщение
Поделиться на других сайтах
41 minutes ago, aquarido said:

угловые коэффициенты пересчитываются если изменился тепловой поток.

 

Но они не должны так делать. На то они и коэффициенты.

 

Готов поспорить, что смогу заставить задачу заработать без пересчета коэффициентов :biggrin:

42 minutes ago, aquarido said:

Но в моем случае тепловой поток меняется практически на каждом шаге. То есть происходит постоянный пересчет угловых коэффициентов.

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

 

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

Если дело с рестартом правда в этом - можно обойтись вообще без него. Задать адаптивный шаг по времени, который будет подстраиваться под дельту T - T_control и скорость изменения T. Можно закон для предсказания Т задать линейным, можно по экспоненте, по любому закону...

Можно оценивать по нескольким сразу и брать самое безопасное минимальное значение шага по времени, с ограничениями на минимальное/максимальное значение)

 

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

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, piden сказал:

Но они не должны так делать. На то они и коэффициенты.

Но они так делают. Я в цикле пробовал указать ансису на свои посчитанные один раз УК, он говорит спасибо и считает их заново.

 

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

Готов поспорить, что смогу заставить задачу заработать без пересчета коэффициентов :biggrin:

Очень любопытно было бы понаблюдать.

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

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

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

 

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

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

Если дело с рестартом правда в этом - можно обойтись вообще без него. Задать адаптивный шаг по времени, который будет подстраиваться под дельту T - T_control и скорость изменения T. Можно закон для предсказания Т задать линейным, можно по экспоненте, по любому закону...

Можно оценивать по нескольким сразу и брать самое безопасное минимальное значение шага по времени, с ограничениями на минимальное/максимальное значение)

У меня чуть сложнее.

Нагреватель греет объект. Имеется обратная связь по температуре объекта.

*SET,TT1,TEMP(NODE(2.02,7.940,0))

Нагрев должен происходить по заданной прямой зависимости ( Temp=a*time+b) ) от комнатной температуры до рабочей. Далее идет выдержка на рабочей температуре.

!=============Уставка==============    
    *IF,t_tek,LE,t_nagr,THEN
    Tust=(T2-T1)*t_tek/t_nagr+T1
    *ELSE
    Tust=T2
    *ENDIF

Обратная связь используется в законе регулирования для определения текущей мощности нагревателя.Чем больше рассогласование реальной температуры объекта от уставки, тем больше мощность нагревателя.

!===========Мощность нагревателя=========
r1=0.5*(Tust-TT1)
*IF,r1,LE,0,THEN
r1=0
*ELSEIF,r1,LT,1,THEN
r1=0.5*(Tust-TT1)
*ELSEIF,r1,GE,1,THEN
r1=1
*ENDIF

q_tek1=q_ust1*r1  !-----------текущая мощность как выражение от установленной (максимальной)
BF,heat_1,HGEN,q_tek1

 

Условие для изменения шага расчета по времени:

Если средне арифметическая сумма узловых температур во всей модели изменилась не более чем на 1 градус - шаг по времени наращивается на 10%.

Если средне арифметическая сумма узловых температур во всей модели изменилась в интервале 1-3 градуса - шаг по времени остается неизменным.

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

 

Задачу усложняет то, что нагреватель греет объект исключительно излучением, что крайне нелинейно сказывается на изменении температур от мощности. Потому такие рамки по шагам.

 

 

С нетерпением жду критики и предложений.

Ссылка на сообщение
Поделиться на других сайтах
38 minutes ago, aquarido said:

С нетерпением жду критики и предложений.

Обрывочные куски кода мало о чем говорят. Гадать, что символизирует t_tek, t_nagr, Tust, TT1 итд сегодня желания особого нету. Я понимаю, что текущая, нагревателя и устоявшаяся/устройства.... Но ощущение, как будто начал фильм смотреть с середины. 

Вы или опишите задачу человеческим языком (например так, как вам ее ставили), или вообще весь код (с комментариями!) выкладывайте.

 

40 minutes ago, aquarido said:

средне арифметическая сумма узловых температур во всей модели

Это как? Средняя по объему температура во всей модели - понимаю. Даже средняя по всем узлам, хотя толку от такой оценки не много.

Можно тупо сложить все значения с узлов. Но вот со средним арифметическим как-то не ясно....

 

55 minutes ago, aquarido said:

итерация не засчитывается, откатываемся на предыдущую итерацию, уменьшаем шаг по времени в 2 раза и пересчитываем.

И критерии адаптации шага тоже не понятны, ведь не ясны цели расчета. Толку описывать про среднее арифметическое, если не ясно, какую цель преследует механизм адаптации шага. Почему нельзя повышать Т больше, чем на 3 градуса за шаг?

Почему следим за температурой, а не, например, за дисбалансом энергии? Через него разве не проще было бы контролировать шаг?

 

 

Основываясь на вашем стиле изложения информации, пытаюсь представить ход работы вашей мысли при задании ГУ. У меня появилось подозрение, что с каких-то зон у вас в процессе решения включается / выключается излучение путем перезаписи ГУ. И тогда, конечно, изменяется кол-во элементов, участвующих в излучении, пересчитывается матрица коэффициентов.

 

 

 

Ведь можно выключить источник, удалив ГУ. А можно выключать, прописав 0 для значения мощности..

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

Выкладываю проект

https://drive.google.com/open?id=1bsgqPVF8Tv7WpkUKc0nEbJv5JqsEO8-O

Там ряд расчетов. Смотреть, например, модуль С "My"

 

В задаче 6 независимых нагревателей и соответственно 6 датчиков температуры.

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

Ссылка на сообщение
Поделиться на других сайтах
3 minutes ago, aquarido said:

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

Ок, спасибо)

Очень желательно еще описать саму задачу. И рассказать, зачем вообще понадобилось моделировать все время работы в печи, раз там контроллер есть. Логику работы контроллера проверить?)

UPD: понял по названию, что тут все серьезно)) И отжиг такого аппарата будут моделить посекундно))

 

On 9/18/2014 at 10:45 AM, aquarido said:

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

Обучение онлайн.

Задача еще с тех времен?)

 

И, судя по файлам, гражданин Майоров тогда для вас что-то сделал... Но онлайн-обучить так и не смог?

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

В таких случаях, Тимур, я себя просто археологом ощущаю :biggrin:

 

Но сегодняшний вечер заканчивается. А следующий похожий будет недельки через две..

Ссылка на сообщение
Поделиться на других сайтах
2 hours ago, aquarido said:

Но они так делают.

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

Но это в ВБ. Если все делать в классике через цикл, может и получится обойти..

 

Если варьировать тепловую нагрузку в пределах одного шага, VF не пересчитываются.

Ссылка на сообщение
Поделиться на других сайтах
On 5/31/2018 at 1:42 PM, aquarido said:

Меня не устраивает, что в теплообмене излучением (radiosity) ансис на каждом шаге пересчитывает угловые коэффициенты.

 

Oh yeah!!

 

Получилось победить! В настройках командной вставки можно настроить к каким шагам она применяется. И там есть опция "ко всем" :biggrin:

Так что теперь VF каждый раз зачитывается из файла.


/solu
VFOPT,READ,factor,vf,'j:\Trial\_fsapr\aquarido\VF',,

 

https://i.imgur.com/25uIuhL.png

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

 В настройках командной вставки можно настроить к каким шагам она применяется.

Хм. Странно это всё. Я не пробовал, конечно, но в коде же цикл и обращение к коду происходит на каждом шаге расчета, иначе ничего бы не менялось.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Fedor
      https://www.mathnet.ru/links/70adc00f76e7f355f5e14569f99dd8dc/tm1745.pdf#:~:text=Под полной обобщенной проблемой собственных,из собственных векторов относительно 5.   Хотите посложнее читайте классику по обобщенной проблеме ... :)
    • Jesse
      а что такое этот corioliss в Ansys? что делает эта опция?
    • Борман
      А ну вот как раз вспоминаю про гироскопический момент, как интеграл сил инерции, действующих на смещенное колесо. И вот тут как раз появляется зависимость от направления вращения. В одном случае этот момент будет выворачивать колесо наружу, а в другом пытаться вернуть колесо ближе к оси. Но это эффект следующего порядка, и prestress-модальник его не схватывает. А сиса как-то сама умеет это учитывать, отсюда будут и разные частоты. Много на эту тему почерпнул (для себя) из книги Жирицкого, на которую ссылался в теме по вашей ссылке. Эту тему я забросил в начале 2008 года и больше не касался ее.
    • rocket
      Добрый день, у нас 4 осевой станок Syntec 6MB с поворотной головой вокруг оси Y, покупали б/у и приехал еще с поворотной осью А подключенный но не видящий ось А. В итоге помогло поменять в параметрах в разделе/index 10 поменять на 2 и в index 24 где ось B поменять 4 на 0 а в index 25  поменять с 0 на 4 (чтобы он читал с 4 порта) если посмотреть как идет подключение, то от этого зависят цифры 
    • maxx2000
      Спасибо КЭП, но в ярлыке ничего прописывать не надо, достаточно создать новый ярлык. Вопрос был про вызов справки из приложения. Впрочем, перезагрузка ПК устранило это досадное недоразумение.
    • Maxmore
      Согласен полностью, через всё это пришлось пройти. От себя добавлю что у нас 400ый не PRO а обычный - его еще больше пришлось доводить до рабочего состояния, так как их производят разные заводы. с ITX508MY еще все более печально было - проблемы на пусконаладке, затем замена прокладок, затем пусконаладка уже с участием китайца...в общем да, помучаться пришлось. С большего оборудование рабочее, свои функции выполняет. Фануковские посты можно доработать до HNC без особых проблем.
    • Fedor
      Для любой размерности можно решать полином этой размерности. Такова сущность вопроса существования, а не конкретное явление вычисления. Дух, а не буква :)
    • anykeyto
      День добрый коллеги. Работает ли кто на этой стойке? Где берете информацию по программированию кроме мануала от Ками?  Интересует макропрограммирование, программирование цилиндрической интерполяции. Да и вообще, давайте делиться опытом. В свободном доступе практически нет никакой информации о работе станка и стойки этого чуда китайской инженерии.  Вопрос про G108, пользовался ли кто функцией CTOS/STOC?   
    • __Andrey__
      Доброго всем времени суток. Начал сборку станка для симуляции. Загрузил модель станка DMU50 в папку. В генераторе станков сделал настройки осей. Постпроцессор на sinumerik создал из шаблона. Скопировал папку cse_driver со станка с похожей кинематикой (sim06_mill_5ax). В файлы .dat внесены данные. При запуске симуляции по машинному коду ругается, что не найден файл PMAC. После закрытия окна с ошибкой продолжает работу и доходит до смены инструмента и там выскакивает ошибка. . Прошу помощи с этой проблемой. Файл to_ini генерируется в папку cse_driver.
    • anykeyto
      Устроился в начале года в контору где стоит IronMAC IMU-5X 400 Pro. Стойка HNC8-848di. Контора отправила на обучение, на курс 5-осной обработки на этой стойке, в цто Ками в Москве. В целом все доступно и понятно. Это когда было само обучение. Но в работе самой стойки есть куча вопросов. По факту на стойка не настроена. Не знаю, может наладчик который запускал станок попался ленивый, может в другом была причина. Но первый месяц-полтора занимался только настройкой системы (что знал, что пришло в процессе изучения параметров, ладдера, и прочее).   Сам станок интересный и понятный. Но русская локализация хромая, как и мануал от ками. Там голимый перевод то ли с английского, толи с китайского.... но вместо фрезы "нож" и так далее.  Основа тут G код, в целом почти фанук, но есть отличия. Есть группа циклов для фрезеровки сверления, резьбы и расточки, под них есть прям шаблон, в котором только переменные задаешь, но криво реализован синтаксис, который поправить можно уже непосредственно в коде.
×
×
  • Создать...