Санкт-Петербург



Download 10,56 Mb.
Pdf ko'rish
bet74/198
Sana24.02.2022
Hajmi10,56 Mb.
#209176
1   ...   70   71   72   73   74   75   76   77   ...   198
Bog'liq
1 almanakh 2018 tom1

УДК 004.428.4 
АНАЛИЗ МАССИВОВ ДАННЫХ ПРИ ПРОЕКТИРОВАНИИ ПРОГРАММНОГО 
ОБЕСПЕЧЕНИЯ УПРАВЛЕНИЯ СТАНКАМИ С ЧИСЛОВЫМ ПРОГРАММНЫМ 
УПРАВЛЕНИЕМ ДЛЯ ИЗГОТОВЛЕНИЯ ПЕЧАТНЫХ ПЛАТ 
Сергеев С.С., Лихачева Т.С., Кузнецова О.В., Кузнецов А.Ю. 
Научный руководитель – к.т.н., доцент Кузнецов А.Ю. 
Работа выполнена в рамках темы НИР № 416037 «Разработка комплекса автоматизации 
проектирования и прототипирования электронных средств». 
Работа посвящена вопросам импортирования и визуализации трехмерных моделей с помощью 
библиотеки OpenCASCADE. Рассмотрены различные форматы хранения трехмерных моделей, а 
также выявлены некоторые проблемы при их обработке, и предложены алгоритмы их решения. 
Ключевые слова: OpenCASCADE, визуализация, разработка, 3D, IDF. 


Альманах научных работ молодых ученых 
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1 
114 
В рамках работы была поставлена задача разработать программное обеспечение, 
способное импортировать, визуализировать трехмерные модели различных форматов, а 
также преобразовывать их в команды на языке G-code, для дальнейшего запуска программ на 
разрабатываемом станке с числовым управлением. 
В качестве импортируемых программой данных были выбраны следующие, 
популярные в системах автоматизированного проектирования, форматы: 
– STEP – формат данных, определенный международным стандартом ISO 10303, для 
описания и обмена данными в САПР; 
– IGES – формат векторной 2D/3D-графики, основанный на спецификации Initial Graphics 
Exchange. Используется многими программами автоматизированного проектирования в 
качестве стандартного, основанного на тексте ASCII-формата, предназначенного для 
хранения и экспорта векторных данных. Может хранить модели каркаса, поверхности 
представляемых твердых объектов, диаграммы и другие объекты; 
– IDF – содержит информацию о форме платы, положении и размере отверстий с 
металлизацией и отверстий без металлизации, а также о размещении и основной форме 
компонентов; 
– STL – формат 3D-графики, хранящий информацию об объекте как список треугольных 
граней, которые описывают его поверхность, и их нормалей. STL-файл может быть 
текстовым (ASCII) или двоичным. 
Таким образом, первоочередной задачей являлось исследование методов импорта 
данных форматов. 
В качестве основы для реализации задач по импорту и визуализации 3D-объектов была 
выбрана библиотека OpenCASCADE, являющаяся одной из самых популярных библиотек 
для реализации систем автоматизированного проектирования. Исходный код библиотеки 
Open CASCADE доступен и распространяется бесплатно по лицензии Open CASCADE 
Technology Public License [1], являющейся производной от GNU LGPl. Сторонние 
разработчики могут использовать код Open CASCADE в своих продуктах (в том числе 
коммерческих), однако обязаны, в соответствии с LGPL, отсылать любые изменения в 
исходных текстах Open CASCADE ее оригинальному разработчику – Open CASCADE S.A.S 
[2]. 
Реализация библиотеки Open CASCADE основана на принципах объектно-
ориентированного программирования и уже содержит готовые реализации импорта и 
обработки форматов STEP, IGES и STL. Для этого были использованы экземпляры 
соответствующих классов: STEPControl_Reader, IGESControl_Reader и StlAPI_Reader. 
Для импорта из формата STEP (IGES) во внутренний объект фигуры класса 
TopoDS_Shape требуется реализовать следующий алгоритм: 
1. иинициализировать экземпляр reader класса STEPControl_Reader для формата STEP (или 
IGESControl_Reader для формата IGES); 
2. вызвать метод ReadFile объекта reader с переданной в качестве аргумента строкой, 
содержащей путь до открываемого файла соответствующего формата; 
3. проверить – возвратил ли метод в предыдущем шаге значение IFSelect_RetDone; если 
возвращено отличное значение, то можно считать, что импорт завершился с ошибкой, 
иначе следует переходить к следующему шагу; 
4. вызвать метод TransferRoots у объекта reader для получения всех сущностей модели; 
5. последним шагом является вызов метода OneShape, который должен возвратить 
экземпляр объекта TopoDS_Shape, содержащий 3D-модель. 
STL-формат можно импортировать следующим образом: объявить экземпляр reader 
класса StlAPI_Reader и вызвать метод Read у объекта reader с аргументами экземпляра класса 
TopoDS_Shape и строкой, содержащей адрес файла. 
В результате изучения возможностей библиотеки Open CASCADE было обнаружено 
отсутствие возможности импорта объекта в формате IDF. В данном случае было принято 


Альманах научных работ молодых ученых 
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1 
115 
решение о реализации собственного алгоритма импорта подложки модели печатной платы на 
основе спецификации IDF версии 3.0. В результате анализа стандарта были выявлены 
следующие особенности формата: 
– формат разделен на несколько блоков информации; 
– некоторые блоки информации не несут информации для решения поставленной задачи, 
поэтому могут быть проигнорированы во время чтения файла; 
– согласно спецификации формат описывается в виде последовательности символов ASCII. 
Для импортирования подложки печатной платы были использованы следующие секции 
данных: 
– секция заголовка – HEADER, несущая в себе помимо метаинформации, важные данные о 
единицах (миллиметры или мил – тысячные доли дюйма), измерениями в которых 
описаны параметры модели; 
– секция внешней границы – BOARD_OUTLINE, в первой строке которой указана толщина 
подложки, а каждая последующая строка описывается согласно таблице. 
– секция дриллирования – DRILLED_HOLES, описывающая диаметр отверстия и 
координаты его расположения [3]. 
Таблица. Формат данных секции BOARD_OUTLINE 
№ 
Описание 
Тип 
Значение 

Метка цикла 
Целый int 
0 – означает внешнюю границу 
1 – означает вырез 
n – означает дополнительный вырез 

X координата 
Дробный float 
Любое значение 

Y координата 
Дробный float 
Любое значение 

Угол 
Дробный float 
0 – означает прямую линию между точками 
≠ 0 – означает дугу между точками.
При положительном значении дуга против 
часовой стрелки. 
360 – означает окружность с центром в 
предыдущей точке 
Таким образом, был разработан на языке C++ класс CPIdf_Reader, осуществляющий 
чтение файла, обработку вышеописанных секций и построение конечной трехмерной модели 
подложки печатной платы на основе примитивов, предусмотренных библиотекой Open 
CASCADE. Конечным результатом работы методов класса является трехмерная модель 
объекта в качестве экземпляра класса TopoDS_Shape. 

Download 10,56 Mb.

Do'stlaringiz bilan baham:
1   ...   70   71   72   73   74   75   76   77   ...   198




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish