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

Подскажите по Ansys'у...


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

22.10.2022 в 23:00, статист сказал:

Не знаю в эту тему писать или какую.

Оказывается в Kate есть встроенная подсветка синтаксиса Ansys https://kate-editor.org/

Может кому пригодиться.

Еще там можно прикрутить подсветку Code_Aster https://github.com/psicofil/Code_Aster_Kate_Syntax

,GMSH https://www.pling.com/p/1220774/ (правда у меня пока не заработал), и я так понял, чего угодно, только искать нужно.

 

Обычно прописаны правила организации синтаксиса для подсветки. В Notepad++ и Textpad я для себя сам настраивал. В notepad++ есть, скажем 8 групп ключевых слов, на которые настраиваются цвета, как комментарии выделяютя, операторы и т.д. Важно, например, выставлять опцию заменять табуляцию на пробелы, иначе в apdl полезут грабли, причем не сразу это поймешь даже, а также кодировку windows. Вот пример  настройки синтаксиса в notepad++ 

image.png

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


5 часов назад, Flint_ru сказал:

Обычно прописаны правила организации синтаксиса для подсветки. В Notepad++ и Textpad я для себя сам настраивал.

Я знаю, что в sublime text можно установить подсветку apdl. https://packagecontrol.io/packages/APDL (ANSYS) Syntax Highlighting Я раньше пользовался им. Также Вы показали, что можно напрямую задать в notepad++.

Я уверен, что у каждого опытного пользователя уже найден способ своего написания apdl. Преимущество Kate в том, что синтаксис ansys идет из коробки. Поставил и пользуйся. Думаю начинающим пользователям это будет подспорье.

 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Доброго времени суток. Вопрос в следующем. При написании макросов, при построении геометрии с разными переменными параметрами (размерами), после overlap часто происходит перенумерация V, A, L, KP. Частям модели присваиваются новые номера и ANSYS встаёт, вылетает с ошибками. Как правило не может разбить модель. Может есть какая возможность это победить? Предполагаю, что нумерация производится "в зависимости от положения центров" объёмов, поверхностей и т.д. от начала глобальной CSYS. Есть, конечно, в Main Menu компресс нумерации, но это не панацея. Ansys древний уже, v12.0.

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

@benevolent

можно интерактивно определить номер нужного элемента геометрии, только нужно приблизительно знать положение его цт.

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

@benevolent

можно интерактивно определить номер нужного элемента геометрии, только нужно приблизительно знать положение его цт.

Да, можно, предполагаю Вы имеете ввиду через SEL по by location, затем LIST. Но это очень усложняет и вряд ли будет работать при моделировании с плавающими параметрами. В общем виде сложно определить положение ц.т., к тому же часто требуется разбиение V заданием числа делений L. Если их тоже определять через SEL... это, мягко говоря, очень сложно реализуемо. Сложно поймать ц.т., например сферу в сфере, дуги/цилиндры разных радиусов с одним центром и т.д. Их и руками иногда ловить приходится несколько минут.

В идеале, для макросов было бы лучше иметь возможность присваивать объекту (объёму) метку, и все below имели признак этой метки. Но как бы это выглядело после overlap... )))

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

Но это очень усложняет и вряд ли будет работать при моделировании с плавающими параметрами

А вы огонь кремнием разжигаете или сухим трением?

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

А вы огонь кремнием разжигаете или сухим трением?

Вы применяете такой подход при написании макросов? У Вас это работает, и работает всегда? У меня магнитостатика, необходимо учитывать большое окружающее воздушное пространство, окружающее конструкцию. Бывает по несколько сотен объёмов на модель.

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

Обычно привязка к координатам помогает или каким то характерным объектам. При построение геометрии с использованием булевыех операций номерация ломается, логики в этом нет ни какой. всегда можно зацепиться зак координату, выделить объект и через get узнать номер. 

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

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

логики в этом нет ни какой

Спасибо, немного успокоили.

4 часа назад, dronm сказал:

Как бы и не проблема...

Видимо альтернатив нет. Буду отрабатывать предложенный вариант решения. Ещё раз спасибо.

4 часа назад, dronm сказал:

логики в этом нет ни какой

Спасибо, немного успокоили.

4 часа назад, dronm сказал:

Как бы и не проблема...

Видимо альтернатив нет. Буду отрабатывать предложенный вариант решения. Ещё раз спасибо.

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

Бывает по несколько сотен объёмов на модель

Количество по идее не при чем.

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

 

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

 

Ну ладно, я не так спрашивал, соррян.

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

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

Я выполнял подобную задачу, только исключительно в ANSYS, и не только построение геометрии, а с выводом результата решения. Т.е. оператор только задаёт параметры модели и на выходе готовый результат. Понятно, что туда входит и присвоение материалов, и разбиение на элементы, и т.д., включая многоуровневые *IF-ы и *DO. Потом, в достаточно простых задачах, при использовании макросов наблюдались описанные выше неприятные вещи. При этом достаточно было немного изменить размер одного или нескольких элементов модели , даже на 1-3%, и макрос продолжал исправно работать. Поэтому и задал вопрос, так как для меня проблема насущная и в моём представлении сталкиваться с ней должны были многие.

Ссылка на сообщение
Поделиться на других сайтах
06.02.2023 в 15:11, benevolent сказал:

Доброго времени суток. Вопрос в следующем. При написании макросов, при построении геометрии с разными переменными параметрами (размерами), после overlap часто происходит перенумерация V, A, L, KP. Частям модели присваиваются новые номера и ANSYS встаёт, вылетает с ошибками. Как правило не может разбить модель. Может есть какая возможность это победить? Предполагаю, что нумерация производится "в зависимости от положения центров" объёмов, поверхностей и т.д. от начала глобальной CSYS. Есть, конечно, в Main Menu компресс нумерации, но это не панацея. Ansys древний уже, v12.0.

В вашем посте сразу несколько проблем.  Давайте попробуем последовательно разобраться.

1.      «Как правило не может разбить модель».    Да, действительно булевы операции с геометрическими примитивами ANSYS выполняет  отвратно.  Очень часто не может выполнить. Бороться с этим сложно.  Из своего опыта могу порекомендовать попробовать: 1) Изменить точность (команда btol). По умолчанию 1е-5. Попробуйте 1е-4, 1е-3,.. Иногда 1е-6 у меня помогало. 2) Надо, например, разделить объем поверхностью. Вместо булевой операции я  иногда удаляю объем (оставляя поверхности) и затем собираю два новых объема по поверхностям, включая ту поверхность, которой надо было разделить. Но это все работа ручками…

2.      «Часто происходит перенумерация. Частям модели присваиваются новые номера»  В общем случае – задача не простая и универсального способа, думаю, нет. Если интересует overlap для поверхностей, то возможны варианты.  Если перекрываются 2 поверхности, а после операции образуется 3 – тут все просто: задача сводится  к определению трех следующих свободных номеров поверхностей.

image.png

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

image.png

Какая из общих поверхностей вас интересует? И нумерация вам тут не поможет.  Есть общий принцип: нумерация присваивается в порядке доступных свободных номеров. Сначала тем поверхностям, которые общие. Следующий свободный номер  - для наименьшего номера из исходных двух пересекающихся. И, наконец, следующий свободный номер  - для наибольшего номера из исходных двух пересекающихся.  Это все относится только к  перекрытию ДВУХ поверхностей!

3.      Наконец, последняя проблема, вытекающая из вашего топика: а как найти следующий доступный номер (для точки, поверхности, объема,….)  С одной стороны  есть стандартные функции arinqr(0,16), vlinqr(0,16), lsinqur(0,16)…  т.е. next_available_area= arinqr(0,16) присвоит вашей переменной следующий доступный номер. Все хорошо, но есть баг ANSYS. Для точек работает нормально,  но для остальных - после этой команды ANSYS считает, что этот самый номер уже занят (для линий, поверхностей, объемов…). Получается, что толку от этой функции нет.  

4.      Если нужно – во вложении мой макрос, который выдает следующие свободные номера для поверхностей. Входной параметр  arg1 – сколько таких номеров надо извлечь. Разобраться не сложно. И можно переделать для объемов или линий. Эти номера уже можно использовать, они действительно будут использованы, как следующие.

5.      Если у кого нет – выкладываю также файл с описанием функций inquire.  Полезная штука.

