Инженерная графика и Java

         

Основы инженерной графики

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

Предисловие

В учебнике на данном диске отражен опыт графической подготовки специалистов инженерно-технического профиля на кафедре инженерной графики Красноярской государственной академии цветных металлов и золота и более чем 30-летний опыт заведования кафедрой автором.

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

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

Некоторые геометрические построения
При выполнении графических работ приходится решать многие задачи на построение. Наиболее встречающиеся при этом задачи — деление отрезков прямой, углов и окружностей на равные части, построение различных сопряжений прямых с дугами окружностей и дуг окружностей между собой. Сопряжением называют плавный переход дуги окружности в прямую или в дугу другой окружности. Наиболее часто встречаются задачи на построение следующих сопряжений: двух прямых дугой окружности (скруглением углов); двух дуг окружностей прямой линией; двух дуг окружностей третьей дугой; дуги и прямой второй дугой.

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

Изображение объектов трехмерного пространства
Теоретические свойства построения чертежа в инженерной графике базируются на правилах построения изображений, основанных на методе проекций. Изображение объектов трехмерного пространства на плоскости получают методом проецирования. Проецирование — это процесс, в результате которого получают изображения, представляющие собой проекции на плоскости.

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

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

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

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

Позиционные задачи
Задачи на взаимное пересечение связаны с построением точек, принадлежащих одновременно двум рассматриваемым геометрическим образам, например прямой и плоскости, двум плоскостям, плоскости и поверхности, двум поверхностям. Каждую из этих точек строят в пересечении двух вспомогательных линий. Эти линии должны быть графически простыми и принадлежать одной вспомогательной плоскости или поверхности. Выбор вспомогательных, поверхностей (посредников), несущих в себе вспомогательные линии, зависит от формы пересекающихся поверхностей. Совокупность построенных общих точек позволяет построить линию пересечения геометрических образов.

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

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

Изображение предметов
Главным элементом в решении графических задач в инженерной графике является чертеж. Под чертежом подразумевают графическое изображение предметов или их частей. Чертежи выполняются в строгом соответствии с правилами проецирования с соблюдением установленных требований и условностей. Причем правила изображения предметов или их составных элементов на чертежах остаются одинаковыми вб всех отраслях промышленности и строительства.

Изображение соединений деталей
Изготовляемые промышленностью машины, станки, приборы и аппараты состоят из различных определенным образом объединенных и взаимосвязанных деталей; которые соединяются между собой различными способами. Соединение деталей обеспечивает их определенное взаимное положение в процессе работы. Различают разъемные и неразъемные соединения деталей. К разъемным относят соединения, допускающие разборку и повторную сборку соединяемых деталей без разрушения и повреждения. К ним относятся, например, соединения, выполняемые с помощью болта с гайкой.

Рабочие чертежи деталей
Деталью называют изделие, изготовленное из однородного по наименованию и марке металла, без применения сборочных операций. Примерами деталей могут быть валик, изготовленный из одного куска металла, болт, шпонка и т. п. Для изготовления каждой детали нужен ее рабочий чертеж. Рабочим чертежом детали называется документ, содержащий изображение детали, размеры и другие данные, необходимые для изготовления, ремонта и контроля детали. Этот документ содержит данные о материале, шероховатости поверхностей, технические требования и др. Таким образом, рабочий чертеж включает в себя как графическую, так и текстовую часть.

Изображение изделий
В соответствии с ГОСТ 2.101—68 любой предмет или набор предметов производства, подлежащих изготовлению на предприятии, называется изделием. Установлены следующие виды .изделий: сборочные единицы, комплексы, комплекты.




Программирование на языке Java

Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той, которая реализована в языке Java, революционной — вас могут закидать тухлыми яйцами или занести в разряд пустозвонов, падких на модные новинки. Что же в таком случае делает тот или иной продукт революционным ? Он не может быть только лишь компактней, быстрее и дешевле. Такой продукт должен изменить весь стиль работы, радикально упростив решение сложных проблем.
Создание языка Java — это действительно один из самых значительных шагов вперед в области разработки сред программирования за последние 20 лет. Язык HTML (Hypertext Markup Language — язык разметки гипертекста) был необходим для статического размещения страниц во “Всемирной паутине” WWW (World Wide Web). Язык Java потребовался для качественного скачка в создании интерактивных продуктов для сети Internet.
Три ключевых элемента объединились в технологии языка Java и сделали ее в корне отличной от всего, существующего на сегодняшний день.

