книги / Основы САПР. CAD CAM CAE
.pdfВопросы и задачи |
473 |
Группа методов реализации STEP, части в которой нумеруются с 20, описывает
соответствие между формальными спецификациями STEP и представлением, используемым для реализации STEP. Группа методологии проверки соответст
вия, части в которой нумеруются с 30, предоставляет информацию о методах
проверкисоответствия программных продуктов стандарту STEP, дает указания
по созданию абстрактных испытательных пакетов и описывает задачи испыта тельных лабораторий. Часть 31, описывающая методологию выполнения провер
ки соответствия, принята в качестве международного стандарта (см. рис. 14.6).
Стандарты STEP уникальны в том отношении, что они делают упор на испыта ния и содержат в себе описания методов испытаний.
Группа частей с номерами от 300 (абстрактные испытательные пакеты), состоит
из данных и критериев, используемых для проверки соответствия программнога
продукта, реализующего стандарт STEP, его прикладиому _протоколу. Номера,
присnаиваемые абстрактным испытательным пакетам, превышают номера при
кладных протоколов ровно на 100. Таким образом, абстрактный испытательный
пакет с номером 303 относится к прикладиому протоколу 203. Более подробную
информацию о STEP можно получить на сайте http://www.nist.gov/sc4.
Сегодня STEP привлекает к себе повышенное внимание, так как ожидается, что
он войдет в систему стандартов технологий CALS (Computeг-aided Acquisition and Logistics Support - Непрерывные поставки и информационная поддержка жизненного цикла продукции) как стандарт обмена данными о продуктах. Цель
инициативы CALS, автором которой является Министерство обороны США, - компьютеризация процесса формирования требований, заказа, эксплуатации,
поддержки и обслуживания систем вооружений, используемых в армии США.
Основное внимание эта инициатива уделяет заданию форматов, которые будут использоваться для хранения и обмена компьютерными данными. Хотя CALS
создавалась для военных целей, она становится промытленным стандартом хра нения и обмена компьютерными данными в организации.
Вопросы и задачи
1.Опишите преимущества и недостатки использования стандартного формата
при обмене данными технических требований между различными САПР.
2.Создайте DХF-файл для чертежа из задачи 1.1 к главе 4 с помощью системы
автоматизированной разработки чертежей. Прочитайте этот файл в другой чертежной системе и выведите чертеж на экран. Каковы будут ваши выводы?
3.Создайте IGЕS-файл для объекта из задачи 8 к главе 12, прочитайте этот
файл в другой системе твердотельного моделирования и попытайтесь выпол
нит следующее.
1)Выведите объект на экран.
2)Рассчитайте центр тяжести объекта.
Какие можно сделать выводы о возможностях IGES по обмену данными
о твердых телах?
4.Опишите преимущества использования STEP в качестве стандарта.
Приложение Б
Реализация структуры данных
крыльевых ребер
В листинге Б.1 показана структура данных крыльевых ребер, используемая в SNUMOD. Структура данных реализована на языке С.
Листинг Б.l. Реализация структуры данных крыльевых ребер в SNUMOD
typedef struct |
snu body |
|
Body: |
|
|
|
||
typedef |
struct |
snu-shell |
|
Shell: |
|
|
|
|
typedef |
struct |
snu-face |
|
Face: |
|
|
|
|
typedef |
struct |
snu=loop |
|
Loop: |
|
|
|
|
typedef struct |
snu_edge |
|
Edge: |
|
|
|
||
typedef |
struct |
snu_vertex |
|
Vertex: |
|
|
|
|
typedef |
struct |
snu_surface |
Surface: |
|
|
|
||
typedef |
struct |
snu_curve |
|
Curve: |
|
|
|
|
typedef |
struct |
snu_point |
|
Point: |
|
|
|
|
struct |
snu |
body |
|
|
|
|
|
|
{ |
- |
|
|
|
|
|
|
|
i nt |
|
|
id: |
/* |
Идентификатор |
тела */ |
|
|
Body |
|
|
*next: |
1* Указатель на следующее тело */ |
||||
Shell |
|
*shell: |
1* Указатель на оболочку */ |
|||||
char |
|
|
*name: |
/* |
Указатель на иня тела |
*/ |
||
} : |
|
|
|
|
|
|
|
|
struct |
snu |
shell |
|
|
|
|
|
|
{ |
- |
|
|
|
|
|
|
|
int |
|
|
id: |
/* |
Идентификатор |
оболочки |
*/ |
|
Body |
|
*body: |
/* Указатель на тело */ |
|
||||
Shell |
|
*next: |
1* Указатель на следующую оболочку */ |
|||||
Face |
|
*face: |
/* Указатель на |
грань |
*/ |
|
||
}: |
|
|
|
|
|
|
|
|
struct |
snu |
face |
|
|
|
|
|
|
{ |
- |
|
|
|
|
|
|
|
int |
|
|
id: |
/* |
Идентификатор |
грани |
*/ |
|
Shell |
|
*shell: |
/* Указатель на оболочку */ |
|||||
Face |
|
*next: |
/* Указатель на слеnующую грань */ |
|||||
Loop |
|
*loop: |
/* Указатель на кольцо */ |
|||||
Surface |
|
*surface: |
/* |
Указатель на |
геометрические данные */ |
|||
} : |
|
|
|
|
|
|
|
|
struct |
snu |
loop |
|
|
|
|
|
|
{ |
- |
|
|
|
|
|
|
|
i nt |
|
|
id: |
/* |
Идентификатор |
кольца */ |
||
Face |
|
*face: |
/* Указатель на грань */ |
|
||||
Loop |
|
*next: |
1* Указатель на следующее кольцо */ |
|||||
Edge |
|
*edge: |
/* Указатель на ребро */ |
|
||||
int |
|
|
*type: |
!* |
Тиn кольца */ |
|
|
|
} :
Реализация структуры данных крыльевых ребер |
|
|
477 |
||||
struct snu |
- |
edge |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
int |
|
id: |
loop: |
/* Идентификатор |
ребра |
*/ |
|
Loop |
|
*left |
/* Указатель |
на |
левое |
кольцо */ |
|
Loop |
|
*right_loop: |
/*Указатель |
на |
nравое |
кольцо */ |
|
Edge |
|
*left |
arm: |
/* Указатель |
на |
левую |
руку (левое ребро |
-nротив часовой стрелки) */
Edge |
*left leg: |
/* Указатель на левую ногу (левое ребро |
-no часовой стрелке) */
Edge |
*right arm: |
/* Указатель на nравую руку (nравое ребро |
-nротив часовой стрелки) */
Edge |
*right |
leg: |
/* Указатель |
на |
nравую ногу (nравое ребро |
|
|
- no часовой стрелке) |
*/ |
||
Vertex |
*tail |
vertex: |
/*Указатель |
на |
хвостовую вершину |
-(nредыдущая вершина) */
Vertex |
*head vertex: /* Указатель |
на головную вершину |
|
|
- |
(следующая вершина) */ |
|
Curve |
*curve: |
/* Указатель |
на геометрические данные */ |
} : |
|
|
|
struct snu |
vertex |
|
|
{ |
- |
/* Идентификатор |
вершины */ |
int |
id: |
||
Edge |
*edge: |
/* Указатель на ребро */ |
|
Point |
*point: |
/* Указатель на |
геометрические данные */ |
\ .
Приложение В
ОператорыЭйлера
8.1. Операторы Эйлера, используемые в SNUMOD
8.1.1. MEWLS и KEWLS- создать (уничтожить) ребро,
две вершины, внешнее кольцо и оболочку
Оператор MEWLS вызывается для создания оболочки при первоначальном соз дании объема или при добавлении пустоты к существующему объему. В реаль ности MEWLS просто выделяет место в памяти под оболочку, объявляя о ее соз дании. Он также создает две вершины, ребро между этими вершинами и внешнее кольцо, обходящее вершины в обоих направлениях. Это кольцо будет использо
ваться в качестве начального элемента, который превратится в реальную оболоч ку по ходу операции моделирования. При создании внешнего кольца создается
также грань. Однако геометрическая информация о грани при создании ее опе ратором MEVVLS не добавляется, поскольку это всего лишь абстрактная грань, с
помощью которой выделяется требуемая память.1 • Необходимая геометрическая
информация появится, когда начальное ребро по ходу операции моделирования превратится в замкнутую цепочку, содержащую в себе область.
Описание изменения топологии, произведенного оператором MEWLS, иллюст рируется схематической диаграммой на рис. В.1. Периферийное кольцо L1 пред
ставляет собой цепочку, проходящую по маршруту V1-V2-V1 и не содержащую в
себе площади. Площадь появится в ней по ходу моделирования, и соответствую
щая грань получит необходимую геометрическую информацию.
V2
MEVVLS
Ll
KEVVLS
Sl
Vl
Рис. В.1. Действие оператора MEWLS (KEWLS)
Входные и выходные аргументы оператора MEVVLS могут быть описаны СJiедую щим образом:
MEVVLS (8. &El. &Vl. &V2. &Ll. &Sl. Xl. Yl. Zl. Х2. У2. Z2)
1 Выделение места в памяти для тоrюJюrllчсского элемента.
480 Приложение В. Операторы Эйлера
8.1.2. MEV и KEV- создать (уничтожить) ребро и вершину
Оператор MEV создает ребро Е1, проходящее от вершины V1 кольца L1 до задан ной точки (х, у, z), и добавляет это ребро к кольцу L1 (рис. В.З). Разумеется, в за данной точке создается также новая вершина V2. Ребро Е1 может быть добавлено
к внешнему кольцу (рис. В.З, а) или к кольцу отверстия (рис. В.З, б).
- |
|
MEV |
|
KEV |
|
а |
|
MEV |
|
-KEV |
L~V2 |
б
Рис. В.З. Действие оператора MEV (KEV)
Как и в случае оператора MEL, необходимо обновить связь ребра в вершине V1, чтобы новое ребро Е1 было включено в кольцо L1 (то есть ребро Е1 будет фигу рировать дважды в списке ребер, как соединительные ребра, описанные в разде
ле 5.3.2, когда из обновленной информации о связях будет получен список ребер
кольца L1).
Входные и выходные аргументы операторов MEV и KEV могут быть описаны сле дующим образом (В по-прежнему обозначает объем):
MEV (В. Ll. Vl. &El. &V2. Х. У. Z) KEV СВ. &Ll. &Vl. El. V2. &Х. &У. &ZJ
Оператор KEV является обратным по отношению к MEV.
8.1.2. MVE и КVЕсоздать (уничтожить) вершину и ребро
Оператор MVE разделяет ребро Е1, добавляя к нему вершину V1 в точке (х, у, z),
и соответственно заменяет старое ребро Е1 двумя новыми Е1 и Е2 (рис. В.4). По этому входные и выходные аргументы операторов MVE и КVЕ могут быть описа
ны следующим образом (В по-прежнему обозначает объем):
MVE СВ. El. &Vl. &Е2. Х. У. Z)
MVE (В. &El. Vl. Е2. &Х. &У. &Z)
Оператор KVE можно интерпретировать как обратный по отношению к MVE.
Эффекты, показанные на рис. В.4, достигаются путем изменения одной вершины и соседних ребер Е1 и записью аналогичной информации для Е2. Подробности
приведены в листинге В.1, который демонстрирует реализацию оператора MVE