- •Содержание Введение Программное обеспечение (software)
- •Инструментальное по (software tools)
- •Язык программирования (Programming Language)
- •Лекция 2 Программно-технические средства реализации компьютерных технологий. Классы операций компьютерных технологий.
- •Лекция 3 Технология обработки текстовой информации Классификация информации по разным признакам
- •Понятие информации, информатики. Технология обработки информации Понятие информации
- •Классификация информации
- •Технология обработки информации
- •Текстовые процессоры
- •Типовая структура интерфейса
- •Режим вставки и замены символов
- •Редактирование текста.
- •Понятие фрагмента текста и его выделение.
- •Копирование и перемещение фрагментов текста
- •Удаление текста
- •Операция откатки
- •Форматирование текста
- •Понятие абзаца
- •Лекция 4 Технология обработки финансово-экономической и статической информации Системы обработки финансово-экономической информации
- •Компьютерные информационные технологии в бухгалтерском учете
- •Технология компьютерной обработки учетной информации на малом предприятии
- •Нейросетевые технологии в финансово-экономической деятельности
- •Лекция 5 Основы компьютерной графики Введение в компьютерную графику и анимацию
- •Классы программ для работы с графикой
- •Понятие цвета в компьютерной графике
- •Битовая глубина (глубина цвета, цветовое разрешение)
- •Цветовые модели
- •Цветовая палитра
- •Основы растровой графики
- •Связь между параметрами изображения и размерами файла
- •Лекция 6 Основы векторной графики
- •Математические основы векторной графики.
- •Фрактальная графика.
- •Основные понятия векторной графики.
- •Лекция 7 Редактирование графических изображений Масштабирование растровых изображений
- •Увеличиваем число пикселов в изображении Нестрогое сравнение различных реализаций функции Resample
- •Откуда взять недостающие пикселы?
- •Мини-тестирование на основе реального изображения
- •Выводы (вернее, рекомендации)
- •Интерполяция
- •Уменьшение числа пикселов в изображении
- •Анализ реального изображения
- •Лекция 8 Преобразование форматов файлов
- •Лекция 9 Системы автоматизированного проектирования (сапр)
- •Структура сапр
- •Разновидности сапр
- •Понятие о cals-технологиях
- •Техническое обеспечение сапр
- •Особенности технических средств в асутп
- •Лекция 10 Системы параметрического автоматизированного проектирования и черчения
- •Лекция 11 Графический редактор
- •Достоинства CorelDraw
- •Недостатки CorelDraw
- •Требования к системным ресурсам
- •Интерфейс программы
- •Строка меню
- •Окно документа
- •Рабочая страница
- •Линейки
- •Лекция 12 Мультимедийная информация
- •1. Rle, Run Length Encoding, Кодирование Длин Повторов.
- •2. Sem (Separate Exponents and Mantissas). Отделение мантиссы числа от экспоненты.
- •3. Mtf (Move To Front, Сдвиг к Вершине) и dc (Distance Coding, Кодирование Расстояний) хорошо описаны в bwt-faq-e Вадима Юкина.
- •8. Vq, Vector Quantization. Векторная квантизация.
- •Список литературы
Особенности технических средств в асутп
Специфические требования предъявляют к вычислительной аппаратуре, работающей в составе АСУТП в цеховых условиях. Здесь используют как обычные персональные компьютеры, так и специализированные программируемые логические контроллеры (ПЛК), называемые промышленными компьютерами. Специфика ПЛК — наличие нескольких аналоговых и цифровых портов, встроенный интерпретатор специализированного языка, детерминированные задержки при обработке сигналов, требующих незамедлительного реагирования. Однако ПЛК в отличие от персональных компьютеров IBM PC рассчитаны на решение ограниченного круга задач.
В целом промышленные компьютеры имеют следующие особенности:
1) работа в режиме реального времени (для промышленных персональных компьютеров разработаны такие ОС реального времени, как OS-9, QNX, VRTX и др.);
2) конструкция, приспособленная для работы ЭВМ в цеховых условиях (повышенные вибрации, электромагнитные помехи, запыленность, перепады температуры, иногда взрывоопасность);
3) возможность встраивания дополнительных блоков управляющей, регистрирующей, сопрягающей аппаратуры, что помимо специальных конструкторских решений обеспечивается использованием стандартных шин и увеличением числа плат расширения;
4) автоматический перезапуск компьютера в случае «зависания» программы;
5) повышенные требования к надежности функционирования.
В значительной мере специализация промышленных компьютеров определяется программным обеспечением. Конструктивно промышленный компьютер представляет собой корзину (крейт) с несколькими гнездами (слотами) для встраиваемых плат. Возможно использование мостов между крейтами. В качестве стандартных шин в настоящее время преимущественно используются шины VME-bus (Versabus Module Europe-bus) и PCI (Peripheral Component Interconnect).
Лекция 10 Системы параметрического автоматизированного проектирования и черчения
В соответствии с общей идеологией системы Автокад главное ее предназначение - вовсе не рисование чертежей на компьютере (это приводит к падению производительности труда конструктора в 2..3 раза), а создание на ее основе специализированной САПР определенного класса изделий. Такие САПР резко, в 15..20 раз (результаты внедрения САПР, разработанных на кафедре АСС ТулГУ) повышают производительность.
Как же надо правильно использовать Автокад? Анализ работы конструкторско-технологических служб ряда промышленных предприятий позволил установить, что одна из наиболее трудоемких проектных процедур в ходе КТПП - разработка конструкторской документации на ряд близких по конструкции деталей и/или сборочных единиц (ДСЕ), отличающихся в основном своими размерными параметрами или вариантами исполнения. Данная процедура является трудоемким и нетворческим процессом с низкой производительностью и высокой вероятностью внесения ошибок. Особенно часто требуется выпускать конструкторскую документацию на средства технологического оснащения (СТО) машиностроительного производства: тиски, кондукторы, пресс-формы и т.д., причем подготовка этой документации должна вестись опережающими темпами для обеспечения времени на изготовление СТО к моменту запуска изделия в производство.
Следует четко определить, какие изделия можно считать подлежащими параметризации. При рассмотрении 2D-проекций детали видно, что они могут быть разбиты на элементарные графические примитивы: отрезки и дуги (рисунок 10.1, а). Каждый примитив однозначно определяется координатами своих базовых точек: начальной и конечной точек отрезка, начальной, конечной точек и центра дуги. Тогда проекцию можно представить в виде графа, вершины которого соответствуют базовым точкам, а ребра - параметрическим связям между ними (рисунок 10.1, б).
Рисунок 10.1 - Проекция детали (а) и ее представление в виде графа (б).
Каждая связь i-j, проходящая от i-й до j-й базовой точки есть вектор параметров
|
1(10.1) |
- расстояние от точки i до точки j;
- угол между прямой, проходящей через точки i и j и прямой, выбранной в качестве начала отсчета углов.
Введем следующее определение:
Два объекта называются конструктивно подобными, если их соответствующие проекции представляются одними и теми же графами.
И
спользование
графов дает возможность, задавшись
произвольными координатами i-й
базовой точки, однозначно определить
координаты всех остальных базовых
точек при обходе графа по формулам:
|
(10.2) |
Таким образом, имея граф, описывающий семейство однотипных объектов, конструктору достаточно задать размерные связи между его базовыми точками, а специализированная САПР выполнит обход графа, расчет координат и отображение полученной проекции. Для этого представим граф в виде функции отображения (визуализации) вида
|
(10.3) |
x,y - координаты начальной точки,
- вектор параметров графа.
Многие изделия представляются в виде вариантных чертежей, когда изделие состоит из постоянной части с варьируемыми размерами и вариантной части с уникальной геометрией. Например, для станочных тисок проектируются уникальные губки под каждую конкретную деталь, фиксируемую этими тисками, но корпус, ходовой винт, струбцина и прочие ДСЕ тисок остаются конструктивно неизменными. В данном случае определение конструктивно подобного изделия не выполняется. Поэтому необходимо ввести понятие варианта конструкции, для чего следует разбить граф проекции на константную часть C и переменную часть V. Тогда достаточно потребовать соответствия графов только константных частей для их автоматизированного параметрического проектирования, а вариантные части, являющиеся уникальными, проектируются с применением универсальных САПР с последующим объединением частей C и V.
Очень часто конструктору приходится выпускать документацию на ряд изделий, которые отличаются только своими размерами (линейными или угловыми), а форма их остается неизменной. Яркий пример таких изделий - технологическая оснастка: кондукторы, мерительный инструмент, пресс-формы и др. (рисунок 10.2).
Рисунок 10.2 - Конструктивно однородные изделия.
Сущность параметрического проектирования состоит в создании математической модели класса конструктивно однородных изделий, а затем в генерации изображений этих изделий по набору задаваемых размерных параметров.
При параметрическом проектировании конструктор запускает программу, рассчитанную на определенный класс изделий, и вводит требуемые размеры. Программа отрисовывает на экране чертеж детали. Конструктор оценивает его и при необходимости вводит размеры снова до достижения требуемого результата. Одновременно может рассчитываться масса детали, что позволяет контролировать ее "на ходу", прямо в процессе проектирования.
Проекция изделия как векторное изображение состоит из множества базовых геометрических элементов - отрезков и дуг. Положение этих элементов на плоскости определяется координатами их базовых точек (рисунок 10.3). Для отрезка базовыми точками являются его начало и конец, а для дуги - начало, конец и центр (дугу можно задать и через другие параметры: радиус, угол, направление и т.д. Автокад поддерживает 18 способов задания дуги).
Рисунок 10.3 - Базовые точки геометрических примитивов.
Таким образом, программа-параметризатор рабоает по следующему алгоритму:
Ввод исходных данных;
Отрисовка текущего варианта;
Запрос пользователю: повторить?
Если да, то переход на п. 1
Конец
Несомненно, здесь нужен большой цикл типа WHILE, который мы уже рассматривали в такой роли.
Попробуем написать простейший параметризатор для детали, изображенной на рисунке 10.4.
Рисунок 10.4 - Заданная геометрия детали.
Сначала нужно определиться с координатами базовых точек. Поскольку проекция симметрична, достаточно найти координаты только двух точек А и В. Нижняя половина проекции отрисуется автоматически при помощи команды Автокада ЗЕРКАЛО.
Не нужно делать лишнюю работу вместо компьютера. компьютер должен работать, а человек - думать.
Определим размерные параметры детали. Очевидно, их два: длина цилиндра и его диаметр.
Для сложных деталей возможны различные наборы размеров. подходящий набор выбирается из технологических соображений.
Для расчета необходимо задаться точкой привязки - опорной точкой, определяющей положение проекции на листе чертежа. Условимся считать опорной точкой левый конец осевой линии. Также, заглянув в ЕСКД, условимся, что осевая линия выходит за контур на 5мм.
Итак, на входе нашей функции:
координата Х точки привязки;
координата Y точки привязки;
длина цилиндра L;
диаметр цилиндра D.
Нужно найти:
координату X точки A (обозначим AX);
координату Y точки A (обозначим AY);
координату X точки B (обозначим BX);
координату Y точки B (обозначим BY).
Очевидно, что:
Будем считать, что наша функция отображения (назовем ее show) вызывается из некоторой головной функции и ей передаются параметры x, y, l, d (координаты точки привязки, длина и диаметр цилиндра соответственно). Результаты расчета нужно записывать в локальные переменные функции show. Соображения экономии памяти, а также хорошего стиля программирования приводят к тому, что нам хватит всего двух локальных переменных: в переменную tmp мы будем заносить текущие результаты расчетов, а в переменную lst - список рассчитанных координат. Этот список будет состоять из двух элементов (точки A и B), каждый из которых, в свою очередь, тоже будет списком их двух координат:
X и Y:
Пишем программу (легко сказать...):
( DEFUN show ( x y d l / tmp lst )
; x, y, s, l - параметры
; tmp, lst - локальные переменные
; координата x точки A записывается в переменную tmp
( SETQ tmp ( + x 5 ) )
; в переменную lst записывается список координат
; точки A
( SETQ lst ( LIST tmp ( + y ( / d 2 ) ) ) )
; координата x точки B записывается в переменную tmp
( SETQ tmp ( + x 5 l ) )
; в переменную tmp записывается список координат
; точки B
( SETQ tmp ( LIST tmp ( + y ( / d 2 ) ) ) )
; в список lst добавляется точка B
( SETQ lst ( LIST lst tmp ) )
); конец функции
Листинг 10.1 - Функция расчета координат базовых точек.
Отрисовку будем выполнять в той же функции show.
. . .
; Удаляем все объекты
( COMMAND "СОТРИ" "РАМКА" '( -10000 -10000 ) '(10000 10000) "" )
; Рисуем осевую линию красным цветом (код 1)
; и штрих-пунктирно (тип линии CENTER)
( COMMAND "ЦВЕТ" 1 "ТИПЛИН" "У" "CENTER" "")
( COMMAND "ПЛИНИЯ" ( LIST x y ) ( LIST ( + x l 10 ) y ) "" )
; Рисуем контур детали белым цветом (код 1)
; и сплошной линией (тип линии CONTINUOS)
( COMMAND "ЦВЕТ" 7 "ТИПЛИН" "У" "CONTINUOUS" "")
( COMMAND "ПЛИНИЯ"
( LIST ( + x 5 ) y ) ; левая точка пересечения осевой
; с контуром
( CAR lst ) ; точка A
( CADR lst ) ; точка B
( LIST ( + x l 5 ) y ) ; правая точка пересечения осевой с контуром
"" ) ; прерывание команды "ПЛИНИЯ"
( COMMAND "ЗЕРКАЛО"
( CAR lst ) ; выбрали объект, указав точку А
"" ; прервали выбор объектов
( LIST x y ) ; первая точка осевой линии -
;точка пересечения контура с осевой слева
( LIST ( + x 5 ) y ) ; вторая точка осевой линии
"Н" ) ; старые объекты не удалять
; Проставляем длину
( COMMAND "ЦВЕТ" 1 )
( COMMAND "РАЗМЕР1"
"ГОР" ; размер горизонтальный
( CAR lst ) ; начало первой выносной линии - точка А
( CADR lst ) ; начало второй выносной линии - точка В
( POLAR ( CAR lst ) ( / PI 2 ) 30 ) ; размерная линия
; отстоит от контура на 30мм
"" ) ; размерный текст ставится автоматически
; Проставляем диаметр
( COMMAND "РАЗМЕР1" "ВЕР" ( CADR lst )
( LIST ( CAR ( CADR lst ) ) ( - ( CADR ( CADR lst ) ) d ) )
( POLAR ( CADR lst ) 0 30 )
; "@" - знак диаметра в шрифте eskd.shx.
; После него выводим диаметр, преобразованный
; в текстовую строку
( STRCAT "@" ( RTOS d 2 2 ) ) )
( COMMAND "ПОКАЖИ" "ВСЕ" )
); конец функции
Листинг 10.2 - Функция расчета координат базовых точек и отрисовки.
Размерные параметры конкретного изделия вводятся конструктором с клавиатуры. Следует помнить, что человеку свойственно ошибаться, а также развлекаться, вводя слово "Вася" в ответ на запрос "Введите диаметр". Поэтому в функции ввода исходных данных следует предусмотреть хотя бы минимальную защиту от ввода некорректных значений. Для этого используется функция INITGET.
Итак, функция ввода данных на входе не имеет параметров, а вот возвращать она должна несколько чисел. Единственный способ возвратить несколько значений - объединить их в список. Теперь мы можем написать функцию ввода данных для нашего примера (назовем ее getdim).
( DEFUN getdim ( / l d )
; ввод длины и диаметра
; возвращаемый список: ( диаметр длина )
( INITGET 7 ) ; запрет пустого ввода и ввода чисел <=0
( SETQ l ( GETREAL "\nВведите длину валика: " ) )
( INITGET 7 )
( SETQ d ( GETREAL "\nВведите диаметр валика: " ) )
( LIST d l ) ; возвращаемое значение
) ; конец функции getdim
Листинг 10.3 - Функция ввода параметров.
Головная функция должна выполнять подготовительные операции (например, установку системных переменных Автокада для отрисовки размеров в соответствии с требованиями ЕСКД) и циклический вызов двух остальных функций: getdim и show. Для удобства перед именем головной функции можно добавить символы "C:". Тогда в Автокаде появится новая команда с именем вашей головной функции и можно будет не набирать скобки при ее вызове. В примере головная функция называется C:main, поэтому для ее вызова в командной строке Автокада достаточно набрать main.
Самостоятельно разберитесь с одним из возможных вариантов организации цикла, приведенном в примере.
( DEFUN C:main ( / l x y flag )
; Устанавливаем размерные переменные по ЕСКД
; Текст над размерной линией, а не в разрыве
( SETVAR "DIMTAD" 1 )
; Текст вне размерных линий параллелен линиям
( SETVAR "DIMTOH" 0 )
; Текст между размерными линиями горизонтален
( SETVAR "DIMTIH" 0 )
; Проведение линии между выносными, если текст сбоку
( SETVAR "DIMTOFL" 1 )
; Продолжение выносных линий за размерными, мм
( SETVAR "DIMEXE" 1 )
; Отключение генерации допусков
( SETVAR "DIMTOL" 0 )
; Размер стрелок
( SETVAR "DIMASZ" 3 )
; Продолжение выносных линий за размерную
( SETVAR "DIMEXE" 3 )
( SETQ flag T )
( WHILE flag
( SETQ l ( getdim ) x 10 y 10 )
( show x y ( CAR l ) ( CADR l ) )
( SETQ ans ( GETSTRING "\nПовторить?<Д/Н>: " ) )
( SETQ flag ( OR ( = ans "Д" ) ( = ans "д" ) ) )
); конец WHILE
( PRIN1 )
)
Листинг 10.4 - Головная функция.