Революция по имени Java
Java предоставляет для широкого использования свои апплеты (applets) — небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, встраиваемые в страницы Web. Апплеты Java могут настраиваться и распространяться потребителям с такой же легкостью, как любые документы HTML.
Java высвобождает мощь объектно-ориентированной разработки приложений, сочетая простой и знакомый синтаксис с надежной и удобной в работе средой разработки. Это позволяет широкому кругу программистов быстро создавать новые программы и новые апплеты.

Конструкторы
Если вы имеете дело с каким-либо типом данных и хотите вывести значение этого типа в удобочитаемом виде, сначала придется преобразо-вать это значение в текстовую строку. Для этого существует метод val-ueOf. Такой статический метод определен для любого существующего в Java типа данных (все эти методы совмещены, то есть используют одно и то же имя). Благодаря этому не составляет труда преобразовать в стро-ку значение любого типа.

Меню
С каждым окном верхнего уровня может быть связана линейка меню. Объект MenuBar может включать в себя несколько объектов Menu. Последние, в свою очередь, содержат в себе список вариантов выбора - объектов MenuItem. Menu - подкласс MenuItem, так что объекты Menu также могут включаться в этот список, что позволяет создавать иерархически вложенные подменю.

Философия Java

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

Развитие абстракции
Предполагается, что вы уже знакомы с базовыми концепциями программирования: вы знаете, что программа есть набор инструкций, что бывают процедуры/функции/макросы, что бывают управляющие конструкции такие как "if", а также конструкции построения цикла как "while" и т.п. Однако, вы могли почерпнуть эти знания из разных источников, таких как макро-языки или средства разработки типа Perl.

Математические операторы
Основные математические операторы те же, что и допустимые в большинстве языков программирования: сложение (+), вычитание (-), деление (/), умножение (*) и остаток от деления (%, которое производит остаток от целочисленнгого деления). Целочисленное деление в результате выполняет отсечение, а не округление.

Конструкторы и полиморфизм
Обычно конструкторы отличаются для разных методов. Это так же верно когда используется полиморфизм. Поскольку конструкторы не полиморфичны (но Вы можете получить разновидность виртуального конструктора, об этом Вы узнаете в главе 12), то важно понять способы работы конструкторов составной иерархии и с полиморфизмом. Понятие этого позволит вам устранить неприятную запутанность, связанную с конструкторами.

Обработчики исключений
Каждое catch предложение (обработчик исключения) как меленький метод, который принимает один и только один аргумент определенного типа. Идентификаторы (id1, id2 и так далее) могут быть использованы внутри обработчика, как аргумент метода. Иногда вы нигде не используете идентификатор, потому что тип исключения дает вам достаточно информации, чтобы разобраться с исключением, но идентификатор все равно должен быть.

События и типы слушателей
Все компоненты Swing включают методы addXXXListener( ) и removeXXXListener( ), так что подходящий тип слушателя может быть добавлен и удален для каждого компонента. Вы заметите, что “XXX” в каждом случае также представляет аргумент метода, например: addMyListener(MyListener m). Приведенная ниже таблица включает основные ассоциированные события, слушатели и методы, наряду с основными компонентами, которые поддерживают эти определенные события, обеспечивая методы addXXXListener( ) и removeXXXListener( ).

Почему JDBC API выглядит так сложно
Как упоминалось ранее, базы данных от начала до конца выглядят беспорядочно, в основном поэтому требуются прилажения и инструменты по работе с базами данных. Только недавно появились общие соглашения по языку SQL (и в общем употреблении существует множество других языков работы с базами данных). Но даже при существовании “стандартного” SQL есть так много вариаций этой темы, из-за чего JDBC должен предоставлять такой огромный интерфейс DatabaseMetaData, чтобы ваш код мог обнаруживать совместимость подключенной в настоящее время базы данных с определенным “стандартом” SQL.

Microsoft Visual J++. Создание приложений и аплетов на языке Java

Рассмотрены вопросы использования мультизадачности в приложениях Java, методы работы с графикой, звуком и анимацией. Много внимания уделено организации взаимодействия аплетов и сервера Web, а также описанию способов передачи данных и организации распределенной обработки информации в сети Internet с использованием приложений Java.

Мобильность Java
Язык Java произошел от языка программирования Oak (а не от С++, как думают многие). Oak был приспособлен для работы в Internet и затем переименован в Java. Изучая Java, вы будете приятно удивлены тем, что его синтаксис близок к синтаксису языка C++. Унаследовав самое лучшее от языка программирования C++, язык Java при этом избавился от некоторых недостатков С++, в результате чего на нем стало проще программировать