next_av_a.mac inquiry_sheet.pdf

Ссылка на сообщение
Поделиться на других сайтах
16.02.2023 в 21:52, Flint_ru сказал:

Для инженера важнее логика и принцип, какую конкретно поверхность надо взять. Это конкретная задача и кроме вас никто не скажет.

Вангую - положения поверхности достаточно в 90% случаев.

Изменено пользователем soklakov
Очепятка
Ссылка на сообщение
Поделиться на других сайтах
16.02.2023 в 22:52, Flint_ru сказал:

В вашем посте сразу несколько проблем.  Давайте попробуем последовательно разобраться.

Вы правильно и логично описали суть проблемы, и варианты её решения. Добавлю следующее.

По 1.: Булевы операции действительно выдают ошибку, с рекомендациями поправить значение в BTOL. Добавлю, что ошибка вылетает (часто, но не всегда) при overlap объёмов с малыми линиями, при условии, что вся модель на порядок (несколько порядков) больше. Например, объём некоторый объём с линией 1 мм, максимальный размер модели  10 м. Решение, это поэтапный overlap объёмов с малыми линиями, с постоянным добавлением более крупных объёмов. (Одним словом частями.) После overlap желательно провести GLUE по всем объёмам, иначе могут быть казусы в решении.

По 2.: Механизм нумерации примерно такой, предполагаю, что здесь ещё участвует центр масс поверхности/объёма, и если бы этот алгоритм ВСЕГДА чётко работал, то с этим не возникло бы проблем. Нумерация при близких параметрах не нарушалась бы.  Однако, при определённых сочетаниях геометрических размеров эта схема нарушается, и, в частности, объёмы, и соответственно below, получают другие номера, даже при близком соотношений размеров объёмов. Если есть сомнения, могу предоставить макрос с командами работающими и вылетающими в ошибки из-за перенумерации.

За предоставленные рекомендации и макросы спасибо.

 

 

Ссылка на сообщение
Поделиться на других сайтах
22.02.2023 в 11:39, benevolent сказал:

Как выбрать V зная его объём, подскажите?

Например так

def_v.mac

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

Спасибо! Вчера сам свой вариант наколхозил.

 

А нельзя просто шагать по телам, дергать у каждого объем, и искать нужный ?

Чисто последовательным алгоритмом, а не ворочать всеми объемами сразу ? 

Ссылка на сообщение
Поделиться на других сайтах
28.02.2023 в 16:25, benevolent сказал:

Спасибо! Вчера сам свой вариант наколхозил.

Что-то я сомневаюсь, что у вас это будет работать нормально: сравнивать по 10 знакам после запятой - это из области фантастики. Вычисление объема или площади - процедура еще та! Простую геометрию - легко, а сложную - тут и начинается свистопляска. У меня было, что результат отличался в 2 раза от истинного. Большая ошибка для вытянутых поверхностей и тонких вытянутых объемов. Само значение зависит, как от параметров тесселации как в команде ASUM, VSUM, так и /FACET.  Наглядный пример - во вложенном файле. Запустите его и на экране увидете результат. Детали -  в начале макроса. Я когда выкладывал макрос - неспроста был второй параметр - точность, чтобы компенсировать ошибки вычислений.

a_test.mac

Ссылка на сообщение
Поделиться на других сайтах
28.02.2023 в 16:39, Борман сказал:

А нельзя просто шагать по телам, дергать у каждого объем, и искать нужный ?

Чисто последовательным алгоритмом, а не ворочать всеми объемами сразу ? 

Когда два объема - можно просто повторить два раза один кусок. Когда объемов много - уже цикл, причем не от 1 до последнего номера, а  по количеству объемов, определяя следующий номер. Условно два объема с номером 1 и 1000. Цикл должен быть от 1 до 2, а не от 1 до 1000, как написано у @benevolent.  Можно использовать и  *if - *go, но это уж самый дурной тон в программировании. В APDL  одно из лучших - матричные операции. Это работает быстрее всего.  В простых задачах  не почувствовать разницы, но когда последовательно проверяется, например, более 1000 объемов, да все это крутится в оптимизации - лучше от циклов вообще отказаться, тем более, что через матричные операции делается не сложно.

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

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

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

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

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

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

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

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

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

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

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




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