Параметрическая модель в КОМПАС-3D. Окончание.

Параметрическая модель в КОМПАС-3D. Окончание. Самообразование, Компас-3D, САПР, Радиотехника, Длиннопост

С этого мы начали:


https://pikabu.ru/story/parametricheskaya_model_v_kompas3d_n...


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

Один экземпляр вывода мы получили, теперь размножим его через создание массива по сетке. В качестве направления построения выберем ось Y, исходя из того, что на каждой стороне корпуса у нас одинаковое количество выводов, на одной стороне расположена лишь четверть из них. Это приводит нас к следующей формуле для вычисления количества элементов в массиве: (pin_number/4). Шаг соответственно будет равен pin_pitch. Результат данного построения отображен на рисунке 5.


Рисунок 5 – базовый массив выводов.

Параметрическая модель в КОМПАС-3D. Окончание. Самообразование, Компас-3D, САПР, Радиотехника, Длиннопост

Собственно, мы получили выводы вдоль одной стороны, теперь нужно сделать такие же массивы вдоль остальных трех сторон. Для этого очень удобен инструмент построения зеркального массива относительно плоскости. И снова мы строим вспомогательные плоскости, но на этот раз не параллельные, а под углом. Данное построение выполняется с указанием плоскости, по отношению к которой будет задан угол, и прямой, по которой эти плоскости в итоге будут пересекаться, а этого ребра как раз у нас и нет, следовательно, необходимо его построить. Создадим эскиз в любой из двух плоскостей XZ или ZY, который будет представлять собой лишь один отрезок произвольной длины, совпадающий с осью Z. Имея этот эскиз строим две плоскости, под углом 45 градусов к плоскости XZ, при этом задавая поворот в противоположных направлениях, таким образом получая две новых взаимно перпендикулярных плоскости (рисунок 6).


Рисунок 6 – вспомогательные плоскости под углом 45 град. к основным.

Параметрическая модель в КОМПАС-3D. Окончание. Самообразование, Компас-3D, САПР, Радиотехника, Длиннопост

Теперь только остается трижды построить зеркальный массив, указывая в качестве отражаемого массив выводов, полученный выше, а в качестве плоскостей отражения указывая построенные нами вспомогательные плоскости и плоскость ZY. Так за малое количество действий мы получим массивы выводов по всем четырем сторонам микросхемы (рисунок 7).


Рисунок 7 – построение зеркальных массивов вдоль оставшихся сторон.

Параметрическая модель в КОМПАС-3D. Окончание. Самообразование, Компас-3D, САПР, Радиотехника, Длиннопост

Раз уж мы решили создать более-менее реалистичную модель, неплохо бы дорисовать фаску на углах и уклоны, возникающие при литье, ну и выдавить маркер первого вывода. Начнем с углов. Данный параметр так же не нормирован стандартами, и отличается в зависимости от производителя, однако надо задать его размеры так, чтобы при перестроении не получилось ситуации, в которой крайние выводы «висели в воздухе». Применим к углам операцию создания фаски, с углом 45 градусов, глубину выреза зададим формулой, которая в целом не требует объяснений:

(body_width-((pin_number/4)*pin_pitch))/4

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

Следующим ходом будет создание уклонов, возникающих при отливке корпуса. Угол откосов так же меняется в зависимости от производителя, обычно колеблется от 5 до 15 градусов, мы возьмем величину в 15 градусов. Создадим две фаски, по ребрам верхней и по ребрам нижней поверхностей. Наша задача сводится к тому, чтобы эти фаски при построении не сталкивались и не наползали на плоскость вхождения выводов в корпус, так что их параметры тоже привяжем к переменным, задающим высоту корпуса и толщину вывода.

Построим фаску от верхней поверхности, под углом 75 градусов, на глубину, описанную формулой:

((height-0.1-pin_thickness)/2)*0.25