Обработка событий от кнопки
Этот способ основан на переопределении метода action, который получает управление, когда пользователь совершает какое-либо действие с компонентом. Под действием подразумевается нажатие на кнопку, завершение ввода текстовой строки, выбор элемента из списка, изменение состояния переключателя и так далее.

Поля класса FrameWnd
В поле fMainFrame класса MainFrameWnd хранится ссылка на окно, которое будет создано, если пользователь нажмет кнопку “Show Frame Window”, расположенную в окне аплета. Класс MainFrameWnd создан нами на базе класса Frame.

Мультизадачность
Наверное, сегодня уже нет необходимости объяснять, что такое мультизадачность. Все современные операционные системы, такие как Microsoft Windows 95, Microsoft Windows NT, IBM OS/2 или UNIX способны работать в мультизадачном режиме, повышая общую производительность системы за счет эффективного распараллеливания выполняемых задач. Пока одна задача находится в состоянии ожидания, например, завершения операции обмена данными с медленным периферийным устройством, другая может продолжать выполнять свою работу.

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

Исходные тексты приложения
В приложении ImageDrawWait мы демонстрируем использование класса MediaTracker для ожидания процесса завершения загрузки изображений, показанных на 4.1. Эти изображения рисуются приложением ImageDrawWait не на белом фоне, а на фоне другого изображения.

Ада-95. Компилятор GNAT

Современное общество все больше зависит от программного обеспечения.
Стремительное падение цен на оборудование позволяет, в настоящее время, осуществлять разработку больших программных комплексов, целевое предназначение которых весьма разнообразно.
Таким образом, транспортные, финансовые, медицинские и военные системы во все возрастающей степени зависят от программного обеспечения.
В результате этого, все больше возрастают требования к надежности разрабатываемого программного обеспечения.
Характерной особенностью языка программирования Ада является то, что он специально проектировался как инструмент разработки больших программных комплексов реального времени для встроенных компьютерных систем, к которым предъявляются высокие требования надежности.
В первую очередь, такие требования предъявляются к системам военного предназначения.
Однако, это не исключает применение языка Ада для решения всевозможных задач вычислительного характера, параллельной обработки, моделирования промышленных и технологических процессов в реальном масштабе времени, системного программирования и т.д.
Более того, язык Ада часто рассматривается как язык общего назначения.
К сожалению, существующая на русском языке литература, посвященная языку программирования Ада, в большинстве случаев, относится к старому стандарту языка Ада (Ada-83).

Некоторые исторические сведения
Необходимо также заметить, что данная работа не может расцениваться как перевод стандарта, поэтому, в случае возникновения каких-либо конфликтных ситуаций, которые могут возникнуть при реальной работе, необходимо непосредственно обращаться к Ada-95 Reference Manual, который всегда является истиной в последней инстанции.

Первая программа
Для того, чтобы дать "почувствовать", что представляет из себя программа написанная на языке Ада рассмотрим простую программу. Традиционно, первая программа - это программа которая выводит на экран приветствие: "Hello World!". Не будем нарушать традицию.

Возбуждение исключений
В настоящий момент мы уже знаем стандартно предопределенные исключения Ады, знаем как описывать исключения и знаем как их возбуждать (и свои, и предопределенные). Однако, весь код примеров, которые мы рассматривали, не выполнял никакой обработки исключений.

Язык Ада - взгляд "сверху вниз"
Структурное представление программы в виде набора программных единиц имеет преимущество в том, что по мере возрастания размеров и числа программных единиц программист в большей степени сохраняет для себя общее представление о работе программы в целом (как последовательности действий), поскольку число возможных взаимоотношений между шагами задания и данными ограничено благодаря использованию пакетов.

Система Ада-компилятора GNAT
Система Ада-компилятора GNAT (сокращение от GNU New York University Ada Translator) одновременно является компилятором и системой времени выполнения для Ada95, которая использует многоплатформенный кодогенератор GCC, благодаря которому обеспечивается поддержка большого количества аппаратных платформ.

Знакомство с командами GDB
Руководство "Отладка с помощтью GDB" (Debugging with GDB) содержит полное описание всех команд и предоставляет большое количество примеров их использования. Более того, GDB имеет встроенную команду help, которая выдает краткую справку о доступных командах и их опциях.

Директивы компилятора (pragma)
В данном приложении приводится краткое описание директив компилятора. Более подробное описание использования этих директив содержится в справочных руководствах по языку программирования Ада и по реализации компилятора GNAT.