В статье представлено решение задачи по управлению локальными параметрами эскизов в среде чертежей непосредственно из диспетчера параметров или таблиц Excel.
Система автоматизированного проектирования Autodesk Inventor, как и большинство ее «одноклассников», предназначена для проектирования преимущественно в трехмерной среде. Оформление же конструкторской документации осуществляется на основе данных 3D-моделей и представляет собой раскладку необходимых видов модели на листе с последующим нанесением аннотаций в виде размеров и иных обозначений. Такой вариант использования функционала системы позволяет комфортно и быстро выполнять оформление чертежей, однако нередки случаи, когда на чертежах необходимо выполнить какие-либо построения без привязки к геометрии моделей. Примерами таких случаев могут служить упрощенные изображения, различные кинематические схемы и графики, например график перемещений, представленный на рис. 1.
Рис. 1. График перемещений
В таком случае процесс оформления чертежа станет гораздо менее комфортным и производительным в силу особенностей системы. Так, в Inventor при построении эскизов на чертеже используется тот же модуль, что и при работе с эскизами в 3D-модели. В связи с этим при построении геометрии эскиза, с одной стороны, появляется необходимость ее полного определения при помощи геометрических и размерных зависимостей, а с другой — пользователю доступен практически весь функционал по работе с параметрами.
Однако следует заметить, что некоторые отличия все же имеются. Основным ограничением при работе с эскизами в среде чертежей, существенно сужающим возможности, по сравнению со средой моделирования деталей и сборок, является невозможность управления параметрами эскиза при помощи пользовательских параметров или таблиц Excel непосредственно из диспетчера параметров. Это объясняется тем, что параметры эскиза являются локальными и просто отсутствуют в диспетчере.
Примером описанного ограничения может служить рис. 2, на котором изображен прямоугольник с двумя размерными зависимостями d0 и d1, равными 40 и 60 мм соответственно и отсутствующими в диспетчере параметров.
Рис. 2. Пример ограничения
При организации же связи пользовательских параметров с параметрами эскиза открываются широчайшие возможности, в частности, для построения типовых элементов, например графиков, на основе данных из электронных таблиц.
Несмотря на отсутствие штатной возможности, система Inventor позволяет использовать правила iLogic, которые обеспечивают дополнение и расширение функционала, в том числе организовать описанные связи между локальными параметрами эскиза и пользовательскими параметрами.
Рассмотрим данный процесс на примере условного изображения карандаша, представленного на рис. 3.
Рис. 3. Изображение карандаша
Геометрия изображения создана в эскизе с именем «Пример» без привязки к какому-либо виду (рис. 4) и определена при помощи пяти параметров: d0=120 мм; d1=15 мм; d2=10 мм; d3=30⁰ и d4=8 мм.
Рис. 4. Положение эскиза в браузере чертежи
Следует отметить невозможность изменения имен локальных параметров эскиза, что делает процесс связи не слишком удобным. Определить же имена параметров для последующей связи можно двумя способами: при наведении курсора на поле редактирования параметра (рис. 5) или в процессе создания правила iLogic, при просмотре параметров эскиза (рис. 6).
Рис. 5. Определение имени параметра
Рис. 6. Просмотр параметров эскиза в редакторе правил iLogic
Далее в диспетчере параметров создается набор пользовательских переменных, для которых будет организована связь с локальными параметрами эскиза. Например, lk_m=130 мм; lg_m=6 мм; ls_m=10 мм; dk_m=12 мм и az_m=45⁰ (рис. 7).
Рис. 7. Пользовательские переменные
После этого создается правило iLogic со следующим кодом:
oDoc = ThisApplication.ActiveDocument
oSketch = oDoc.ActiveSheet.Sketches.Item("Пример")
oSketch.Edit
For Each oDConst In oSketch.DimensionConstraints
oParam = oDConst.Parameter
If oParam.Name = "d0" Then
oParam.Value = lk_m/10
End If
Next
For Each oDConst In oSketch.DimensionConstraints
oParam = oDConst.Parameter
If oParam.Name = "d1" Then
oParam.Value = ls_m/10
End If
Next
For Each oDConst In oSketch.DimensionConstraints
oParam = oDConst.Parameter
If oParam.Name = "d2" Then
oParam.Value = dk_m/10
End If
Next
For Each oDConst In oSketch.DimensionConstraints
oParam = oDConst.Parameter
If oParam.Name = "d3" Then
oParam.Value = (az_m*PI)/180
End If
Next
For Each oDConst In oSketch.DimensionConstraints
oParam = oDConst.Parameter
If oParam.Name = "d4" Then
oParam.Value = lg_m/10
End If
Next
oSketch.Solve
oSketch.ExitEdit
Во второй строке правила указывается имя эскиза в двойных кавычках. Следует также отметить, что модуль эскизов оперирует сантиметрами при расчете линейных размеров и радианами — для угловых, в связи с чем появляется необходимость пересчета параметров непосредственно в правиле либо указания соответствующих единиц измерения в диспетчере параметров. Выполнять правило необходимо, не находясь в режиме редактирования эскиза, в противном случае будет выведено сообщение об ошибке. Результат выполнения правила представлен на рис. 8.
Рис. 8. Результат выполнения правила
Благодаря организации связи между пользовательскими параметрами и локальными параметрами эскиза у пользователя появляется возможность создания и более удобного интерфейса изменения при помощи редактора форм.
Предложенная методика организации связи применима также для эскизных видов или эскизов, выполненных в видах, ассоциативно связанных с 3D-моделью. В таком случае необходимо несколько изменить правило, предварительно определив порядковый номер вида.
Примером может служить эскизный вид, показанный на рис. 9, с порядковым номером 1, содержащий эскиз с аналогичной геометрией и именем эскиза «Пример».
Рис. 9. Пример геометрии в эскизном виде
В таком случае первые две строки правила, представленного выше:
oDoc = ThisApplication.ActiveDocument
oSketch = oDoc.ActiveSheet.Sketches.Item("Пример")
необходимо заменить следующими:
oDoc = ThisApplication.ActiveDocument
oSheet = oDoc.ActiveSheet
oView = oSheet.DrawingViews.Item(1)
oSketch = oView.Sketches.Item("Пример")
При необходимости связи геометрии с электронными таблицами Excel также следует использовать правила iLogic, поскольку в среде чертежей системы Inventor отсутствует возможность связи файлов моделей и электронных таблиц из диспетчера параметров.
Перед созданием правила производится формирование и наполнение таблицы, пример которой для параметров рассматриваемого карандаша представлен на рис. 10.
Рис. 10. Параметры карандаша в табличном виде
Далее перед основным текстом правила вставляются строки, позволяющие производить считывание значений из конкретных ячеек таблицы:
lk_m = GoExcel.CellValue("Параметры.xlsx", "Лист1", "B1")
lg_m = GoExcel.CellValue("Параметры.xlsx", "Лист1", "B2")
ls_m = GoExcel.CellValue("Параметры.xlsx", "Лист1", "B3")
dk_m = GoExcel.CellValue("Параметры.xlsx", "Лист1", "B4")
az_m = GoExcel.CellValue("Параметры.xlsx", "Лист1", "B5")
Представленная методика управления локальными параметрами в эскизах позволяет полноценно использовать возможности системы Inventor в процессе проектирования с учетом его итерационного характера при выполнении, казалось бы, непрофильных задач, и достигать при этом гораздо более высокого уровня автоматизации рутинных операций. В частности, описанная методика дала возможность студентам кафедры технологии машиностроения и технологического оборудования Северо-Кавказского федерального университета автоматизировать построение типовых схем и графиков при реализации расчетно-графических, курсовых работ по ряду дисциплин, к которым относятся «Проектирование и производство заготовок», «Оборудование машиностроительных производств», а также при выполнении выпускной квалификационной работы.