Думаю, тут в пояснении нуждается только умножение на 0,25. Это экспериментальная величина, введена в следствие упрощения построения (при построении выбираем плоскость, а не фаску от каждого ребра по отдельности), что приводит к заданию угла в 75 град., из-за чего указанная формула нуждается в пропорциональном коэффициенте, который подобран так, чтобы фаска не «наползала» на выводы. Конечно, это число является достаточно грубым, но так как оно не влияет на важные параметры модели, а данное построение несет скорее эстетическую функцию, то полученной погрешностью можно пренебречь. В целом, в этом плане ситуация схожа с приближением при построение углов.

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

Следующим шагом на пути к реализму будет метка первого вывода. Для этого построим вспомогательную плоскость, параллельную плоскости XY, со смещением на расстояние height, в положительном направлении по оси Z, в ней мы построим окружность диаметром 0,7 мм., и проставим расстояние от центра этой окружности до начала координат, используя простановку размеров по горизонтали и вертикали. В качестве расстояния зададим формулу:

body_width/2-(((height-0.1-pin_thickness)/2)*0.25)-0.7

Данные зависимости прописаны для предотвращения попадания метки на край и столкновения с остальными построениями, призванными придать реализм модели. Данный эскиз выдавим на глубину 0,1 мм, с углом откоса 30 градусов для получения конуса, сужающегося к низу.

Параметрическая модель в КОМПАС-3D. Окончание. Самообразование, Компас-3D, САПР, Радиотехника, Длиннопост

В результате всех описанных выше действий мы получили модель, в которой основные критичные параметры заданы через переменные, что предполагает возможность быстрого изменения конфигурации. Для этого во вкладке «Переменные» имеется возможность создания таблицы с разными значениями, зайдя в которую можно добавить строки с нужными значениями переменных и перестраивать модель одним щелчком мыши. Однако, чтобы это работало, необходимо всем переменным, используемым в модели присвоить атрибут «Внешняя», это можно сделать, нажав на правую кнопку мыши на названии переменной в их списке, и установить галочку напротив параметра «Внешняя» (рисунок 11).

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

Что же, модель построена, можно попробовать менять переменные и посмотреть, не развалится ли вся наша конструкция. Для примера попробуем построить корпуса:

LQFP48 (FPT-48P-M05);

QFP44 (FPT-44P-M11);

TQFP100 (FPT-100P-M18).

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

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


Рисунок 11 - работа с переменными, импортированная .xls таблица и результаты тестирования

Параметрическая модель в КОМПАС-3D. Окончание. Самообразование, Компас-3D, САПР, Радиотехника, Длиннопост

Послесловие

Как я подметил в начале, в данной заметке рассмотрен лишь один из возможных способов. И как можно видеть по иллюстрациям, была взята готовая модель, в которой я исключал операции, чтобы продемонстрировать использованные методы. Готовая модель была использована исключительно по той причине, что после ее создания она была опробована при создании соответствующей библиотеки для Altium Designer, и показала себя работоспособной. Она конечно имеет ряд допущений, касающихся декоративных, если так можно выразиться, составляющих, однако параметры, влияющие непосредственно на технические моменты определяются с должной точностью. Так же я не делал акцент на таких деталях, как задание цвета операции выдавливания и подобных нюансах, не имеющих отношения к методу построения.

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

Так как Altium Designer использует модели в формате .step, отличным дополнением к описанной модели будет скрипт, который будет перебирать последовательно все строки таблицы переменных, перестраивать модель и сохранять в указанном формате, это значительно ускорило бы процесс, но в данный момент это только задумки, мои навыки в программировании сосредоточены в основном в области МК/ПЛИС, и для ПК недостаточны.

Я благодарен тем, кто дочитал, и рад, если кто-то нашел это полезным.

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

Сохраненные в .step модели самых ходовых корпусов и саму параметрическую модель можно скачать здесь:

https://grabcad.com/library/qfp-package-collection-1

Собственно, там же в папочке лежит .pdf версия всего этого словоблудия. В этом посте с целью уместить все до конца я слепил вместе некоторые рисунки, и возможно некоторые из них заслуживают 10 шакалов из 10.