Розробка об’єктно-орієнтованої надбудови в середовищі AutoCAD

 

Міністерство освіти та науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій та управління

Кафедра Технічної кібернетики









ДИПЛОМНА РОБОТА

зі спеціальності

.091402 Гнучкі компютеризовані системи та робототехніка

ПОЯСНЮВАЛЬНА ЗАПИСКА

«Розробка обєктно-орієнтованої надбудови в середовищі AutoCAD»


Студента групи ГКС-03-з

Василенко Павло Вадимович підпис________

Керівник роботи проф., к.т.н.

Корнілов Георгій Іванович підпис________




Кривий Ріг


АНОТАЦІЯ


Метою дипломної роботи є розробка програми на мові AutoLISP, яка призначена для автоматизації креслення кріпильних виробів. Також в роботі було виконано дослідження теоретичних аспектів і інструментів проектування систем автоматизації розробки конструкторської документації.

Розділів 6, схем та малюнків 46, таблиць 5, бібліографічних посилань 30, загальний обсяг - 98.


Аннотация


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

Разделов 6, схем и рисунков 46, таблиц 5, библиографических ссылок 30, общий объем - 98.


The summary

purpose of this diploma work is development of the of the program in AutoLISP language, which is intended for automation of timbers wares drawing. of theoretical aspects and instruments of planning of the automation systems for designer document was on the go made also.6, circuits and figures 46, tables 5, bibliographic references 30, total amount - 98.


ЗМІСТ


Вступ

. Постановка завдання

.1 Найменування та область застосування

.2 Підстава для створення

.3 Характеристика розробленого програмного забезпечення

.4 Мета й призначення

.5 Загальні вимоги до розробки

.6 Джерела розробки

. Дослідження теоретичних аспектів процесу проектування систем автоматизації розробки конструкторської документації

.1 Призначення і основні характеристики систем АКД

.2 Методи створення графічних зображень й геометричних обєктів

.3 Структура й основні принципи побудови систем АКД

.4 Технологія багатоваріантного конструювання

. Середовище проектування VISUAL LISP

.1 Огляд пунктів головного меню

.2 Огляд панелей інструментів

.3 Написання програм в текстовому редакторові середовища Visual LISP

. Опис програмної реалізації обєктно-орієнтованої надбудови

.1 Функціональне призначення та технологічні особливості розробки

.2 Опис особливостей креслення геометричних обєктів системи

.3 Розробка логіко-функціональной схеми надбудови

.4 Інструкція по інсталяції програмного продукту

.5 Опис інтерфейсу користувача

.6 Опис файлів, які є складовою частиною надбудови

.7 Розробка діалогового вікна системи

.8 Опис програмної реалізації головних функцій проектованої надбудови

. Економічне обґрунтування доцільності розробки програмного продукту

.1 Організаційно-економічна частина

.2 Розрахунок економічного ефекту по упровадженню програмного продукту

. Охорона праці

.1 Інженерна охорона праці

.2 Фізичні й психофізіологічні небезпечні та шкідливі виробничі фактори при роботі на компютері й заходи по їх знищенню

.2.1 Електромагнітне випромінювання

.2.2 Рентгенівське випромінювання

.2.3 Підвищений рівень шуму

.2.4 Несприятливий мікроклімат

.2.5 Освітлення

.2.6 Психофізіологічні шкідливі і небезпечні виробничі чинники

.3 Організаційні і технічні заходи по зменшенню рівня шкідливих виробничих чинників

.3.1 Захист від електромагнітних випромінювань

.3.2 Захист від ураження електричним струмом

.3.3 Захист від статичної електрики

.3.4 Захист від шуму та вібрації

.3.5 Оздоровлення повітряного середовища

.3.6 Захист від рентгенівського випромінювання

.3.7 Забезпечення раціонального освітлення

.4 Пожежна безпека

.4.1 Пожежна і вибухова безпека в робочій зоні технічного обслуговування в приміщеннях з ПЕОМ

Висновки

Список літератури

Додаток А - Вихідний текст файлів надбудови


ВСТУП

програмний автоматизація конструкторський інсталяція

Автоматизація проектування - напрям сучасної науки і техніки, що інтенсивно розвивається. Системи автоматизованого проектування (САПР) стають однією з складових частин гнучких виробничих систем і гнучких автоматизованих виробництв.

З появою технічних і програмних засобів графічної взаємодії проектувальника з ЕОМ завдання автоматизації проектування стало можливим вирішувати інтерактивно. Важливу роль при цьому грає графічне сприйняття і можливість маніпулювати графічними образами. Використання графічних засобів є одним з прийомів інженерної діяльності.

Системи автоматичного проектування дозволяють автоматизувати розробку конструкторської документації варіантів виробів залежно від заданих параметрів, наприклад, на основі базових або уніфікованих несучих конструкцій; модернізацію існуючих конструкцій; виконання креслень з великою кількістю однотипних графічних зображень; трудомісткий процес складання переліків елементів, специфікацій і інших текстових документів. Засобами ЕОМ можна автоматизувати рішення графічних задач: визначення габаритних розмірів конструкцій, їх площ, об'ємів, параметрів, умов їх взаємного розташування і т.п.

Система AutoCAD є однією з найпопулярнішої в світі систем автоматичного проектування. AutoCAD є могутнім графічним ядром, на якому базуються багато прикладних пакетів як і від самої фірми AutoDESK, так і від незалежних виробників.

Тепер використання AutoCAD вже не зводиться до відтворення роботи на креслярській дошці. Відносини і зв'язки між окремими тілами в тривимірному просторі можуть задаватися в структурі самих елементів конструкцій. Внутрішня форма опису кожного елементу геометричної моделі в AutoCAD передбачає можливість запису практично будь-якої супутньої інформації. Починаючи з версії 13, AutoCAD забезпечує функціональну структуризацію. Для кожної серйозної прикладної роботи, пов'язаної з проектуванням, існують різноманітні настройки, що розширюють базовий AutoCAD до функціонального інструменту, призначеного для роботи в конкретних умовах. Картографія, машинобудування, магістральні об'єкти, архітектура, промислове, цивільне будівництво і землеустрій, і багато що інше породили цілу гамму додатків до AutoCAD, що перетворюють його на налаштований на конкретну роботу інструмент. На більшості крупних проектно-конструкторських підприємств створені спеціальні відділи по підтримці процесу проектування - Відділи Інформаційних Технологій. У їх завдання входить підтримка в порядку «конструкторських » інструментів - комп'ютерів і програм. Їх роль підібрати необхідний інструмент, налогодити його на заданий режим роботи, стежити, щоб він працював правильно, і навчити основний персонал використовувати вибрані і «заточені» «пили і сокири » ефективно і безпечно.

Система AutoCAD в об'ємі базового постачання дозволяє виконувати креслярські і конструкторські роботи в об'ємі тільки штатних засобів. За допомогою стандартних примітивів (відрізків, кіл, дуг і т.д.) можна намалювати майже все, що завгодно. Але кінцевим користувачам (інженерам і конструкторам різних профілів) необхідно малювати не просто примітиви, а проектувати конкретні об'єкти (деталі устаткування, електричні і принципові схеми, будівельні плани і багато що інше). Робити це треба швидко і якісно відповідно до стандартів в тій або іншій країні або галузі.

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


1. ПОСТАНОВКА ЗАВДАННЯ


.1 Найменування та область застосування


Найменування розробки: обєктно орієнтована надбудова в середі AutoCAD. Система призначена для автоматизації креслення кріпильних виробів в середі AutoCAD і може бути використана інженерами та конструкторами при виконанні креслень.


1.2 Підстава для створення


Підставою для розробки є наказ № 65Са-01 від 29 жовтня 2007 р. по Криворізькому інституту КУЕІТУ.

Початок робіт: 31.10.07. Закінчення робіт: 01.06.08.


1.3 Характеристика розробленого програмного забезпечення


Проектована обєктно-орієнтована надбудова реалізована засобами мов AutoLISP та DCL. Програмний продукт може функціонувати в середі AutoCAD 2000 та наступних версій. Зображення типових виробів створюються на основі державних стандартів та відвідають усім необхідним вимогам.

До складу надбудови входять:

krpz.lsp - головний модуль завантажуваної надбудови;

krpz.dcl - файл, що містить інформацію про діалогове вікно системи;

blts.lsp, gks.lsp, vint.lsp, shb.lsp - файли, що містять алгоритми креслень виробів;

файли з розширенням dat - містять табличну інформацію про параметри кріпильного виробу відповідної серії;

файли з розширенням slb містять слайди (графічні зображення) параметричних типових креслень відповідних виробів.


1.4 Мета й призначення


Метою даної дипломної роботи є розробка об'єктно-орієнтованої надбудови на мові AutoLISP, яка призначена для автоматизації креслення різьбових кріпильних виробів. Система пройшла практичну апробацію і може бути використана інженерами та конструкторами при виконанні креслень.


1.5 Загальні вимоги до розробки


Вимоги до програмного забезпечення:

·Робота в середовищі операційних систем Windows 2000/XP;

·Простота й зрозумілість інтерфейсу.

Мінімальні вимоги до апаратного забезпечення:

·IBM-сумісний комп'ютер, не нижче Pentium IІ, RAM-128Mb, SVGA-800*600*16bit;

·Вільний простір на жорсткому диску не менш 600 Мб.

·Додаткове програмне забезпечення: інсталяція AutoCAD.


.6 Джерела розробки


Джерелами розробки дипломної роботи є:

·довідкова література;

·наукова література;

·технічна література;

·програмна документація.


2. ДОСЛІДЖЕННЯ ТЕОРЕТИЧНИХ АСПЕКТІВ ПРОЦЕСУ ПРОЕКТУВАННЯ СИСТЕМ АВТОМАТИЗАЦІЇ РОЗРОБКИ КОНСТРУКТОРСЬКОЇ ДОКУМЕНТАЦІЇ


2.1 Призначення і основні характеристики систем АКД


Сучасний рівень програмних і технічних засобів електронної обчислювальної техніки дозволяє перейти до нових інформаційних комп'ютерних технологій, створювати системи автоматизації розробки і виконання конструкторської документації (АКД), що задовольняють стандартам ЄСКД як за якістю виконання документів, так і по дотриманню вимог стандартів. На комп'ютері можуть бути створені конструкторські документи (креслення і схеми) як з використанням, наприклад графічних примітивів типу відрізка, кола, полілінії та ін., так і фрагментів раніше створених конструктивних елементів: графічних зображень (ГЗ) стандартних виробів, типових і уніфікованих конструкцій, їх частин і т.д. При цьому моделі вищезгаданих фрагментів можуть бути параметрично заданими. За допомогою завдання різних значень параметрів конструктор може змінити їх розміри і геометричну форму, забезпечуючи багатоваріантність ГЗ і відповідно креслень і схем. При такому підході до конструювання використання комп'ютерної графіки не усуває креслення (рис. 2.1) як основу конструювання, комп'ютер використовується як «електронний кульман», що полегшує працю конструктора. Такий підхід базується на двовимірному геометричному моделюванні.


Рис. 2.1 Структура системи АКД, заснованої на двовимірному геометричному моделюванні


При розробці КД в цьому випадку ефективність застосування комп'ютерної графіки забезпечується наступними її можливостями:

·наявністю у всіх графічних редакторах засобів перетворень: повороту,

·перенесення, масштабування, побудови дзеркального зображення і др.;

·використання готових фрагментів креслень з бібліотеки слайду: конструктивних і геометричних елементів, уніфікованих і типових конструкцій, стандартних виробів;

·формуванням креслень з використанням об'єктно-орієнтованих інтерфейсів користувача, ведення діалогу з комп'ютером в звичних для конструктора (у вигляді піктограм) термінах і із звичними для нього об'єктами (ГЗ);

·наявністю пакетів програм опису типових моделей-представників креслень об'єктів, коли процес створення конкретного креслення виробу полягає в маніпулюванні розмірами, представленими у вигляді параметрів;

·отриманням креслень високої якості, оформлених за стандартами ЄСКД (формується на етапі конструювання) шляхом виводу на графічні пристрої, принтери і інші пристрої.

Для використання цих можливостей застосовуються системи-надбудови над базовою графічною системою (наприклад, над AutoCAD), що містять спеціалізовані для конкретного виробу моделі необхідних фрагментів ГЗ, інтерфейсів користувача, що є об'єктно-орієнтованими «падаючими» і піктографічними меню і відповідними бібліотеками слайду.

Існують і інші підходи до автоматизації конструкторської діяльності, наприклад на основі просторового геометричного моделювання, коли формується просторова модель геометричного об'єкту (ГО), що є наочнішим способом представлення оригіналу і могутнішим і зручнішим інструментом для вирішення геометричних завдань (рис. 2.2). Креслення тут грає допоміжну роль, а методи його створення засновані на методах комп'ютерної графіки, методах відображення просторової моделі (у AutoCAD - тривимірне моделювання). При першому підході - традиційному процесі конструювання - обмін інформацією здійснюється на основі конструкторської, нормативно-довідкової і технологічної документації; при другому - на основі внутрішньо-машинного представлення ГО, загальної бази даних, що сприяє ефективному функціонуванню програмного забезпечення систем автоматизованого проектування (САПР) конкретного виробу.


Рис. 2.2 Структура системи АКД, заснованої на використанні просторової моделі геометричного об'єкту


.2 Методи створення графічних зображень й геометричних обєктів


Обробка графічних даних на компютері як область прикладної інформатики означає формування ГІ й ГО (створення цифрової моделі), їх зберігання, відображення й перетворення, що можливо представити в вигляді геометричного інформаційного потоку (рис. 2.3). На малюнку показані три способи створення моделі ГО й його обробки на компютері в залежності від виду ГО й способу його вводу в компютер.

Виділяють два основних вида ГО:

·постійний - з постійними розмірами й геометричною формою, на-приклад ГІ умовних графічних позначень радіовиробів електричних схем, графічне зображення стандартного радіоивироби (резистора, конденсатора й ін.) з постійними розмірами;

·параметрично заданий - зі змінними розмірами й геометричною формою, наприклад, графічне зображення радіовироби, що залежить від номіналу; типові й уніфіковані несучі конструкції радіоелектронних обладнань; конструктивні елементи типових деталей і ін.

Моделі постійних ГО можуть бути отримані за допомогою I і III способів. Способом I ГО вводяться в комп'ютер зі скануючих обладнань вводу, планшетних обладнань, що кодують, телекамери й ін. Способом III для інтерактивного вводу/виводу ГО застосовуються графічні системи (графічні редактори) опису й редагування ГО (наприклад, Autocad).

Формування моделі параметрично заданого ГО забезпечується способом II з використанням програм створення моделі або об'єктно-орієнтованих систем-надбудов (скажемо, за допомогою мови програмування Autolisp) над Autocad.

Методи створення моделей, параметрично керованих ГО, характеризуються більшими витратами на формування внутрімашинного розуміння. Щоб скоротити ці витрати, при описі деяких груп технічних об'єктів можна користуватися одним із двох принципово різних методів: варіантним або генерируючим.


Рис. 2.3 Способи створення й обробки моделі геометричного об'єкту


Рис. 2.4 Структурна схема елементів деталі


Варіантний метод заснований на тому, що для певного класу виробів виявляється модель-представник, за допомогою якої отримують всі геометричні форми цього класу виробів. Представника класу виробів називають типо-завивання, або комплексною моделлю, а отримані з неї форми - варіантами (виконань). Виконання виробу визначається заданими параметрами, обнулення яких приводить до виключення складових елементів ГО. У простому випадку змінюються тільки розміри, а конструкція окремих варіантів сімейства виробів залишається незмінною. Опис ГО, заданого параметрами, лежить в основі багатоваріантного конструювання. Витрати на опис типової моделі великі в порівнянні з витратами на отримання варіантів, тому багато систем використовують принцип вкладеності моделей: один раз описані типові моделі використовуються для опису інших типових моделей як макрокоманди.

Генеруючий метод заснований на розділенні ГО на конструктивні і геометричні елементи і створенні нових ГО з наявних елементів за допомогою вибору різних їх поєднань. На рис. 2.4 приведений приклад розділення деталі на елементи. Системи АКД, що працюють по генеруючому методу, володіють високою гнучкістю і ефективні, оскільки досвід показує, що більшість конструкторських розробок створюються шляхом поєднання елементів, що не використалося, раніше відомих, як за принципом функціонування, так і по виконанню.


.3 Структура й основні принципи побудови систем АКД


Система АКД виконує введення, зберігання, обробку і виведення графічної інформації у вигляді конструкторських документів. Для реалізації системи необхідні: документи, що регламентують роботу системи АКД; початкова інформація для формування інформаційної бази; інформаційна база, що містить моделі ГО, ГІ, елементи оформлення креслення по ДОСТ ЕСКД; технічні і програмні засоби створення ГО і ГІ і їх виводу; інтерфейс користувача у вигляді діалогу з комп'ютером.

Всі перераховані складові утворюють методичне, інформаційне, технічне, програмне і організаційне забезпечення системи АКД (рис. 2.5).

Основними принципами побудови системи АКД є:

·мобільність - адаптується системи АКД до різних САПР. Шлях до цього - використання поширених базових графічних систем (наприклад, AUTOCAD) і мов програмування (наприклад, AUTOLISP);

·інформаційна єдність всіх частин АКД і САПР, яке передбачає єдність бази даних для різних призначень (скажімо, користування моделі ГО і ГІ як для формування креслень, так і для розрахунків і виготовлення виробу);

·інваріантність - максимальна незалежність складових частин і системи АКД в цілому по відношенню до орієнтованих систем АКД і САПР. Наприклад, система електронних пристроїв може бути використана як графічна підсистема в системі управління робототехнічним комплексом і як графічна підсистема в системі управління контрольно-вимірювальним пристроєм;

·можливість розширення системи АКД шляхом доповнення нових складових частин й розвиток старих.


Рис. 2.5 Методичне, інформаційне, технічне, програмне й організаційне забезпечення системи АКД


2.4 Технологія багатоваріантного конструювання


Існує безліч методів формування конструкторської документації в середовищі графічних систем. У цьому підрозділі описується метод післяопераційної обробки заготівки деталі. Його особливість полягає в тому, що способів механічної обробки заготівки для перетворення її на виріб відносно мало. Багато разів використовуючи цю технологічну операцію, можна отримувати в результаті креслення деталей дуже широкого класу. Більш того, якщо всі способи обробки незалежні один від одного, то додавши навіть одну нову операцію, значно розширюється різноманітність отримуваних креслень. Щоб отримати набір команд формування креслень певного класу деталей, спочатку потрібно вибрати з вже наявних креслень найбільш складні і такі, що повно відображають всі особливості даного класу. Далі на їх основі створюють креслення типової деталі. Всі розміри цього креслення повинні бути виражені в параметрах. З такого параметричного типового креслення деталі (рис. 2.6) і починається розробка програмного забезпечення. Але раніше необхідно виділити з цього креслення основу деталі і функціональні елементи. Основою для будь-якої деталі служить заготовка, з якої за допомогою наступної обробки (свердлення, точіння, фрезерування і ін.) отримують необхідний виріб. В принципі всі основи можна представити у вигляді заготівки у формі або циліндра, або паралелепіпеда без отворів. Проте на практиці заготовки бувають складнішими формою і в деяких випадках з крізними отворами. На рис. 2.7 зображено параметричне креслення основи комплексної деталі. Функціональний елемент, з погляду розробника програмного забезпечення, - це одна параметрична обробка заготовки. При обробці моделі заготовки необхідно коректно модифікувати важ креслення. Це обумовлює деяку подвійність терміну «функціональний елемент»: з одного боку, це технологічна операція над деталлю-заготовкою, а з іншої - програма, що модифікує креслення заготовки.


Рис. 2.6 Параметричне типове креслення деталі


Рис.2.7 Параметричне креслення основи комплексної деталі


Для користувача функціональний елемент - це програма або команда, що модифікує креслення заготівки в повній відповідності з деякою технологічною обробкою деталі заготівки. Якщо для параметричного прототипу, приведеного на рис.2.6, прийняти за основу рис. 2.7, то, окрім основи, можна виділити ще 3-4 функціональних елементу: кругову систему отворів, різьбовий отвір з проточкою, циліндрове розточування і ін. Всі функціональні елементи повинні бути незалежні один від одного, тобто виконуватися в будь-якій послідовності і будь-яка кількість разів, якщо це не суперечить коректного виконання відповідних їм технологічних операцій над деталлю заготівки. При розробці програм, що формують функціональні елементи, слід мати на увазі, що вони обов'язково прив'язані до базових точок заготівки. Вони вибираються зазвичай або на перетині осей проекції, або на перетині осі і якої-небудь поверхні, але не більш за одну на кожній проекції заготівки. На рис. 2.8 показані деякі функціональні елементи для комплексної деталі, зображеної на рис.2.6.

На AUTOLISP виклик програми і введення вхідних параметрів можна оформити двома способами - або у вигляді функції, або у вигляді команди. У кожного способу є переваги і недоліки, але, з погляду користувача, зручніший виклик командою з введенням даних в процесі діалогу. Більш того, якщо програму формування основи ще можна описати у вигляді функції, то функціональний елемент - тільки у вигляді команди, що включає розвинений діалог з користувачем. Діалог необхідний по двох причинах: по-перше, введення координат базових крапок в більшості випадків можливе тільки за допомогою об'єктних прив'язок в інтерактивному режимі; по-друге, введення значень параметрів функціональних елементів, визначуваних елементами заготівки, вимагає вимірювання безпосередньо на кресленні.

При створенні сценарію діалогу треба дотримуватися деяких правил:

·необхідно здійснювати ввід лише мінімально-достатньої інформації.

Наприклад, на рис. 2.7 розмір функціонального елементу визначений через різницю двох розмірів прототипу. Помилково вимагати від користувача введення обох розмірів, щоб отримати їх різницю; правильніше відразу запитати цю різницю (L-L8). Окрім введення значень параметрів, що визначають геометрію функціонального елементу, необхідне введення не менше однієї базової точки. У мові AUTOLISP це здійснюється або шляхом введення координат точки в параметрах функції, що розробляється, або за допомогою функції GETPOINT з подальшим витяганням даних координат. Для основи необхідна одна базова точка, що визначає її місцеположення на кресленні. Для функціонального елементу - стільки, а скількох проекціях модифікується зображення заготовки;

·ввід інформації повинен здійснюватися, по можливості, різними способами.

У AUTOLISP це означає, що, наприклад, введення значення параметра D краще здійснювати за допомогою функції GETDIST. На відміну від функції GETREAL, GETDIST дозволяє вводити значення і з клавіатури (введення числа), і за допомогою миші (введення відстані між двома вибраними на екрані крапками). Різноманітність способів введення даних значно полегшує роботу користувача з будь-якою програмою.

·не слід запрошувати і вводити інформацію, яку можна отримати з креслення, наприклад, при формуванні циліндрового розточування по отвору (рис. 2.9).

Даний функціональний елемент визначають значення параметрів L8, D2 і базової крапки. Для видалення частини лінії отвору програмістові необхідно також знати його діаметр D. Здається спокусливим просто запитати це значення у користувача, але воно не відноситься до даного функціонального елементу. Рішення проблеми - в скануванні певної області креслення і аналізі тих об'єктів, які потрапили в цю область. У AUTOLISP сканування здійснюється за допомогою функції SSGET, зазвичай з ключем Crossing.


Рис.2.8 Функціональні елементи комплексної деталі


Рис.2.9 Формування циліндричного розточування по отвору


Розробник програмного забезпечення повинен дотримувати незалежність функціональних елементів. Для команд редагування AUTOCAD, незалежність означає, що при виконанні будь-якої розробленої команди не грає ролі, яким чином і в якій послідовності обробляється графічне зображення. Для функціональних елементів незалежність означає, що вони повинні модифікувати будь-яке креслення заготівки, при цьому неважливо, в якій послідовності і якими засобами креслення формувалося. Якщо розробник не підтримувався даного принципу, то функціональний елемент розроблений некоректно. Нижчеприведені функції, що формують основу комплексної деталі і функціональний елемент, розробці і нагоджені в середовищі мови AUTOLISP.

; Очищення поля креслення формату А4 (зручно використовувати при наладці програми).

(COMMAND "ERASE" "С" "0,0" "210,297)

;

; Функція формування параметрично керованої основи комплексної деталі. За базову точкуузятий лівийнижній кут горизонтальної проекції (х, у)

(DEFUN OSN (X У DDlL LI L2 L3 / L2PLIP Rl R XI Y1 )

(SETQP(/L2 2.0);Визначення(/L1 2.0);локальних(/Dl 2.0);змінних.(/D 2.0)

; Формування контура і кіл горизонтальної проекції. Зображення розміщується в заздалегідь створеному шарі Osn.

(COMMAND "LAYER" "Set" "Osn" ""

"LINE" (LIST X Y ) (LIST (+ X L2) Y ) (LIST (+ X L2) (+ Y LI) ) (LIST X (+ Y LI) ) "C" "CIRCLE" (LIST (+ X L2p) (+ Y LIP)) Rl "CIRCLE" (LIST (+ X L2p) (+ Y LIP)) R

; Формування осьових ліній горизонтальної проекції. Зображення знаходиться в заздалегідь створеному шарі Osi, якому привласнений штріхпунктірний тип лінії.

"LAYER" "Set" "Osi" ""

"LINE" (LIST(+ X L2P) (- Y 5.0))

(LIST(+ X L2p) (+ Y LI 5.0))

"LINE" (LIST(- X 5.0) (+ Y LIP))

(LIST(+ X L2 5,0) (+ Y LIP))

; Формування фронтальної проекції в шарі Osn.

(SETQ XI X Yl (+ LI 20.0)

; Визначення координат локальної базової точки для фронтальної проекції.(COMMAND "LAYER" "Set" "Оsn"

"LINE"

(LIST (+ XI L2P) (LIST XI

(LISTXI

(LIST(+XI L2)

(LIST(+XI L2)

(LIST(+XI L2P Rl)(+ (LIST(+XI L2P Rl)( +

(LIST(-(+ XI L2P)Rl)

(LIST(-(+ XI L2P)Rl)" (LIST (+ XI L2P R) (LIST (+ XI L2P R)

(+ Yl L3)) (+ Yl L3)))) (+ Yl L3))L3)) Yl L )) (+ Yl L )) (+ Yl L3))) (+ Yl L)) ""

; Формування осьової лінії фронтальної проекції.

; Зображення знаходиться в шарі Osi.

"LAYER" "Set" "Osi

"LINE" (LIST (+ XI L2P) (- Yl 5.0))

(LIST (+ XI L2P) (+ Yl L 5.0)) ""

)

; Звернення до функції OSN з різноманітними параметрами.

; Результат роботи функції наведений на мал. 2.10.

; Штрихування сформоване засобами AutoCAD.

(OSN 20 20 15 45 40 45 80 10) (OSN 140 10 б 15 120 20 30 50) (OSN 20 200 25 35 20 35 180 5)

; Команда FUN1 формує прямокутну проточку.

; Основа комплексної деталі модифікується автоматично.

; Результати роботи команди FUN1 показані на мал. 2.11.

(DEFUN C:FUN1 (/ ВР1 ХВ1 YB1 L2P L4P L6P ВР2 ХВ2 YB2 L3)

; Ввід базової точки 1, що знаходиться в центрі горизонтальної

; проекції, з обєктною прив'язкою Intersection (Пересечение).

(COMMAND "OSNAP" "Int")

(SETQ BP1 (GETPOINT "\nEnter base point 1 :")(CAR BP1) ; Обчислення координат

УВ1 (CADR BP1) ; базової точки 1.

; Ввід параметрів проточки на горизонтальної проекції.

; Використовується ефект "гумової нитки" від базової точки 1.

(COMMAND "OSNAP" "Perpend")

(SETQ L2P (GETDIST BP1 "\nEnter L2/2 :") )

(COMMAND "OSNAP" "None")

(SETQ L4P(GETDIST BP1 "\nEnter L4/2 :")P (GETDIST (LIST (+ XB1 L2P) YB1) "\nEnter L2/2 :")

; Формування проточки на горизонтальній проекції

(COMMAND "LAYER" "Set" "Osn" ""

"PLINE" (LIST (+ XB1 L2P)(- YB1 L6P))

(LIST (+ XB1 L4P)(- YB1 L6P))

(LIST (+ XB1 L4P)(+ YB1 L6P))

(LIST (+ XB1 L2P)(+ YB1 L6P)) ""

)

(SETQ PPP1 (ENTLAST) )

)

(COMMAND

"PLINE" (LIST (- XB1 L2P)(- YBl L6P))

(LIST (- XB1 L4P)(- YBl L6P))

(LIST (- XB1 L4P)(+ YBl L6P))

(LIST (- XB1 L2P)(+ YBl L6P))

(SETQ PPP2 (ENTLAST))

; Модернізація контуру горизонтальної проекції основи деталі.


(COMMAND "TRIM" PPPl ""

(LIST (+ XB1 L2P) (+ УВ1 (/ L6P 2.0))) "TRIM" PPP2 ""

(LIST (- XB1 L2P) (+ YB1 (/ L6P 2.0)))


Рис.2.10 Результат виконання функції OSN


Рис.2.11 Результат виконання функції FUN1


; Введення базової крапки 2, розташованою внизу в центрі фронтальної ; проекції, з об'єктною прив'язкою Intersection (Перетин)

(COMMAND "OSNAP" "Int")

(SETQ BP2 (GETPOINT "\nEnter base point 2 :"}(CAR BP2)

;Обчислення координатYB2 (CADR BP2);-базової точки 2.

; Ввід параметрів проточки на фронтальної проекції.

; Використовується ефект "гумової нитки" від базової точки 2

(COMMAND "OSNAP" "Perpend")

(SETQ L3 (GETDIST BP2 "\nEnter L3 :") )

; Формування проточки на фронтальній проекції.

(COMMAND "OSNAP" "None"

"LINE" (LIST (+ XB2 L4P) YB2 }

(LIST (+ XB2 L4P) (+ YB2 L3 }} ""

; Команда запускається з командної строки AutoCAD вказанням

; її імя - FUN1.


3. СЕРЕДОВИЩЕ ПРОЕКТУВАННЯ VISUAL LISP


Середовище Visual LISP введене в систему AUTOCAD для спрощення процесу написання і відладки програм на мові AUTOLISP. На рис. 3.1 показано діалогове вікно Visual LISP для AUTOCAD (Visual LISP for AUTOCAD), яке з'являється на екрані, якщо користувач вводить в командному рядку команду VLISP (таке ж найменування застосовується і в англомовній версії AUTOCAD). Іншою формою цієї команди є VLIDE. До аналогічного результату приводить використання пункту AUTOLISP, редактор Visual LISP (Visual LISP Editor) падаючого меню Сервіс (Tools).

Діалогове вікно Visual LISP для AUTOCAD (Visual LISP for AUTOCAD) є самостійною оболонкою усередині системи AUTOCAD, з своїми падаючими меню і панелями інструментів. Панелі інструментів можуть знаходитися не тільки у фіксованому положенні (див. рис. 3.1), але і в плаваючому (див. рис. 3.2).

Усередині робочої зони розташовуються вікна для відкритих текстових файлів (можуть редагуватися файли LISP-програм, DCL-файли діалогових вікон, SQL-файли операцій з базами даних, файли програм на мові С), вікно Консоль Visual LISP (Visual LISP Console) (використовується для зв'язку з системою AUTOCAD), вікно Трасування (Trace) (використовується для відладки програм).


3.1 Огляд пунктів головного меню


До складу середовища Visual LISP входять дев'ять падаючих меню: Файл (File), Правка (Edit), Пошук (Search), Вигляд (View), Проект (Project), Відладка (Debug), Сервіс (Tools), Вікно (Window), Довідка (Help). У всіх падаючих меню є і постійні пункти, і пункти, які міняють свій стан або зникають залежно від конкретного етапу розробки програми.

Меню Правка (Edit) (рис. 3.4) містить наступні пункти:

·Відмінити (Undo)

·Повторити (Redo)

·Вирізати (Cut)

·Копіювати (Copy)

·Вставити (Paste)

·Видалити (Delete)

·Виділити все (Select All)

·Перевірка дужок (Parantheses Matching)

·Додаткові функції (Extra Commands)

Перші сім пунктів меню відповідають аналогічним пунктам меню Правка (Edit) інших додатків Windows. Пункт Перевірка дужок (Parantheses Matching) містить підпункти операцій для контролю редагованого тексту:

·Знайти закриваючу (Match Forward)

·Знайти відкриваючу (Match Backward)

·Виділити до кінця (Select Forward)

·Виділити до початку (Select Backward)

Два перші підпункти дозволяють знаходити в тексті що парну закриває або парну відкриває дужки для дужки, що знаходиться у поточної позиції курсора. Два останні підпункти виконують аналогічні операції, але при цьому ще і виділяють потрібні ділянки тексту.

Меню Пошук (Search) (рис. 3.5) призначено для операцій текстового редактора Visual LISP (зокрема, операцій пошуку і заміни). Пояснимо призначення деяких з цих пунктів (сенс решти пунктів ясний з найменувань). Пункт Дописати словом з вікна (Complete Word by Match) дає можливість редакторові Visual LISP дописати (закінчити) почате вами слово аналогічно попередньому слову з таким же початком в поточному вікні редагованої програми. Пункт Дописати словом із списку (Complete Word by Apropos) дозволяє отримувати варіанти дописування слова із списку символів AUTOLISP, куди входять імена вбудованих функцій (рис. 3.6).

За допомогою закладок можна позначати потрібні місця в тексті для швидкого переміщення між ними надалі. Операції установки, видалення закладок і переходів між закладками виконуються за допомогою підпунктів Закладка Вкл / Викл (Toggle Bookmark), Наступна закладка (Next Bookmark), Попередня закладка (Previous Bookmark), Прибрати всі закладки (Clear All Bookmarks) пункту Закладки (Bookmarks). Ще два підпункти - Виділити до наступної закладки (Select to Next Bookmark) і Виділити до попередньої закладки (Select to Previous Bookmark) - того ж пункту меню дозволяють полегшити операції виділення великих ділянок тексту.

Падаюче меню Вигляд (View) (див. рис. 3.7) призначено для операцій проглядання різної допоміжної інформації під час роботи L1SP-программы, а також для роботи з панелями інструментів діалогового вікна Visual LISP для AutoCAD (Visual LISP for AutoCAD).

Пункт Вивчити (Inspect) дозволяє викликати спеціальні вікна Вивчення (Inspect), в яких можна подивитися стан змінних, списків, наборовши, примітивів, а також виразів AUTOLISP. Ім'я об'єкту, що вивчається, або вираз повинні бути заздалегідь виділені в тексті програми; якщо нічого не було виділено, то перед відкриттям чергового вікна Вивчення (Inspect) видається запит імені. Пункт Стек трасування (Trace Stack) виводить на екран однойменне вікно. У цьому вікні приводиться перелік останніх виконаних операцій (рис. 3.8).

У верхній частині вікна розташовані кнопки:

·Освіжити (Refresh) - очищує вміст вікна;

·Копіювати у вікно трассировки/журнал (Copy to Trace/Log) - копіює текст в спеціальне вікно Трасування (Trace).

Якщо у вікні Стек трасування (Trace Stack) виділити який-небудь рядок, то за допомогою правої кнопки миші можна викликати контекстне меню з дополні-тельнимі операціями над елементами стека трасування (об'єм контекстного ме-ню може мінятися): Вивчити (Inspect), Друк (Print), Символ функції (Function Symbol), Копіювати (Copy), Локальні змінні (Local Variables), Положення в тексті (Source Position), Позиція виклику функції (Call Point Source).

Пункт Пошук помилок (Error Trace) падаючого меню Вигляд (View) викликає однойменне вікно з інформацією про помилки, що виникли при виконанні програми.

Якщо виділити в цьому вікні рядок, то натисненням правої кнопки миші можна викликати контекстне меню для отримання додаткових відомостей про елемент вікна Пошук помилок (Error Trace). Контекстне меню має ті ж пункти, що і контекстне меню вікна Стек трасування (Trace Stack). На мал. 3.9 показаний приклад додаткового вікна, викликаного за допомогою пункту Показати повідомлення (Show Message), яке з'являється в контекстному меню для рядка SYNTAX-ERROR.

Пункт Інспектор символів (Symbol Service) падаючого меню Вигляд (View) відкриває однойменне вікно, яке виконує функції, схожі на функції вікна Вивчення (Inspect), але тільки для символів AUTOLISP.

Вікно має три поля: Ім'я (Name), Значення (Value) і Прапори (Flags). Призначення перших два полий очевидно (ім'я символу і значення символу), а поле Прапори (Flags) містить чотири прапорці, які можуть бути встановлені або скинуті для вибраного символу:

·Трасування (Trace) - відстежування за допомогою трасування;

·Відладка на вході (Debug on Entry) - відладка при вході у функцію;

·Захист від присвоєння (Protect Assign) - захист спеціальних символів від випадкового привласнення (наприклад, т, pi і ін.);

·Експорт в AUTOCAD (Export to AUTOCAD) - експорт функції в AUTOCAD, щоб зробити її доступною для додатків OBJECTARX.

Вікно Інспектор символів (Symbol Service) у верхній частині має чотири кнопки (зліва направо):

·Контрольне значення (Watch) - добавляє символ до вікна Контрольне значення (Watch);

·Вивчить (Inspect) - відкриває вікно Вивчення (Inspect) для даного символу;

·Показати опис (Show Definition) - викликає вікно текстового редактора і виділяє в нім текст символу, що є призначеною для користувача функцією;

·Довідка (Help) - викликає довідку по Visual LISP з описом символу, що є вбудованою функцією.

Пункт Вікно контрольних значень (Watch Window) падаючого меню Вигляд (View) виводить на екран вікно Контрольне значення (Watch). Вікно відображує значення вибраних символів в ході виконання програми. Додавання символів до цього вікна проводиться або за допомогою вікна Інспектор символів (Symbol Service) (кнопкою Контрольне значення (Watch)), або за допомогою першої (лівою) з чотирьох кнопок (Додати контрольне значення (Add Watch)), розташованих у верхній частині вікна Контрольне значення (Watch). Перерахуємо ці кнопки:

·Додати контрольне значення (Add Watch)

·Очистити вікно (Clear Window)

·Сортувати вираз (Sort Expressions)

·Копіювати у вікно трасировки/журнал (Сору to Trace/Log)

Пункт Параметри довідкового списку (Apropos Window) падаючого меню Вигляд (View) виводить на екран вікно Параметри довідкового списку (Apropos).

Дане вікно дозволяє переглядати список зарезервованих символів (насамперед, імен вбудованих функцій). Введена у верхньому полі послідовність букв є основним критерієм формування списку імен, що виводяться (ці букви мають бути обов'язково присутніми в іменах всіх символів списку). Користувач може за допомогою прапорців вказати, чи повинна ця послідовність обов'язково бути присутнім на початку імені або може встре-тіться в іншій частині символу, а також чи можливе використання спеціальних знаків типа "*" або "#", як у функції wcmatch.

Пункт Вікно точок останову (Breakpoints Window) падаючого меню Вигляд (View) відкриває вікно Точки останову (Breakpoints), використовуване у відладці програм. Пункт Вікно виводу (Output Window) дозволяє відкрити вікно <Повідомлення збірки> < Builder Ouput> для виведення повідомлень, що генеруються в процесі розробки додатків.

Пункт Консоль LISP (LISP Console) падаючого меню Вигляд (View) викликає дуже важливе вікно, зване Консоль Visual LISP (Visual LISP Console) (рис. 2.19), яке в середі Visual LISP є аналогом зони командних рядків системи AUTOCAD. У нім можна вводити вирази AUTOLISP, завантажувати і виконувати функції, а також читати значення змінних. Сюди ж Visual LISP виводить свої повідомлення.

Пункт Огляд бази даних малюнка (Browse Drawing Database) падаючого меню Вигляд (View) має підпункти Всі об'єкти (Browse All Entities), Таблиці (Browse Tables), Блоки (Browse Blocks), Набір (Browse Selection) і Розширені дані (Inquire Extended Data...), при виборі яких викликаються відповідні вікна для перегляду бази даних графічних примітивів і неграфічеських об'єктів поточного малюнка (рис.3.11).

Пункт Панелі інструментів (Toolbars) падаючого меню Вигляд (View) викликає діалогове вікно Панелі інструментів (Toolbars) (рис. 3.12), яке управляє видимістю п'яти панелей середи Visual LISP.

Прапорці цього вікна мають бути встановлені біля імен тих з п'яти панелей (Стандартна (Standard), Пошук (Search), Сервіс (Tools), Відладка (Debug), Вигляд (View)), які необхідно вивести на екран. Зміни вносяться за допомогою кнопок Приховати все (Hide All), Показати все (Show All), Застосувати (Apply). Кнопка Закрити (Close) закриває діалогове вікно Панелі інструментів (Toolbars).

Падаюче меню Проект (Project) дає можливість працювати з проектами. Проект - це об'єднання групи Lisp-программ в додаток, що працює в середі системи AUTOCAD і компілює в один файл з розширенням fas (можливий варіант, коли кожною з програм створюється свій Fas-файл, хоча це менш зручно). Меню Проект (Project) має наступні пункти:

·Новий проект (New Project)

·Відкрити проект (Open Project)

·Закрити проект (Close Project)

·Властивості проекту (Project Properties)

·Завантажити Fas-файл проекту (Load Project FAS File)

·Завантажити початкові файли проекту (Load Project Source Files)

·Зібрати Fas-файл проекту (Build Project FAS)

·Перекомпілювати Fas-файл проекту (Rebuild Project FAS)

Останні (додаткові) рядки в меню показують імена відкритих проектів. Активний проект помічений прапорцем. Падаюче меню Відладка (Debug) (рис. 3.13) дозволяє відладжувати програми в середі Visual LISP.

Падаюче меню Сервіс (Tools) (рис. 3.15) призначено для допоміжних операцій.

Підпункт Кольору синтаксичних елементів (Syntax Coloring) доступний лише в тому випадку, якщо в активному вікні знаходиться текст файлу, що має розширення, відмінне від Isp. Тоді викликається вікно Колірний стиль (Color Style) (на рис. 3.16 показано вікно, відкрите при роботі з Dcl-файлом), в якому можна вибрати колірну гамму текстового редактора, що відповідає одному з пропонованих варіантів.

Підпункт Набудувати поточне (Configure Current) відкриває вікно Оформлення вікна (Window Attributes) (рис. 3.17), в якому можна підкоригувати колірні установки різних елементів тексту, що діють. Елементи, що оформляються, перераховані в списку, що розкривається.

Підпункт Оформлення поточного вікна по прототипу (Set Current Window to Prototype) міняє установки активного вікна на установки прототипу, а підпункт Оформлення всіх вікон по прототипу (Set All Windows to Prototype) виконує ту ж операцію над всіма вікнами.

Підпункт Шрифти (Fonts) викликає стандартне діалогове вікно Вибір шрифту (Select Font) (рис. 2.27) для вибору використовуваних у вікнах шрифтів. Пункт Параметри середи (Environment Options) падаючого меню Сервіс (Tools) має три підпункти:

·Спільні параметри (General Options)

·Параметри форматування Visual LISP (Visual LISP Format Options)

·Параметри розмітки сторінки (Page Setup Options)

Підпункт Спільні параметри (General Options) викликає діалогове вікно Спільні параметри (General Options), що має вкладки Спільна (General) і Діагностична (Diagnostic), дозволяюча міняти різні налаштування середа Visual LISP. Підпункт Параметри форматування Visual LISP (Visual LISP Format Options) розкриває діалогове вікно Опції форматування (Format options), що управляє установками форматування для текстового редактора Visual LISP. Третій підпункт - Параметри розмітки сторінки (Page Setup Options) пункту Параметри середи (Environment Options) викликає діалогове вікно Параметри (Page Setup (рис.3.19) для операцій виведення текстів на друк з середи Visual LISP.

Пункт Зберегти параметри (Save Settings) падаючого меню Сервіс (Tools) дозволяє зберігати налаштування робочого столу Visual LISP (останні відкриті вікна, їх параметри і т. п.). Падаюче меню Вікно (Window) по структурі аналогічно меню з аналогічним найменуванням інших додатків Windows.


.2 Огляд панелей інструментів


У оболонку Visual LISP входять п'ять панелей інструментів:

Стандартна (Standard)

Пошук (Search)

Сервіс (Tools) (у плаваючому положенні вона називається Інструменти (Tools))

Відладка (Debug)

Вигляд (View)

Як видно з даного переліку, найменування панелей схожі на найменування падаючих меню, що розгледіли вище. Призначення панелей також аналогічно призначенню відповідних падаючих меню.

У панель інструментів Стандартна (Standard) (рис. 3.22) входять наступні кнопки (зліва направо):

·Новий файл (New file)

·Відкрити файл (Open file)

·Зберегти файл (Save file)

·Друк (Print)

·Вирізувати (Cut)

·Копіювати (Сміттю)

·Вставити (Paste)

·Відмінити (Undo)

·Повторити (Redo)

·Дописати слово (Complete word)

Дев'ять перших кнопок цієї панелі аналогічні однойменним кнопкам панелі інструментів Стандартна (Standard) системи AUTOCAD. Остання кнопка Дописати слово (Complete word) відповідає пункту Дописати словом із списку (Complete Word by Apropos) падаючого меню Пошук (Search), що дозволяє закінчити почате слово елементом списку стандартних символів. Панель інструментів.

Пошук (Search) (рис. 3.23) виконує функції, аналогічні функціям падаючого меню Пошук (Search).

У неї входять сім наступних кнопок:

Знайти (Find)

Замінити (Replace)

Пошук рядка на панелі інструментів (Find toolbar string)

Закладка Вкл/Откл (Toggle bookmark)

Наступна закладка (Next bookmark)

Попередня закладка (Previous bookmark)

Видалення всіх закладок (Clear all bookmarks)

Призначення всіх цих кнопок, окрім третьої, аналогічно призначенню відповідних пунктів і підпунктів падаючого меню Пошук (Search). Кнопка Пошук рядки на панелі інструментів (Find toolbar string) працює разом із списком, що розкривається, знаходиться в панелі інструментів Пошук (Search) і виконує пошук символу, ім'я якого вибране в цьому списку або введене в список з клавіатури.

Панель інструментів Сервіс (Tools) (рис. 3.24) має дев'ять наступних кнопок:

Завантаження активного вікна редагування (Load active edit window)

Завантаження виділеного фрагмента (Load selection)

Перевірка вмісту вікна редактора (Check edit window)

Перевірка виділеного фрагмента (Check selection)

Форматування вмісту вікна редагування (Format edit window)

Форматування виділеного фрагмента (Format selection)

Закоментувати блок (Comment block)

Раськомментіровать блок (Uncomment block)

Довідка (Help)

Перші шість пунктів панелі аналогічні першим шести пунктам падаючого меню Сервіс (Tools), якщо користувач за допомогою редактора працює з текстом програми або її фрагментом.

Кнопки Закоментувати блок (Comment block) і Раськомментувати блок (Uncomment block) дозволяють легко вставляти (за допомогою крапок з комою) або знімати коментарі у виділених рядках тексту програми. Пункт Довідка (Help) служить для отримання довідкової інформації.

Панель інструментів Відладка (Debug) (рис. 3.25) має наступні кнопки:

Крок із заходом (Step into)

Крок з обходом (Step over)

Крок з виходом (Step out)

Продовжити (Continue)

Вийти (Quit)

Скидання (Reset)

Точка останову Вкл/Откл (Toggle breakpoint)

Додати контрольне значення (Add watch)

Останній останов (Last break)

Крім того, в процесі виконання програми в налагоджувальному режимі, з точками остановов, в панелі з'являється остання кнопка. Кнопка показує, де знаходиться курсор під час поточного останову (перед дужками або після).

У панель інструментів Вигляд (View) (рис. 3.26) входять наступні кнопки:

·Активізація AUTOCAD (Activate AUTOCAD)

·Вибрати вікно (Select window)

·Консоль Visual LISP (Visual LISP Console)

·Вивчити (Inspect)

·Трасування (Trace)

·Вікно відладки символів (Symbol service)

·Довідковий список (Apropos)

·Вікно контрольних значень (Watch window)

Найменування кнопок говорять про те, що вони виконують операції, закріплені за розглянутими вище різними пунктами падаючих меню: Режим AUTOCAD (AUTOCAD Mode) меню Сервіс (Tools), вибір вікна за допомогою списку вікон меню Вікно (Window), Консоль LISP (LISP Console) меню Вигляд (View), Вивчити (Inspect) меню Вигляд (View), Стек трасування (Trace Stack) меню Вигляд (View), Інспектор символів (Symbol Service) меню Вигляд (View), Параметри довідкового списку (Apropos Window) меню Вигляд (View), Вікно контрольних зна-ченій (Watch Window) меню Вигляд (View).


2.3 Написання програм в текстовому редакторові середовища Visual LISP


У середовищі Visual LISP можна відкривати в своєму вікні і редагувати текстові файли наступних типів: LISP-програм (з розширенням Isp), DCL-фаилы діалогових вікон (з розширенням del), SQL-файли операцій з базами даних (з розширенням sql), файли програм на мові C++ (з розширенням з). Включений до складу середовища текстовий редактор надає істотну допомогу в написанні файлів цих типів, оскільки вже в процесі введення тексту виконує синтаксичний аналіз, виділяючи символи, відповідні дужкам, операторам, операндам, коментарям і т.д. Результати свого синтаксичного аналізу редактор відображає кольором букв набраного тексту. Вибір настройки редактора відповідно до типу файлу можна зробити за допомогою пункту Оформлення вікна (Window Attributes), Кольори синтаксичних елементів (Syntax Coloring) падаючого меню Сервіс (Tools). За умовчанням редактор налаштований на роботу з текстами LISP-програм.

Кольорова гамма, зазвичай використовувана для синтаксичного аналізу програм на мові LISP, наступна:

·синій - зарезервовані символи AUTOLISP (імена вбудованих функцій і т. п.);

·фіолетовий - текстові рядки, обрамлені подвійними лапками;

·зелений - цілі і речовинні числа;

·фіолетовий (на сірому фоні) - коментарі;

·червоний - відкриваючі і закриваючі дужки;

·чорний - інші символи (змінні користувача і ін.).

За бажання можна внести зміни до колірної палітри за допомогою пункту Оформлення вікна (Window Attributes), Набудувати поточне (Configure Current) падаючого меню Сервіс (Tools). Пункт Параметри середовища (Environment Options) падаючого меню Сервіс (Tools) теж може допомогти у встановленні великої кількості зручностей для конкретного користувача. Незамінним засобом швидкого коментування виділеної ділянки тексту і зняття коментарів є кнопки Закоментувати блок (Comment block) і Разкоментувати блок (Uncomment block) панелі інструментів Сервіс (Tools). Синтаксична перевірка тексту всього відкритого файлу або виділеного фрагмента може бути виконана за допомогою пунктів Перевірити виділений фрагмент (Check Selection) і Перевірити текст в редакторові (Check Text in Editor) падаючого меню Сервіс (Tools) або аналогічних кнопок в панелі Сервіс (Tools). Для перевірки відповідності закриваючих і відкриваючих дужок добре користуватися пунктом Перевірка дужок (Parantheses Matching) падаючего меню Правка (Edit).

За бажання можна внести зміни до колірної палітри за допомогою пункту Оформлення вікна (Window Attributes), Набудувати поточне (Configure Current) При перезаписі файлу з розширенням lsp Visual LISP створює копію попереднього стану файлу (копії привласнюється розширення _ls).


4. ОПИС ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ОБЄКТНО-ОРІЄНТОВАНОЇ НАДБУДОВИ


.1 Функціональне призначення та технологічні особливості розробки


Проектована обєктно-орієнтована надбудова реалізована засобами мов AutoLISP та DCL. Програмний продукт може функціонувати в середі AutoCAD 2000 та наступних версій. Розробка призначена для автоматизації креслення типових різьбових виробів в середі AutoCAD. Зображення типових виробів створюються на основі державних стандартів та відвідають усім необхідним вимогам.

Розробка базується на методі параметричного моделювання, суть якого полягає в наступному. Типові об'єкти створюються на підставі параметричного типового креслення шляхом зміни певних параметрів. У даному випадку змінні параметри - це таблиця значень розмірів кріпильних виробів.

Кінцевими користувачами розробленої надбудови є інженери та конструкторам, що можуть використовувати надбудову для автоматизації виконання креслень.


.2 Опис особливостей креслення геометричних обєктів системи


До кріпильних різьбових виробів відносяться болти, шпильки, гайки, гвинти і фітінги. З їх допомогою здійснюються нерухомі роз'ємні з'єднання деталей машин і механізмів.


Рис. 4.1 Приклади виконання кріпильних різьбових виробів


Болт є циліндровий стрижень з головкою на одному кінці і різьбленням для гайки на іншому (рис. 4.1). Головки болтів бувають різної форми, яка встановлюється відповідним стандартом. Hаибольшее застосування в машинобудуванні мають болти з шестигранною головкою (нормальної точності) ДОСТ 7798 - 70. На рис.4.2 показаний варіант виконання болта з шестигранною головкою.


Рис. 4.2 Варіант виконання болта з шестигранною головкою.


.3 Розробка логіко-функціональной схеми надбудови


Логіко-функціональна схема системи наведена на рис.4.3.

Рис.4.3 Логіко-функціональна схема системи


.4 Інструкція по інсталяції програмного продукту


Для того, щоб інсталювати програму необхідно провести наступні дії. У каталозі Support програмної теки AUTOCAD створити теку blts і помістити туди всі файли, які входять до складу системи. Далі необхідно завантажити додаток krpz.lsp у AUTOCAD. Це робиться таким чином. Необхідно вибрати в меню Сервіс - Додатки. У вікні (рис. 4.4), що з'явилося, необхідно вибрати файл krpz.lsp і натиснути кнопку Завантажити.

Для запуску додатку в командному рядку необхідно ввести ім'я команди: _krpz. Проте на практиці зручніше помістити на панель інструментів кнопку, яка відповідатиме цій команді.

Для цього необхідно клацнути правою клавішею по будь-якій з панелей інструментів і вибрати в меню Адаптація.

В області вікна Список команд натиснути на кнопку Створити. В списку зявиться ще одна команда (Команда 2).

У правій частині вікна виберемо значок, який буде зображений на кнопці. Далі за допомогою лівої клавіші мишки перетягнемо кнопку із списку на панель інструментів в зручне нам місце.

В області вікна Властивості в полі Макроси необхідно ввести рядок:

^C^C(if (eq c:krpg nil) (load "support/blts/krpz.lsp")) ^C^C_krpg


4.5 Опис інтерфейсу користувача


На рис.4.9 наведено діалогове вікно проектованої надбудови в одному із варіантів робочих режимів. Спочатку користувачеві необхідно обрати із випадаючого списку тип кріпильного різьбового виробу. Це може бути болт, гвинт, гайка або шайба. Потім користувач повинен обрати із списку варіант виконання виробу. В області вікна Вибір виду для креслення необхідно обрати потрібний вид (це може бути головний вид, вид зверху чи вид зліва). Також користувач обирає, чи потрібно креслити осьову лінію. В графічній частині вікна відображується відповідний слайд з зображенням параметричного типового креслення обраного виду для відповідного виробу.

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

Після того, як користувач натисне кнопку ОК, зображення геометричного обєкту буде автоматично сформоване. Користувачу залишається тільки обрати координати точки вставки та натиснути Enter, для того, щоб зафіксувати зображення в просторі креслення.

4.6 Опис файлів, які є складовою частиною надбудови


Складовими частинами проектованої надбудови є наступні файли:.lsp - головний модуль завантажуваного застосування; krpz.dcl - файл, що містить інформацію про діалогове вікно системи; blts.lsp - промальовування болта; gks.lsp - промальовування гайки; vint.lsp - промальовування гвинта; shb.lsp - промальовування шайби; Файли з розширенням dat містять табличну інформацію про параметри кріпильного виробу відповідної серії. Їх назва має наступну структуру. Наприклад, b7796.dat. Тут (b - болт, g - гайка, s - шайба, v - гвинт), далі слідує номер ДОСТу виробу.

Файли з розширенням slb містять слайди (графічні зображення) параметричних типових креслень відповідних виробів. Розглянемо детальніше процес створення слайдів. Слайд це моментальний знімок графічного екрану AUTOCAD. Хоча слайд і містить образи графічних об'єктів, він не зберігає в собі їх описів. Неможливо ні виконати імпорт слайду в поточний малюнок, ні відредагувати, ні надрукувати його. Його допускається тільки проглядати на екран.

Файли слайдів можна використовувати для:

Створення презентацій в AutoCAD®

Проглядання образів інших малюнків, не виходячи з програми

Створення меню з пунктами у вигляді картинок (графічних меню)

Для створення слайду

. Показати на екрані вигляд, який планується зберегти на слайді.

. У командному рядку ввести дслайд.

. У діалоговому вікні «Створення файлу слайду» ввести ім'я слайду і вибрати шлях до нього. AUTOCAD пропонує за умовчанням таке ж ім'я, що і у поточного малюнка, автоматично додаючи розширення.sld.

. Натиснути кнопку "Зберегти". Вид поточного малюнка залишається на екрані, а отриманий з нього файл слайду зберігається в заданій теці.


4.7 Розробка діалогового вікна системи


Важливим компонентом додатків в середовищі AUTOCAD є діалогові вікна, в яких в потрібній формі відображається корисна для користувача інформація і в яких зручно вводити додаткові дані або указувати настройки, необхідні для роботи. Додатки, написані на мові AUTOLISP, зберігають свої вікна в текстових DCL-файлах. Для створення діалогових вікон розроблена спеціальна мова DCL (Dialog Control Language). Файл, написаний на мові DCL, складається з логічних одиниць - директив, які записуються у вільному форматі. Директиви розташовуються у файлі послідовно. Кожна директива описує поле або групи полий при вирівнюванні усередині діалогового вікна. Полем називається візуальний елемент вікна.

Розглянемо детально структуру файлу krpz.dcl, який відповідає за структуру діалогового вікна системи (рис.4.9).

krpz : dialog {label = "Крепёжные изделия"; // параметр label містить заголовок вікна

За замовчанням система розташовує поля вертикально, одне під іншим. Стовпець елементів вікна відповідає полю column.

: column {

Якщо елементи розташовані горизонтально щодо один одного, вони групуються за допомогою поля row.

:row {

Поле popup_list представляє собою список, що розкривається.

: popup_list {_width = 9; //ширина списку

key = "vkrp"; //код поля= "Болты\nВинты\nГайки\nШайбы"; //формування списку

}

Списки можна формувати як на етапі проектування, так і безпосередньо з програми за допомогою функцій AUTOLISP start_list і end_list. Другий список, що містить список ДОСТов, реалізований саме цим способом, тобто параметр list в директиві відсутній.

: popup_list {_width = 35;= "prfl";

}

}

Поле boxed_row служить для угрупування елементів вікна і має заголовок.

:boxed_row {= "Выбор вида для черчения";

Далі слідує опис елементів, розташованих в цьому полі угрупування. Radio_column є набором радіокнопок, згрупованих в колонку. При цьому одна з радіокнопок може бути включена. Значення атрибуту value, рівне «1» відповідає включеній радіокнопці, а «0» - вимкненій.

:radio_column {

: radio_button {= "glv";= "головний вид";= "1"; = 12; }

: radio_button {= "vsb";= "вид зверху";= 12; }

: radio_button {= "vsv";= "вид зліва";= 12;}

Перемикачі, у яких може бути встановлений або знятий прапорець, описуються за допомогою поля toggle. Як і у попередньому випадку, значення value = "0" відповідає ситуації, коли прапорець знятий.

: toggle {= " не креслити осьову ";= "0";= "osi";}

}

Поле для виводу зображеня описується таким чином:

:image_block {= "image";= 8;= 25;= 444;

}

}

}

На цьому опис елементів, розташованих в першому полі угрупування закінчується. Далі формуються поля групи «Розміри і довідкові дані»

:boxed_row {= " Розміри і довідкові дані ";

:column {

:row {

:column {

: popup_list {label = " діаметр різьблення M";_width = 7;= "n";= "";

}

: popup_list {label = "довжина L";_width = 7;= "l_bt";= "";

}

: popup_list { = " крок різьблення ";_width = 7;= "";= "s_bt";

}

}

Поле list_box дозволяє розміщувати в діалоговому вікні дані у формі списку

:list_box { = "sprav";= 12;= 6;

}

}

Найчастіше поле, що вживається, яке дозволяє розміщувати в діалоговому вікні напис, - це поле text.

:text {= "Пояснення: >>>";= "help";= "";= 22;

}

}

}


Наступна директива розміщує в діалоговому вікні командні кнопки «ОК» і «Відміна».

ok_cancel;}


4.8 Опис програмної реалізації головних функцій проектованої надбудови


При завантаженні додатку відбувається пошук всіх необхідних зовнішніх файлів. Функція findfile шукає файл по імені (короткому або повному). Якщо аргумент містить ім'я файлу без повного шляху, то пошук виконується в робочому каталозі і по стандартних для системи AUTOCAD шляхам пошуку. Функція setq задає значення константам.

(setqdvt1 (findfile "support/blts/blts.lsp")(findfile "support/blts/vint.lsp")(findfile "support/blts/gks.lsp")(findfile "support/blts/shb.lsp")(findfile "support/blts/krpz.dcl")(findfile "support/blts/b7805.dat")d (findfile "support/blts/b7808.dat")

...d (findfile "support/blts/s10906.dat")

) ;_ end of setq

Нижче представлений текст функції, яка виводить відповідний слайд зображення. Функція start_image відкриває процес заповнення графічного поля. Функція fill_image заповнює прямокутник усередині графічного поля одним кольором. Аргументи функції наступні:

(fill_image <x1> <y1> <ширина> <висота> <колір>).

Тут <x1>, <y1> - координати (у пікселах) лівого верхнього кута заповнюваного прямокутника, <ширина>,<высота> - ширина і висота (у пікселах) заповнюваного прямокутника (визначається константами orx і aby), <колір> - ціле число з номером кольору, вибраного для заповнення.

Функція slide_image заповнює графічне поле слайдом з окремого файлу. Як параметр функція приймає name1 - ім'я файлу, що містить слайд. Функція end_image завершує процес формування зображення графічного поля.

(defun show_im2 (name1)

(setq orx (dimx_tile "image")

(dimy_tile "image")

) ;_ end of setq

(start_image "image")

(fill_image 0 0 orx aby 444)

(slide_image 0 0 orx aby name1)

(end_image)

) ;_ end of defun

Далі представлений фрагмент програми, за допомогою якого визначається ім'я слайду графічного зображення.

Функція cond (оператор багатоваріантного вибору) є аналогом функції CASE. Залежно від того, які параметри вибрані в діалоговому вікні. (defun name ()

(cond

((and (eq vk_rp "0"); Тип кріпильного виробу

; Варіанти видів виробу (для ідентифікації радіокнопок використовуються відповідні коди)

(eq glv1 "1")

(eq vsb1 "0")

(eq vsv1 "0")

(or(eq pr_fl nil)

(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

) ;_ end of and

; У константу заноситься ім'я файлу, що містить слайд

(setq name1

"support/blts/vnt(1).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(or(eq pr_fl nil)

(eq pr_fl "0")

) ;_ end of or

) ;_ end of and

(setq name1

"support/blts/vnt(4).slb"

) ;_ end of setq

)

...

Саме завантаження діалогового вікна відбувається таким чином.

(defun show (/ dcl_id)

(setq dcl_id

(load_dialog

) ;_ end of load_dialog

);Загрузити DCL-файл

(if(not (new_dialog "krpz" dcl_id)) ;Ініціалізувати діалог

(exit)

);(вийти, якщо не працює)

(defun sn_def ()

(setq glv1 "1""0""0""0"

) ;_ end of setq

) ;_ end of defun

Тут функція load_dialog завантажує DCL - файл в пам'ять. Аргумент krcl - константа, що містить шлях до файлу. Функція new_dialog откривет на екрані діалогове вікно, якщо його діалог вже завантажений в пам'ять у складі DCL-файлу. Функція повертає nill, якщо виникла помилка відкриття. В цьому випадку відбувається вихід з системи.

Далі відбувається вибір файлу - таблиці параметром виробу.

(defun name_fil ()

(cond

((and (eq vk_rp "0") (eq pr_fl "0")) (setq fil bas2d))

((and (eq vk_rp "0") (eq pr_fl "1")) (setq fil bas3d))

((and (eq vk_rp "0") (eq pr_fl "2")) (setq fil basd))

...

) ;_ end of cond

) ;_ end of defun

Функція notes дозволяє вивести пояснення внизу діалогового вікна, залежно від вибраного варіанту.

(defun notes ()

(cond

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

(eq vk_rp "0")

(eq spr "0")

) ;_ end of and

(set_tile "help" "Пояснення: >>> Діаметр головки болта")

)

...

) ;_end of and

(progn (done_dialog) (close x))

) ;_ end of if

) ;_ end of defun

Далі, залежно від того, який варіант кріпильного виробу вибраний, завантажується зовнішній lsp-файл, що містить набір команд для промальовування.

(cond((and (eq vk_rp "0")

(or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

(/= rr nil)

) ;_ end of and

(blts)

)

...

) ;_ end of cond

Розглянемо структуру цих файлів на прикладі gks.lsp, команти, що містить, для викреслювання гайки.

(defun gk_gl_sb (); Малювання головного виду гайки

Функція polar проводить обчислення координат точки по відстані і напряму, що задається кутом.

(defun gkgl ()

(setq pt1 (polar cpt (/ (* pi 3) 2) (/ (* sgb 0.9) 2.0)))

(setq pt2 (polar cpt (/ pi 2) (/ (* sgb 0.9) 2.0)))

(setq(polar pt1

(/ (* pi 5) 3)

(/ (/ (- dgb (* sgb 0.9)) 2.0) (cos (/ pi 6)))

) ;_ end of polar

) ;_ end of setq

...

Таким чином, спочатку відбувається обчислення координат необхідних крапок, потім за допомогою функції command відбувається передача команд і параметрів в командний рядок AutoCAD.

(command "_line"

""

Тут pt2... - набір крапок, через які проходитиме ламана. Параметр "" - аналогічний натисненню Enter в командному рядку, тобто це завершення команди. Таким же чином відбувається промальовування іншого примітиву - дуги.

"_arc"

"_arc"

)

Після формування зображення, воно буде перетворено на блок (edat3 - це ім'я блоку):

(command "._block" edat3 cpt sset "")

(setvar "aperture" apsz)

(setvar "osmode" osmd)

(setvar "clayer" clay)

Завершуючий етап - блок з вказаним ім'ям вставляється в простір креслення.

(command "._insert" edat3 pause 11 pause)


5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ


.1 Організаційно-економічна частина


Подібний програмний продукт може бути реалізовано в одиничному екземплярі чи тиражований та реалізований деякій кількості замовників. Звичайно прийнято проводити розрахунок економічної ефективності використання розробки для її споживача.

Важливим фактором, що впливає на процес формування ціни, є конкуренція на ринку, необхідність обліку якої очевидна. З метою підвищення конкурентноздатності продукту може виникнути необхідність зниження його ціни на ринку. Важливо відмітити, що цілям підвищення конкурентноздатності служить не тільки зниження ціни, але, також, і якість товару і його вигідні відмітні ознаки в порівнянні з аналогічним товаром конкурентів.

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

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

Система призначена для автоматизації креслення кріпильних виробів в середі AutoCAD і може бути використана інженерами та конструкторами при виконанні креслень.

5.2 Розрахунок економічного ефекту по упровадженню програмного продукту


Економічна доцільність розробки укладається в економії працевтрат у порівнянні з ручною обробкою та одержання більш вірогідної інформації за більш короткий час.


Таблиця 5.1

Витрати на видаткові матеріали

№ п/пНайменування матеріалуВитрата, шт.Ціна, грн./шт.Сума, грн.1 Допоміжна література247942 Диск CD-RW1443 Диск CD-R21,202,404 Канцтовари--85 Разом 185,40

Основні виробничі фонди:

Програмне забезпечення AutoCAD 2000 - 1 шт за ціною 400 грн;

Комп'ютер класу Pentium IV - 1 шт за ціною 3300 грн;

Принтер - 1 шт за ціною 1100 грн.

Загальна сума виробничих фондів складає - 4800 грн.

Вартість устаткування збільшується на вартість транспортування - 10% та вартість монтажу - 15%. Разом вартість устаткування складе:


Соб= 4800 + 480 + 720 = 6000 грн.


Амортизація комп'ютера складає 15% у квартал від залишкової вартості, тобто А = Ф*На, де Ф - залишкова вартість на початок кварталу, На - норма амортизації.квартал 6000*0,15=900 грн.квартал (6000-900)*0,15=765 грн.квартал (6000-900-765)*0,15=650,25 грн.квартал (6000-900-765-650,25)*0,15=552,71 грн.

Разом амортизація = 2867,96 грн.


Таблиця 5.2

Основна заробітна плата програміста ПП

№ п/пВиконувачіТрудомісткість, люд.дн. Оклад, грн.Витрати по з/п, грн.1 Програміст2013001238,10

Додаткова заробітна плата програміста складає 20 % від основної заробітної плати:


,10*0,20=247,62 грн.


Фонд заробітної плати являєє собою суму основної й додаткової заробітної плати:


,10+247,62=1485,72 грн.


Відрахування на заробітну плату складає:

,2% - пенсійний фонд;

,5% - соціальне страхування;

,3% - відрахування в державний фонд сприяння зайнятості;

,3% - відрахування на соціальне страхування від нещасного випадку на виробництві та професійного захворювання, які спричинили втрату працездатності.

Разом відрахування на соціальні нужди складають 37,3% від фонду оплати праці:


1485,72*0,373=554,17 грн.


Накладні витрати складають 250 % від величини основної заробітної плати:


,10*2,5=3095,25 грн.


Таблиця 5.3

Калькуляція

№ п/пНайменування статей витратВитрати, грн.1 Амортизація основних засобів2867,962 Видаткові матеріали185,403 Основна заробітна плата програміста1238,104 Додаткова заробітна плата програміста247,605 Відрахування на соціальне страхування554,136 Накладні витрати3095,257 Інші витрати100,00 Разом витрат Зк= 8288,44

Витрати на ручну обробку інформації визначаються по формулі:


,


де - обєм інформації, що обробляється вручну, Мбайт;

- вартість однієї години праці, грн. / рік;

- коефіцієнт, що враховує додаткові витрати часу на логічні операції при ручній обробці інформації; - норма виробітку, Мбайт / рік.

У даному випадку: Ои = 700 Мбайт (загальний розмір даних, що обробляються),

Заробітна плата бухгалтера 1100 грн.

Ц=1100/21/8=6,55 грн. / година,


Гд = 2,5 (встановлений експериментально),

Нв = 0,004 Мбайт / година.

Отже, витрати на ручну обробку інформації дорівнюють:


Зр=700*6,55*2,5/0,004=2865625 грн.


Витрати на автоматизовану обробку інформації розраховуються по наступній формулі:


,


де - година автоматизованої обробки, рік.;

- вартість однієї години машинного часу, грн./рік;

- година роботи оператора, рік.;

- вартість однієї години роботи оператора, грн./рік.

Для даного випадку:

ta = 180 год.,

Номінальний фонд робочого часу розраховується по формулі :



к - кількість відпрацьованих годин за рік;

к1 - щоденні втрати 9-10% (відпустка, декретна відпустка та ін.)

к2 - внутрішні втрати робочого часу, 1- 2% (пільгові години, перерви та ін.).

К = д * р * м


д - середня кількість робочих днів у місяці = 21;

р - тривалість робочого дня = 8;

м - кількість робочих місяців за рік = 11;

К = 21 * 8 * 11 = 1848 годин за рік.


= 1663,2 год.


Час роботи оператора = 1663,2 годин за рік

Вартість однієї години машинної години дорівнює:


Цм = Цэ*Р


Цэ - вартість 1квт електроенергії (0,24 грн.)

Р - споживана потужність комп'ютера в рік 160 Вт


Цм=0,24*0,16=0,04грн/рік0 = 180 год,


Ц0 =1100/ 21/8=6,55 грн. (заробітна плата бухгалтера 1100 грн)

Отже, витрати на автоматизовану обробку інформації дорівнюють:


За=180*0,04+180*(6,55+0,04) =1193,40 грн.


Таким чином, річна економія від упровадження дорівнює:


Эу = 2865625 - 1193,40 - 8288,44= 2856143,16 грн.

Економічний ефект від використання програмного забезпечення за рік визначається по формулі, грн.:


.

Эг=2856143,16 - 4800*0,2=2855183,16 грн.


Ефективність розробки може бути оцінена по формулі:


.

Ер=2855183,16* 0,4/8288,44=137,79


Якщо Ер > 0,20, то наша розробка є економічно доцільною.

Вартісна оцінка результатів застосування програмного забезпечення за розрахунковий період Т визначається по формулі:


,


де Т - розрахунковий період ;

Рt - вартісна оцінка результатів t розрахункового періоду, грн.;

- дисконтуюча функція, яка вводитися з ціллю приводу всіх витрат та результатів до одного моменту часу.

Дисконтуюча функція має вигляд:


= 1 / (1 + р) t,


де р - коефіцієнт дисконтування (р = Ен = 0,2, Ен - нормативний коефіцієнт ефективності капітальних вкладень).

Таким чином,

.


Якщо програмне забезпечення заміняє ручну працю, отже, набір корисних результатів у принципі не міняється. У якості оцінки результатів застосування програмного забезпечення за рік береться різниця (економія) витрати, які виникають у результаті використання програмного забезпечення, тобто Рt = Эу.

Припускається, що дана розробка без змін та дороботок буде використовуватись у плині п'яти років. Тоді вартісна оцінка результатів застосування програмного забезпечення (економія) за розрахунковий період Т = 3 роки складе:


=2856143,16+2380119,3+1983432,75+1652860,625=

= 8872555,84 грн.


Економічний ефект від використання програмного забезпечення за розрахунковий період Т = 3 роки складе:


Эт = 8872555,84 - 8288,44 = 8864267,4 грн.


Таким чином, у результаті аналізу встановлено, що впровадження розробки виправдано й економічно доцільно.


6. ОХОРОНА ПРАЦІ


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

Поліпшення охорони праці розглядається як одна з основних задач подальшого соціологічного розвитку нашої країни.

Правила охорони праці поширюються на всі підприємства, заклади, організації, юридичних осіб незалежно від форми власності, які здійснюють розробку виробництва та застосування ПЕОМ і ПК.

Правила встановлюють вимоги безпеки і санітарно-гігієнічні вимоги до устаткування робочих місць користувачів відповідно з сучасним станом техніки й наукових досліджень в сфері безпечної організації робіт з експлуатування та з обліком положень міжнародних нормативно-правових актів.


6.1 Інженерна охорона праці


Робочим місцем вважається місце постійного чи періодичного перебування працюючого для спостереження й ведення виробничого процесу чи експерименту. Організація робочого місця заключається у виборі робочої пози, визначенні робочих зон, розміщенні органів управління, індикаторів, інструментів і заготовок. Частина простору робочого місця, в якому здійснюються робочі процеси, може бути розділена на зони. Робоча поза буде найменш втомлювальною при умові, що робоча зона сконструйована правильно, тобто забезпечується відповідність цієї зони з оптимальним полем зору працюючого.

Робоче місце, устатковане відео-терміналом, забезпечується:

. належними умовами освітлення приміщення й робочого місця, відсутністю відблисків;

. відповідністю оптимальних параметрів мікроклімату;

. належними ергономічними характеристиками основних елементів робочого місця.

При розміщенні відео-термінала обраховується наявність шуму та вібрації, мякого рентгенівського випромінювання, електромагнітного випромінювання, ультрафіолетового та інфракрасного, електростатичного поля, а також наявність пилу, озону, окислів азоту та аероіонізації.

Відповідно діючим нормативним документам площа приміщення 13,0 м²; обєм - 20 м³. Стіна, стеля, підлога приміщення виготовляються з матеріалів, дозволених для оформлення приміщень санітарно-епідеміологічним наглядом. Підлога приміщення вкрита діелектричним килимком, випробуваним на електричну міцність.

Висота робочої поверхні столу для відео-терміналу - 690 мм, ширина повинна забезпечувати можливість виконання операцій в зоні досягнення моторного ходу; висота столу 725 мм, ширина 800 мм, глибина 900 мм. Простір для ніг: висота 600 мм, ширина 500 мм, глибина на рівні колін 500 мм, на рівні витягнутої ноги 650мм.

Ширина й глибина сидіння 400 мм, висота поверхні сидіння 450 мм, кут нахилу поверхні від 15º вперед до 5º назад. Поверхня сидіння плоска, передній край закруглений.

Заземлення конструкцій, які знаходяться в приміщенні надійно захищені діелектричними щитками. В приміщенні з ПЕОМ кожен день проводиться вологе прибирання.

В доступних місцях знаходяться аптечки першої медичної допомоги.

Приміщення з ПЕОМ оснащено системою автоматичної пожежної сигналізації, а також устатковане засобами пожежегасіння. Підходи до засобів пожежегасіння вільні. Приміщення має кімнати для відпочинку, приймання їжі, психологічної розгрузки та інші побутові приміщення.


6.2 Фізичні й психофізіологічні небезпечні та шкідливі виробничі фактори при роботі на компютері й заходи по їх знищенню


Одна з найважливіших задач охорони праці - забезпечення безпеки працюючих, тобто забезпечення такого стану умов праці, при якому виключено дію на працюючих небезпечних і шкідливих виробничих чинників.

Нанесення травми людині в умовах виробництва обумовлене наявністю небезпечних виробничих чинників:

· підвищенні значення електричного струму, статичної електрики та рівня електромагнітних випромінювань;

· підвищений рівень рентгенівських випромінювань;

· підвищений рівень шуму;

· несприятливі мікрокліматичні умови;

· недостатнє або надмірне освітлення;

· психофізіологічні шкідливі і небезпечні виробничі чинники.


6.2.1 Електромагнітне випромінювання

Дія електромагнітних полів на організм людини виявляється у функціональному розладі центральної нервової системи. В результаті тривалого перебування в зоні дії електромагнітних полів наступають передчасна стомлюваність, сонливість або порушення сну, з'являються часті головні болі.

Джерелами випромінювання електромагнітних полів (ЕМП) в ПЕОМ є система відхилення випромінювання монітору, а також елементи блоків живлення системного модуля, монітору, принтера.

Систематичний вплив на працюючого ЕМП з рівнями, що перевищують допустимі, призводить до порушення стану його здоровя. При цьому можуть виникати зміни в нервовій, серцево-судинній та інших системах організму людини.

При впливі ЕМП значної інтенсивності на організм можуть виникати поразки кришталиків ока, нервово-психічні захворювання і трофічні явища (випадення волосся, ломкість нігтів).

Ступінь шкідливого впливу ЕМП на організм людини визначається напругою електромагнітного поля, довжиною хвилі і тривалістю перебування організму в зоні діяльності ЕМП.


6.2.2 Рентгенівське випромінювання

Електронно-променеві трубки, які працюють при напрузі понад 6 кВ є джерелами „мякого рентгенівського випромінювання. При напрузі понад 10 кВ рентгенівське випромінювання виходить за межі скляного балону і розсіюється в навколишньому просторі виробничого приміщення.

Шкідливий вплив рентгенівських променів звязаний з тим, що, проходячи через біологічну тканину, вони викликають в тканині іонізацію молекул тканинної речовини, що може призвести до порушення міжмолекулярних звязків, що в свою чергу, призводить до порушення нормальної течії біохімічних процесів і обміну речовин.


6.2.3 Підвищений рівень шуму

При роботі на ПЕОМ людина наражається на шумовий вплив з боку багатьох джерел, наприклад, шум викликаний роботою принтера (70 дБ), вентиляторів і кондиціонерів (до 100 дБ).

Під впливом шуму відбувається зниження слухової чутливості, що тим значні, ніж вище інтенсивність шуму і більше його експозиція.

Діючи на слуховий аналізатор, шум змінює функціональний стан багатьох систем органів людини внаслідок взаємодії між ними через центральну нервову систему. Це виявляє вплив на органи зору людини, вестибулярний апарат і рухові функції, а також призводить до зниження мускульної дієздатності.

При роботі в умовах шуму спостерігається підвищена втомлюваність і зниження дієздатності, погіршується увага і мовна комутація, створюються передумови до помилкових дій працюючих. Являючись причиною частих головних нездужань, нестійкого емоційного стану, шум створює передумови до погіршення психологічного стану. Шкідливий вплив шуму на організм людини, як правило, посилюється за наявності інших шкідливих або несприятливих виробничих чинників.


6.2.4 Несприятливий мікроклімат

Мікроклімат виробничих приміщень і стан повітряної середи в робочій зоні - головні чинники, які визначають умови праці. Основні параметри мікрокліматичних умов - температура, вологість, швидкість руху повітря і барометричний тиск впливають на теплообмін і загальний стан організму людини.

На організм людини і обладнання ПЕОМ великий вплив виявляє відносна вологість. При відносній вологості повітря більш 75-80% знижується опір ізоляції, змінюються робочі характеристики елементів, зростає інтенсивність відмов елементів ПЕОМ. Швидкість руху повітря і запиленість повітряного середовища виявляють вплив на функціональну діяльність людини і роботу приладів ПЕОМ.

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

Несприятливий мікроклімат в процесі роботи викликає недомагання і втому організму, порушує нервову і розумову діяльність, сприяє зниженню спостережливості і швидкості реакції.

Системи опалення - це комплекс елементів, необхідних для опалення приміщень в холодний період року. Основними елементами систем опалення є джерела тепла, теплопроводи, нагрівачі (радіатори). Теплоносіями можуть бути нагріта вода, пар або повітря. Системи опалення розділяються на місцеві та центральні.

До місцевих відносять пічне й повітряне опалення, а також опалення місцевими газовими й електричними засобами. Місцеве опалення застосовують в житлових та побутових приміщеннях, а також в невеликих виробничих приміщеннях малих підприємств.

До систем центрального опалення відносять водяне, парове, панельне, повітряне, комбіноване.


6.2.5 Освітлення

Значення освітлення в процесі життєдіяльності і особливо виробничої діяльності сучасного суспільства величезне.

Організація раціонального освітлення робочих місць - одне з основних питань охорони праці.

Залежно від джерела світла виробниче освітлення може бути трьох видів: природне, штучне і суміщене.

Природне освітлення

Для природного освітлення характерна висока дифузна (неуважність) денного світла від небозводу, що вельми сприятливе для зорових умов роботи.

Природне освітлення підрозділяють на бічне, здійснюване через світлові віконні отвори; верхнє, здійснюване через аераційні і зенітні ліхтарі, отвори в перекриттях; комбіноване - бічне з верхнім.

Природне освітлення характеризується тим, що створювана освітленість змінюється в надзвичайно широких межах залежно від часу дня, року, метеорологічних чинників. Тому природне освітлення неможливе кількісно задавати величиною освітленості. Як нормована величина для природного освітлення прийнята відносна величина - коефіцієнт природної освітленості (КЕО), який є вираженим у відсотках відношенням освітленості в даній крапці усередині приміщення до одночасного значення зовнішньої горизонтальної освітленості, створюваної світлом повністю відкритого небозводу, тобто


Штучне освітлення

Штучне освітлення передбачається у всіх виробничих і побутових приміщеннях, де не досить природного світла, а також для освітлення приміщень в нічний час.

По функціональному призначенню штучне освітлення підрозділяють на робоче, аварійне, евакуаційне, охоронне, чергове. Робоче освітлення забезпечує зорові умови нормальний роботи, проходу людей і руху транспорту. Аварійне освітлення влаштовують для продовження роботи при раптовому відключенні робочого освітлення. При цьому нормована освітленість повинна складати 5 % від робочого освітлення. Евакуаційне освітлення передбачається для евакуації людей з приміщень при аваріях в місцях, небезпечних для проходу людей, на сходових клітках (повинно бути в приміщеннях не менше 0,5, а на відкритих територіях - не менше 0,2 лк).

По розподілу світлового потоку в просторі розрізняють світильники прямого, розсіяного і відображеного світла, а по конструктивному виконанню - світильники відкриті, закриті, захищені, пилонепроникні, вологозахисні, вибухозахищені, вибухобезпечні. За призначенням світильники діляться на світильники загального і місцевого освітлення.

Штучне освітлення може бути загальним (рівномірним або локалізованим) і комбінованим (до загального додається місцеве). Застосування тільки місцевого освітлення забороняється.

В силу тісного взаємозвязку зору людини з роботою мозку освітлення виявляє істотний вплив на центральну нервову систему, яка керує всією життєдіяльністю людини. Раціональне освітлення сприяє підвищенню продуктивності і безпеки праці і збереженню здоровя працюючих.

Недостатнє освітлення робочих місць - одна з причин низької продуктивності праці. В цьому випадку очі працюючого сильно напружені, важко розрізняють предмети, у людини знижується темп і якість роботи, погіршується загальний стан.

На органах зору негативно відбивається як недостатнє так і надмірне освітлення. Надмірна освітленість призводить до осліплення, що характеризується різзю в очах, при цьому очі працюючого швидко втомлюються і зорове сприймання різко погіршується.


6.2.6 Психофізіологічні шкідливі і небезпечні виробничі чинники

Психофізіологічні шкідливі і небезпечні виробничі чинники по характеру дії поділяються на фізичні і нервово-психічні перевантаження.

При експлуатації ПЕОМ можуть виникнути негативні явища в організмі людини. Розлади, що виникають в результаті постійного виконання дій, що повторюються, стосуються працівників, що використовують в своїй роботі клавіатуру. При цьому виникає синдром тунельного запястя, який викликає розпухання сухожиль, і що супроводжується постійною біллю при виконанні будь-яких дій, навіть не звязаних безпосередньо з професійною діяльністю.

Враховуючи перераховані вище шкідливі виробничі чинники, негативно діючі на здоровя людини, проблемам охорони праці необхідно приділяти ще більшу увагу.


6.3 Організаційні і технічні заходи по зменшенню рівня шкідливих виробничих чинників


.3.1 Захист від електромагнітних випромінювань

На сьогоднішній день основним засобом захисту від електромагнітних випромінювань, що застосовуються в обчислювальній техніці є екранування джерел випромінювання. Сьогодні всі монітори, що випускаються, а також блоки живлення мають корпус, виконаний зі спеціального матеріалу, що практично повністю затримує проходження електромагнітного випромінювання. Застосовуються також спеціальні екрани, що зменшують ступінь впливу електромагнітних і рентгенівських променів на оператора.

Для зниження електромагнітного впливу на людину-оператора використовуються також раціональні режими роботи, при яких норма роботи на ПЕОМ не повинна перевищувати 50 % робочого часу.


6.3.2 Захист від ураження електричним струмом

Гранично допустимі рівні напруги дотику і струмів при експлуатації і ремонті обладнання забезпечені:

? застосуванням малої напруги;

? ізоляцією струмоведучих мереж;

? обґрунтуванням і оптимальним вибором елементної бази, що виключає передумови поразки електричним струмом;

? правильного компонування, монтажу приладів і елементів;

? дотриманням умов безпеки при настанові і заміні приладів і інше.

Захист від небезпечних впливів електричного струму при експлуатації обчислювальних комплексів забезпечені:

? застосування захисного заземлення або обнуління;

? ізоляцією струмопровідних частин;

? дотриманням умов безпеки при настанові і заміні агрегатів;

? надійним контактним сполученням з урахуванням перепаду кліматичних параметрів.


6.3.3 Захист від статичної електрики

Для усунення причин утворення статичного заряду застосовуються провідні матеріали для покриття підлоги, панелей, робочих столів, стільців. Для зниження ступеня електризації і підвищення провідності діелектричних поверхонь підтримується відносна вологість повітря на рівні максимально допустимого значення.

На робочих місцях всі металеві та електропровідні неметалеві обладнання заземлені.


.3.4 Захист від шуму та вібрації

Ефективне рішення проблеми захисту від впливу шуму досягається проведенням комплексу заходів, в які входить ослаблення інтенсивності цього шкідливого виробничого чинника в джерелах і на шляху розповсюдження звукових хвиль.

Зниження виробничого шуму в приміщеннях, де розміщені ПЕОМ, досягається за рахунок акустичної обробки приміщення - зменшення енергії відбитих хвиль, збільшення еквівалентної площі звукопоглинаючих поверхонь, наявність в приміщеннях штучних звукопоглиначів.

З метою зниження шуму в самих джерелах встановлюються віброгасячі і шумогасячі прокладки або амортизатори.

В якості засобів звукопоглинання застосовуються не горючі або тяжко горючі спеціальні перфоровані плити, панелі, мінеральна вата з максимальним коефіцієнтом поглинання в межах частот 31.5-8000 Гц.


6.3.5 Оздоровлення повітряного середовища

Для створення нормальних умов роботи програмістів і операторів ПЕОМ в машинному залі використовується система кондиціювання, що забезпечує необхідні оптимальні мікрокліматичні параметри і чистоту повітря.

В холодні періоди року температура повітря, швидкість його руху і відносна вологість повітря відповідно складають: 22-24 С°; 0,1 м/с; 40-60%; в теплі періоди року температура повітря - 23-25 Сº; відносна вологість 40-60 %; швидкість руху повітря - 0,1 м/с.

Витяжні отвори розташовані у стелі.


6.3.6 Захист від рентгенівського випромінювання

Електронно-променеві трубки, магнетрони, тиратрони та інші електровакуумні прилади, що працюють при напрузі вище 6 кВ, є джерелами „мякого рентгенівського випромінювання.

При технічній експлуатації апаратури, в якій напруга вище 15 кВ, використовують засоби захисту для відвертання рентгенівського опромінення операторів і інженерно-технічних робітників, бо при такій напрузі рентгенівське випромінювання розсіюється в навколишньому просторі виробничого приміщення.

Шкідливий вплив рентгенівських променів звязаний з тим, що порушення міжмолекулярних звязків тканинної речовини може призвести до порушення нормальної течії біохімічних процесів і обміну речовин.

Засобами захисту від „мякого рентгенівського випромінювання є застосування поляризаційних екранів, а також використання в роботі моніторів, що мають біо-керамічне покриття і низький рівень радіації.

В якості засобів захисту від чинності мяких рентгенівських променів застосовуються екрани з сталевого листа (0,5-1 мм) або алюмінію (3 мм), спеціальної гуми.

Для відвертання розсіювання рентгенівського випромінювання по виробничому приміщенню встановлюють захисні огорожі з різноманітних захисних матеріалів, наприклад, свинцю або бетону.


6.3.7 Забезпечення раціонального освітлення

При правильно розрахованому і виконаному освітленні очі працюючого за компютером протягом тривалого часу зберігають здатність добре розрізняти предмети не втомлюючись. Це сприяє зниженню професійного захворювання очей, підвищується працездатність.

Раціональне освітлення відповідає ряду вимог:

достатнє, щоб очі без напруги могли розрізняти деталі;

постійна напруга в мережі не коливається більше ніж на 4%;

рівномірно розподілено по робочим поверхням, щоб очам не приходилося зазнавати різкого контрасту кольорів;

не викликає дії, яка сліпить органи зору працюючого (зменшення блищання джерел, що відбивають світло, досягається застосуванням світильників, які розсіюють світло);

не викликає різких тіней на робочих місцях.

Задачею розрахунку є визначення необхідної потужності електричної освітлювальної установки для створення у виробничому приміщенні заданої освітленості.

При проектуванні освітлювальної установки необхідно вирішити наступні основні питання:

? вибрати тип джерела світла - рекомендуються газорозрядні лампи, за винятком місць, де температура повітря може бути менш +5 ° З і напруга в мережі падати нижче 90 % номінального, а також місцевого освітлення (у цих випадках застосовуються лампи розжарювання);

? визначити систему освітлення (загальна локалізована або рівномірна, комбінована);

? вибрати тип світильників з урахуванням характеристик світорозподілення, умов середовища (конструктивного виконання) і др.;

? розподілити світильники і визначити їх кількість (світильники можуть матися в своєму розпорядженні рядами, в шаховому порядку, ромбоподібно);

? визначити норму освітленості на робочому місці.

Для розрахунку штучного освітлення використовують в основному три методи.

Найчастіше її розраховують по світловому потоку. Для цього визначається світловий потік кожної лампи по нормуючій мінімальній горизонтальній освітленості Еmin (лк) з вираження:

=(Emin·S·K·z) / n1·n·N,


де F - світловий потік лампи в світильнику, лм; - площа приміщення, м2; - коефіцієнт запасу;- коефіцієнт нерівномірного освітлення;1 - коефіцієнт використання світлового потоку;- кількість ламп в світильнику;- число світильників.

Якщо освітлення здійснюється рядами люмінесцентних ламп, те вираження вирішується відносно N.

Значення коефіцієнта n1 визначається по довіднику в залежності від типу світильника, коефіцієнтів відбивання стін Рс, стелі Рп, робітничій поверхні і від розмірів приміщення.

Показник приміщення fi визначається з виразу:

i= А·В/Нр·(А+В),


де А і В - довжина і ширина освітленого приміщення, м;

Нр - висота підвісу світильника над робітничою поверхнею, м.

У випадку застосування люмінесцентних ламп потрібна кількість світильників N, яка визначається за формулою:

=Emin·S·K·z/F·n1·n


Поділивши число світильників N на число вибраних рядів світильників, визначають число світильників у кожному ряду.

Нехай зал має розміри А=8м, В=5м, h=3м, стеля обладнується світильниками Л201Б з люмінесцентними лампами ЛБ80, технічні характеристики ламп і світильників наведені в таблицях 6.1., 6.2. (згідно з ДОСТом 6825-74).


Таблиця 6.1

ТипПотужність, ВтНапруга, ВСвітловий потік (номін.)Довжина, ммДіаметр, ммЛБ80801105220150040Таблиця 6.2

СеріяМодифікаціяКількість* потужність, шт,ВтРозміри, ммНомер групиПрим.ДовжинаШиринаВисотаЛ201Б32·815753541279Стеля

Рівень робітничої поверхні над полом 0,8 м, при цьому Нр=2,2 м.

Показник приміщення рівний:

i=40/2,2 (8+5)=1,3986


По довіднику визначаємо значення коефіцієнта n1 (для значень Рс=0,5, Рп=0,3): n1=0,7. Значення коефіцієнта нерівномірного освітлення приймаємо рівним 1,1, а коефіцієнта запасу - 1,5. При загальному типі освітлення значення Emin=400 лк.

Знаючи значення світлового потоку кожної лампи, можемо визначити необхідну кількість світильників:

=400· 8· 5 ·1,5· 1,1/5220· 0,7· 2=3(штук)


Загальна потужність освітлювальної установки рівна:


Р=2· 80 · 3=480(Вт)


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


6.4 Пожежна безпека


.4.1 Пожежна і вибухова безпека в робочій зоні технічного обслуговування в приміщеннях з ПЕОМ

В системі заходів, направлених на охорону державної і особистої власності громадян, відвертання впливу на людей небезпечних чинників пожежі і вибуху, питання пожежної і вибухової безпеки займають важливе місце.

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

В звязку з цим можна виділити ряд заходів для пожежебезпеки:

? не палити і не використовувати нагрівальні прилади в приміщеннях з ПЕОМ;

? не відєднувати і не приєднувати кабелі, усувати несправності за наявності напруги в мережі;

? не визначати наявність напруги в ланцюзі, замиканням клем.

В електронно-обчислювальній техніці пожежну небезпеку створюють прилади, що нагріваються, електро- і радіотехнічні елементи. Вони нагрівають навколишнє повітря і близько розташовані деталі і провідники. Все це може призвести до займання означених елементів, руйнування ізоляції і короткого замикання.

Для виявлення пожеж в приміщенні встановлені датчики, що спрацьовують при появі диму, підвищенні температури і відкритого вогню.

Технологічні обємні підлоги виконуються з негорючих або тяжко горючих матеріалів з межею вогнестійкості не менше 0,5 г. Підпільні простори під обємними підлогами відділяють негорючими перегородками з межею вогнестійкості не менше 0,75 г на ділянки площею не більш 250 м2.

В кожній кімнаті знаходяться вогнегасники. Вони діляться на хімічні, пінні, повітряно-пінні, СО2 - вогнегасники і порошкові.

Вогнегасники допускаються до експлуатації якщо їхні технічні характеристики відповідають нормативним значенням, встановленим експлуатаційно-технічною документацією. Зменшення змісту вогнегасячої речовини і тиску у вогнегасниках не повинне перевищувати 10 % від встановленого номінального значення.

При розміщенні вогнегасників виключений безпосередній вплив на них сонячних променів, опалювальних і нагрівальних пристроїв. За конструкцією, матеріалами, методами контролю, умовами змісту, обслуговуванням вогнегасники повинні відповідати вимогам Правил пристрою і безпечної експлуатації судин, що працюють під тиском.

Первинні засоби пожежегасіння: ручні вогнегасники в кількості 2 шт.

Засоби гасіння загорання й пожежі, які можуть бути ефективно використані в початковій стадії пожежі: внутрішні пожежні крани, вогнегасники, кошми, пісок.

Для успішного гасіння пожежі велике значення має швидке виявлення пожежі та своєчасний виклик пожежних підрозділів до місця пожежі. Пожежний звязок і сигналізація можуть бути спеціального або загального призначення, радіозвязком, електричною пожежною сигналізацією (ЕПС), сиренами. ЕПС є найбільш швидким та надійним засобом сповіщення про виникнену пожежу. В залежності від схеми зєднання розрізнюють променеві (радіальні) та шлейфні (кільцеві) системи ЕПС.

ЕПС складаються з таких основних частин: сповіщувачів, встановлених в приміщеннях; приймальної станції, яка знаходиться в черговій кімнаті пожежної команди; блока поживи від сіті та від акумулятора (резервний); системи переключення з одної поживи на іншу; електропровідній сіті, яка зєднує сповіщувачі з приймальною станцією.

В кімнаті з ПЕОМ розміщений сповіщувач (датчик) тепловий легкоплавкий. При збільшенні температури легкоплавкий сплав розплавляється і пружинячі пластинки, розмикаючись, вмикають ланцюг сигналізації.


ВИСНОВКИ


Поява на початку 80-х роках графічних редакторів привело до переходу від кульманів до комп'ютера. Така робота практично копіювала прийоми роботи з олівцем і гумкою. Об'єкти на полі креслення були тими ж лініями і написами без всякої їх структуризації. Тільки уява конструктора дозволяла осмислити зображення і представити об'єкт в цілому. Різні частини різних креслень стали доступними для комбінування, що забезпечило можливість швидко і безпомилково будувати нові креслення. Саме таким чином виконується приблизно 98% всіх проектних робіт. Чим зручніше графічний редактор, ніж майстернішим є конструктор, ніж розвиненіша база креслень, тим ефективніше процес проектування на підприємстві. Тепер використання AUTOCAD вже не зводиться до відтворення роботи на креслярській дошці. Відносини і зв'язки між окремими тілами в тривимірному просторі можуть задаватися в структурі самих елементів конструкцій. Внутрішня форма опису кожного елементу геометричній моделі в AUTOCAD передбачається можливість запису практично будь-якої супутньої інформації.

Одним з достоїнств AUTOCAD виявляється можливість внесення до нього додавань. Найбільш могутнім засобом розширення AUTOCAD є мова програмування Auto LISP. Ця мова дозволяє використовувати могутні засоби розробки і удосконалення команд AUTOCAD.

В ході виконання дипломної роботи була розроблена об'єктно-орієнтована надбудова, призначена для креслення різьбових кріпильних деталей, що дозволяє перейти на вищий рівень роботи і максимально автоматизувати процес створення проектів.


СПИСОК ЛІТЕРАТУРИ


1.David M. Stein, The Visual LISP Developers Bible - 2003 Edition. Электронное издание, 2003. vww.dsxcad.com. - 183 с

2.Бугрименко Г. А., Лямке В. Н., Шейбоксне Э.-К. С. Автоматизация конструирования на ПЭВМ с использованием системы AutoCAD. - М.: Машиностроение, 1993. - 336 с.

.Джамп Д. AutoCAD. Программирование. Пер. с англ. - М.: Радио и связь, 1992. - 336 с.

.Долин П.А. Основы техники безопасности в электроустановках. - М.: Энергоатомиздат, 1984.

.Жирков С.В. Shareware: профессиональная разработка и продвижение программ. - СПб.: БХВ-Петсрбург, 2003. - 320 с.

.Кречко Ю. A. AutoCAD: программирование и адаптация, - М. ДИАЛОГ-МИФИ, 1995.- 240 с.

.Орлов И.А. Эксплуатация и ремонт ЭВМ, организация работы ВЦ. Москва -1989г.

.Погорелов В.И. AutoCAD 2005 для начинающих. - СПб.:БХВ-Петербург, 2004.

.Полещук Н.Н. Visual LISP и секреты адаптации AutoCAD, - СПб.: БХВ-Петербург, 2004,- 576 с

.Полещук Н.Н. AutoCAD 2004: разработка приложений и адаптация. СПб.: БХВ-Петербург, 2004. - 624 с.

.. Попова Г. Н., Алексеев С. Ю. Машиностроительное черчение: Справочник. -СПб.: Политехника, 1994.

.Романычева Э. Т., Соколова Т. Ю. Компьютерные технологии инженерной графики в среде AutoCAD 2000. AutoLISP. Учебное пособие. - М.: ДМК, 2000.

.Романычева Э. Т., Соколова Т. Ю., Шандурина Г. Ф. Инженерная и компьютерная графика. - 2-е изд., перераб. - М. ДМК Пресс, 2001. - 592 с, ил. (Серия «Проектирование»).

.Романычева Э. Т., Трошина Т. Ю. AutoCAD 2000. - М.: ДМК, 1999.

.Свет В.Л, AutoCAD: язык макрокоманд и создание кнопок, - СПб.: БХВ-Петербург, 2004. - 320 с.

.Хейфенц А.Л. Инженерная компьютерная графика. AutoCAD. - СПб.: БХВ-Петербург, 2005.

.Хейфенц А.Л., Логиновский А.Н., Буторина И.В. 3D-технологии построения чертежа. AutoCAD. - СПб.: БХВ-Петербург, 2005.

.Хювёнен Э., Сеппянен Й. Мир Лиспа. В 2-х т. Т. 1: Введение в язык Лисп и функциональное программирование. Пер. с финск. М.: Мир, 1990, 447 с.

.Хювёнен Э., Сеппянен Й. Мир Лиспа. В 2-х т. Т. 2: Методы и системы программирования. Пер. с финск. -- М.: Мир, 1990. -- 319 с.

.Чуприн А.И. AutoCAD 2005. Лекции и упражнения. - М.:ООО «ДиаСофтЮП», 2005.

21.#"justify">ДОДАТОК А


Вихідний текст файлів надбудови


krpz.lsp - головний модуль надбудови


;;;Рисование крепежных изделий


(defun c:krpg (/ dvt1 dvt2 dvt3 dvt4 krcl basdd bas2d bas3d bas4d bas5d bas6d bas7dd bas9d bas10d bas11d bas12d bas13d bas14dd bas16 bas17d bas18d bas19d bas20d bas21d bas23d bas24d bas25d bas26d bas27d name1aby fil glv1 vsb1 vsv1 pr_fl_rp rr rl rs spr x aa1 a2 a3 a4 b bb msgb1 b2 b12 acnl acnlr lcn nlt mcA filcolASO mclS mcASO nstr o_si blpm apsz osmd clay cltp ccol ltsc cltsc dop mshtb

)

(setq cmd (getvar "cmdecho"))

(setq blpm (getvar "blipmode"))

(setq apsz (getvar "aperture"))

(setq osmd (getvar "osmode"))

(setq clay (getvar "clayer"))

(setq cltp (getvar "celtype"))

(setq ccol (getvar "cecolor"))

(setq ltsc (getvar "ltscale"))

(setq cltsc (getvar "celtscale"))

(setvar "cmdecho" 0)

(setvar "blipmode" 0)

(defun *error* (msg)

(setvar "cmdecho" cmd)

(setvar "blipmode" blpm)

(setvar "celtype" cltp)

(setvar "cecolor" ccol)

(setvar "celtscale" cltsc)

(setvar "aperture" apsz)

(setvar "osmode" osmd)

(setq msg "")

(princ msg)

(terpri)

(princ)

)

(setq acln (findfile "acad.lin") (open acln "r") (read-line aclnr)(substr lcn 2 6)

)

(while (and (/= "CENTER" lcn) (/= lcn nil))

(setq lcn (read-line aclnr))

(if (/= lcn nil) (setq lcn (substr lcn 2 6)))

)

(close aclnr)

(if (eq lcn "CENTER")

(setq nlt "center")

(setq nlt "осевая")

)


(if (eq (tblsearch "LTYPE" nlt) nil)

(command "_linetype" "_l" nlt acln "")

)

(if (< (cdr (assoc 40 (tblsearch "LTYPE" nlt))) 3.0)

(setq dop 1.5)

(setq dop 0.04)

)


(setqdvt1 (findfile "support/blts/blts.lsp")(findfile "support/blts/vint.lsp")(findfile "support/blts/gks.lsp")(findfile "support/blts/shb.lsp")(findfile "support/blts/krpz.dcl")(findfile "support/blts/b7805.dat")d (findfile "support/blts/b7808.dat")d (findfile "support/blts/b7798.dat")d (findfile "support/blts/b7796.dat")d (findfile "support/blts/v1491.dat")d (findfile "support/blts/v17473.dat")d (findfile "support/blts/v17474.dat")d (findfile "support/blts/v17475.dat")d (findfile "support/blts/v11738.dat")d (findfile "support/blts/v1488.dat")d (findfile "support/blts/g5915.dat")d (findfile "support/blts/g5916.dat")d (findfile "support/blts/g15521.dat")d (findfile "support/blts/g15522.dat")d (findfile "support/blts/g5927.dat")d (findfile "support/blts/g5929.dat")d (findfile "support/blts/g2524.dat")d (findfile "support/blts/g2526.dat")d (findfile "support/blts/g15524.dat")d (findfile "support/blts/g5931.dat")d (findfile "support/blts/s11371.dat")d (findfile "support/blts/s6958.dat")d (findfile "support/blts/s10450.dat")d (findfile "support/blts/s6402n.dat")d (findfile "support/blts/s6402l.dat")d (findfile "support/blts/s6402t.dat")d (findfile "support/blts/s6402ot.dat")d (findfile "support/blts/s10906.dat")

) ;_ end of setq


(setq filcolASO (findfile "support/blts/sbrk.ini") (strlen dvt1) dlz (substr dvt1 1 (- dlz 8)) dlz (strcat dlz "sbrk.ini")

)

(if(/= filcolASO nil)

(progn

(setq mclS (open filcolASO "r")(read-line mclS))

(setq nstr (strlen mcASO))

(setq nstr (substr mcASO nstr))


(if (and (/= mcASO nil) (eq nstr ")"))

(progn (setq mcASO (read mcASO))

(if (/= (type mcASO) 'INT)

(setq mcA (nth 0 mcASO) (nth 1 mcASO) _si (nth 2 mcASO)

) ;_ end of setq

(setq mcA 4 mcS 3 o_si 0)

);_end of if

);_end of progn

);_end of if

(close mclS)

(if (or (> mcA 255) (> mcS 255) (eq mcA 0) (eq mcS 0) (/= nstr ")"))

(alert "\tФайл Support/blts/sbrk.ini поврежден!!! \nУдалите поврежденный файл и запустите приложение вновь")

)

(if (eq mcA nil) (setq mcA "4") (setq mcA (itoa mcA)))

(if (eq mcS nil) (setq mcS "3") (setq mcS (itoa mcS)))

(if (eq o_si nil) (setq o_si "0") (setq o_si (itoa o_si)))

) ;_end of progn

(setq mcA "4" mcS "3" o_si "0")

) ;_end of if

(defun lay_o ()

(command "_'layer" "_s" "0" "")

) ;_ end of defun


(defun osn ()

(command "_linetype" "_s" "_bylayer" "")

(command "_color" "_byl")

)


(defun ton ()

(command "_linetype" "_s" "_bylayer" "")

(command "_color" mcS)

)


(defun axs ()

(if (eq lcn "CENTER")

(command "_linetype" "_s" "center" "")

(command "_linetype" "_s" "осевая" "")

)

(command "_color" mcA)

)


(load dvt1)

(load dvt2)

(load dvt3)

(load dvt4)

(defun show_im2 (name1)

(setq orx (dimx_tile "image")(dimy_tile "image")

) ;_ end of setq

(start_image "image")

(fill_image 0 0 orx aby 444)

(slide_image 0 0 orx aby name1)

(end_image)

) ;_ end of defun


(defun name ()

(cond

((and (eq vk_rp "0")

(eq glv1 "1")

(eq vsb1 "0")

(eq vsv1 "0")

(or(eq pr_fl nil)

(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

) ;_ end of and

(setq name1

"support/blts/vnt(1).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(or(eq pr_fl nil)

(eq pr_fl "0")

) ;_ end of or

) ;_ end of and

(setq name1

"support/blts/vnt(4).slb"

) ;_ end of setq

)

((and (or (eq vk_rp "1") (eq vk_rp "3"))

(eq glv1 "0")

(eq vsb1 "1")

(eq vsv1 "0")

(or(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

) ;_ end of or

) ;_ end of and

(setq name1

"support/blts/vnt(17).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(eq pr_fl "1")

) ;_ end of and

(setq name1

"support/blts/vnt(6).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(eq pr_fl "2")

) ;_ end of and

(setq name1

"support/blts/vnt(8).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(eq pr_fl "3")

) ;_ end of and

(setq name1

"support/blts/vnt(9).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(eq pr_fl "4")

) ;_ end of and

(setq name1

"support/blts/vnt(10).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "1")

(eq vsv1 "0")

(eq pr_fl "5")

) ;_ end of and

(setq name1

"support/blts/vnt(11).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "0")

(eq vsv1 "1")

(eq pr_fl "4")

) ;_ end of and

(setq name1

"support/blts/vnt(12).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "0")

(eq vsv1 "1")

(eq pr_fl "5")

) ;_ end of and

(setq name1

"support/blts/vnt(13).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "0")

(eq vsv1 "1")

(or (eq pr_fl "0") (eq pr_fl "2") (eq pr_fl "3"))

) ;_ end of and

(setq name1

"support/blts/vnt(5).slb"

) ;_ end of setq

)

((and (eq vk_rp "1")

(eq glv1 "0")

(eq vsv1 "1")

(eq pr_fl "1")

) ;_ end of and

(setq name1

"support/blts/vnt(7).slb"

) ;_ end of setq

)

((and (eq vk_rp "0")

(eq glv1 "0")

(eq vsb1 "1")

(eq vsv1 "0")

(or(eq pr_fl nil)

(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

) ;_ end of and

(setq name1

"support/blts/vnt(2).slb"

) ;_ end of setq

)

((and (eq vk_rp "0")

(eq glv1 "0")

(eq vsb1 "0")

(eq vsv1 "1")

(or(eq pr_fl nil)

(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

) ;_ end of and

(setq name1

"support/blts/vnt(3).slb"

) ;_ end of setq

)

((and (eq vk_rp "2")

(eq glv1 "1")

(eq vsb1 "0")

(eq vsv1 "0")

(or(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_end of or

) ;_ end of and

(setq name1

"support/blts/vnt(14).slb"

) ;_ end of setq

)

((and (eq vk_rp "2")

(eq glv1 "0")

(eq vsb1 "1")

(eq vsv1 "0")

(or(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_end of or

) ;_ end of and

(setq name1

"support/blts/vnt(15).slb"

) ;_ end of setq

)

((and (eq vk_rp "2")

(eq glv1 "0")

(eq vsb1 "0")

(eq vsv1 "1")

(or(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_end of or

) ;_ end of and

(setq name1

"support/blts/vnt(16).slb"

) ;_ end of setq

)

((and (eq vk_rp "3")

(eq glv1 "1")

(eq vsv1 "0")

(or(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

) ;_end of or

) ;_ end of and

(setq name1

"support/blts/vnt(18).sld"

) ;_ end of setq

)

((and (eq vk_rp "3")

(eq glv1 "1")

(eq vsv1 "0")

(or(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

) ;_end of or

) ;_ end of and

(setq name1

"support/blts/vnt(20).sld"

) ;_ end of setq

)

((and (eq vk_rp "3")

(eq glv1 "0")

(eq vsv1 "1")

(or(eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

) ;_end of or

) ;_ end of and

(setq name1

"support/blts/vnt(19).sld"

) ;_ end of setq

)

((and (eq vk_rp "3")

(eq glv1 "1")

(eq vsv1 "0")

(eq pr_fl "7")

) ;_ end of and

(setq name1

"support/blts/vnt(21).sld"

) ;_ end of setq

)

((and (eq vk_rp "3")

(eq glv1 "0")

(eq vsv1 "1")

(eq pr_fl "7")

) ;_ end of and

(setq name1

"support/blts/vnt(22).sld"

) ;_ end of setq

)

) ;_ end of cond

) ;_ end of defun


(defun show (/ dcl_id)

(setq dcl_id

(load_dialog

) ;_ end of load_dialog

);Загрузить DCL-файл

(if(not (new_dialog "krpz" dcl_id)) ;Инициализировать диалог

(exit)

);(выйти, если не работает)

(defun sn_def ()

(setq glv1 "1""0""0""0"

) ;_ end of setq

) ;_ end of defun


(if (eq o_si nil) (set_tile "osi" "0") (set_tile "osi" o_si))


(defun name_fil ()

(cond

((and (eq vk_rp "0") (eq pr_fl "0")) (setq fil bas2d))

((and (eq vk_rp "0") (eq pr_fl "1")) (setq fil bas3d))

((and (eq vk_rp "0") (eq pr_fl "2")) (setq fil basd))

((and (eq vk_rp "0") (eq pr_fl "3")) (setq fil bas1d))

((and (eq vk_rp "1") (eq pr_fl "0")) (setq fil bas4d))

((and (eq vk_rp "1") (eq pr_fl "1")) (setq fil bas5d))

((and (eq vk_rp "1") (eq pr_fl "2")) (setq fil bas6d))

((and (eq vk_rp "1") (eq pr_fl "3")) (setq fil bas7d))

((and (eq vk_rp "1") (eq pr_fl "4")) (setq fil bas9d))

((and (eq vk_rp "1") (eq pr_fl "5")) (setq fil bas8d))

((and (eq vk_rp "2") (eq pr_fl "0")) (setq fil bas10d))

((and (eq vk_rp "2") (eq pr_fl "1")) (setq fil bas11d))

((and (eq vk_rp "2") (eq pr_fl "2")) (setq fil bas12d))

((and (eq vk_rp "2") (eq pr_fl "3")) (setq fil bas13d))

((and (eq vk_rp "2") (eq pr_fl "4")) (setq fil bas14d))

((and (eq vk_rp "2") (eq pr_fl "5")) (setq fil bas15d))

((and (eq vk_rp "2") (eq pr_fl "6")) (setq fil bas16d))

((and (eq vk_rp "2") (eq pr_fl "7")) (setq fil bas17d))

((and (eq vk_rp "2") (eq pr_fl "8")) (setq fil bas18d))

((and (eq vk_rp "2") (eq pr_fl "9")) (setq fil bas19d))

((and (eq vk_rp "3") (eq pr_fl "0")) (setq fil bas20d))

((and (eq vk_rp "3") (eq pr_fl "1")) (setq fil bas21d))

((and (eq vk_rp "3") (eq pr_fl "2")) (setq fil bas22d))

((and (eq vk_rp "3") (eq pr_fl "3")) (setq fil bas23d))

((and (eq vk_rp "3") (eq pr_fl "4")) (setq fil bas24d))

((and (eq vk_rp "3") (eq pr_fl "5")) (setq fil bas25d))

((and (eq vk_rp "3") (eq pr_fl "6")) (setq fil bas26d))

((and (eq vk_rp "3") (eq pr_fl "7")) (setq fil bas27d))

) ;_ end of cond

) ;_ end of defun


(defun desk_f ()


(setq x(open (name_fil) "r")(read-line x)(read a)(nth 0 aa)(nth (1+ (atoi rr)) aa)(nth 0 a2)(nth 1 a2)(read-line x)(read b)(nth 0 bb)(nth 1 bb)(nth 2 bb)(nth 12 bb)

) ;_ end of setq

) ;_ end of defun


(defun spis(/ ltb)

(cond

((eq vk_rp "0")

(setq ltb '("ГОСТ 7798-70 норм.точн."

"ГОСТ 7796-70 норм.точн. с ум.головкой"

"ГОСТ 7805-70 пов.точн."

"ГОСТ 7808-70 пов.точн. с ум.головкой"

)

) ;_ end of setq

)

((eq vk_rp "1")

(setq ltb '("ГОСТ 1491-72 с цилиндр.головкой"

"ГОСТ 17473-72 с полукркг.головкой"

"ГОСТ 17474-72 с полупот.головкой"

"ГОСТ 17475-72 с потайн.головкой"

"ГОСТ 1488-75 с квадр.головкой и бурт."

"ГОСТ 11738-72 с внутр.шестигранником"

)

) ;_ end of setq

)

((eq vk_rp "2")

(setq ltb '("ГОСТ 5915-70норм.точ."

"ГОСТ 5916-70норм.точ.низ."

"ГОСТ 15521-70норм.точ.с ум.раз.под кл."

"ГОСТ 15522-70норм.точ.низ.с ум.р.под кл."

"ГОСТ 5927-70пов.точ."

"ГОСТ 5929-70пов.точ.низ."

"ГОСТ 2524-70пов.точ.с ум.р.под кл."

"ГОСТ 2526-70пов.точ.низ.с ум.р.под кл."

"ГОСТ 15524-70пов.точ.выс."

"ГОСТ 5931-70пов.точ.особо выс."

)

) ;_ end of setq

)

((eq vk_rp "3")

(setq ltb '("ГОСТ 11371-78 нормальные"

"ГОСТ 6958-78 увеличенные"

"ГОСТ 10450-78 уменьшенные"

"ГОСТ 6402-70 пружинные нормальные"

"ГОСТ 6402-70 пружинные легкие"

"ГОСТ 6402-70 пружинные тяжелые"

"ГОСТ 6402-70 пружинные особо тяжелые"

"ГОСТ 10906-78 косые"

)

) ;_ end of setq

)

) ;_ end of cond

) ;_ end of defun


(defun r_r ()

(start_list "n")

(mapcar 'add_list a1)

(end_list)

) ;_ end of defun


(defun d_r ()

(start_list "l_bt")

(mapcar 'add_list a3)

(end_list)

) ;_ end of defun


(defun s_r ()

(start_list "s_bt")

(mapcar 'add_list a4)

(end_list)

) ;_ end of defun


(defun chart ()

(start_list "sprav")

(mapcar 'add_list b12)

(end_list)

) ;_ end of defun


(defun lb_t()

(start_list "prfl")

(mapcar 'add_list (spis))

(end_list)

) ;_ end of defun


(if(action_tile "vkrp" "")

(progn

(mode_tile "glv" 0)

(mode_tile "vsb" 0)

(mode_tile "vsv" 0)

(setq vk_rp "0"_fl "0"

) ;_ end of setq

(sn_def)

(desk_f)

(r_r)

(d_r)

(s_r)

(chart)

(lb_t)

(show_im2 (name))

) ;_ end of progn

) ;_ end of if


(defun clos_x ()

(close x)

(desk_f)

) ;_ end of defun


(defun whl ()

(if (or (< (atof rr) (atof b0))

(< (atof rs) (atof b2))

(< (atof rl) (atof b1))

) ;_ end of or

(clos_x)

) ;_ end of if

(while (or (/= (atof rr) (atof b0))

(/= (atof rs) (atof b2))

(/= (atof rl) (atof b1))

) ;_ end of or

(setq b (read-line x)(read b)(nth 0 bb)(nth 1 bb)(nth 2 bb)(nth 12 bb)

) ;_ end of setq

) ;_ end of while

) ;_ end of defun


(defun hlp ()

(set_tile "help" "Пояснения: >>>")

) ;_ end of defun


(defun vkr ()

(cond ((and (eq vk_rp "0")

(or (eq glv1 "1") (eq vsb1 "1"))

(eq vsv1 "0")

) ;_ end of and

(progn

(mode_tile "vsb" 0)

(mode_tile "l_bt" 0)

(mode_tile "s_bt" 0)

) ;_end of progn

)

((and (eq vk_rp "0")

(eq glv1 "0")

(eq vsb1 "0")

(eq vsv1 "1")

) ;_ end of and

(progn

(mode_tile "vsb" 0)

(mode_tile "l_bt" 1)

(mode_tile "s_bt" 1)

) ;_ end of progn

)

((and (eq vk_rp "1")

(or (eq glv1 "1") (eq vsb1 "1"))

(eq vsv1 "0")

) ;_ end of and

(progn

(mode_tile "vsb" 1)

(mode_tile "l_bt" 0)

(mode_tile "s_bt" 0)

) ;_end of progn

)

((and (eq vk_rp "1")

(eq glv1 "0")

(eq vsb1 "0")

(eq vsv1 "1")

) ;_ end of and

(progn

(mode_tile "vsb" 1)

(mode_tile "l_bt" 1)

(mode_tile "s_bt" 1)

) ;_ end of progn

)

((and (eq vk_rp "2")

(or (eq glv1 "1") (eq vsb1 "1"))

(eq vsv1 "0")

) ;_ end of and

(progn

(mode_tile "vsb" 0)

(mode_tile "l_bt" 1)

(mode_tile "s_bt" 1)

) ;_ end of progn

)

((and (eq vk_rp "2")

(eq glv1 "0")

(eq vsb1 "0")

(eq vsv1 "1")

) ;_ end of and

(progn

(mode_tile "vsb" 0)

(mode_tile "l_bt" 1)

(mode_tile "s_bt" 0)

) ;_ end of progn

)

((eq vk_rp "3")

(progn

(mode_tile "vsb" 1)

(mode_tile "l_bt" 1)

(mode_tile "s_bt" 1)

) ;_end of progn

)

) ;_end of cond

) ;_end of defun VKR

(action_tile

"vkrp"

(strcat

"(progn (setq vk_rp (get_tile vkrp))"

"(vkr)"

"(setq pr_fl 0)"

"(sn_def)"

"(desk_f)"

"(r_r)"

"(d_r)"

"(s_r)"

"(lb_t)"

"(chart)"

"(setq glv1 (get_tile glv))"

"(setq vsb1 (get_tile vsb))"

"(setq vsv1 (get_tile vsv))"

"(show_im2 (name)))"

"(hlp)"

) ;_ end of strcat

) ;_ end of action_tile


(action_tile

"prfl"

(strcat

"(progn (setq pr_fl (get_tile prfl) rr 0)"

"(desk_f)"

"(r_r)"

"(d_r)"

"(s_r)"

"(chart)"

"(show_im2 (name)))"

"(hlp)"

) ;_ end of strcat

) ;_ end of action_tile


(defun rl_rs ()

(setq rl "0""0"

) ;_ end of setq

) ;_ end of defun



(action_tile

"n"

(strcat

"(progn (sel_view)"

"(rl_rs)"

"(desk_f)"

"(whl)"

"(chart))"

"(hlp)"

"(d_r)"

"(s_r)"

) ;_ end of strcat

) ;_ end of action_tile


(action_tile

"l_bt"

(strcat

"(progn (sel_view)"

"(whl)"

"(chart))"

"(hlp)"

) ;_ end of strcat

) ;_ end of action_tile


(if(action_tile "l_tb" "")

(setq rl "0")

) ;_ end of if


(action_tile

"s_bt"

(strcat

"(progn (sel_view)"

"(whl))"

) ;_ end of strcat

) ;_ end of action_tile


(if(action_tile "s_tb" "")

(setq rs "0")

) ;_ end of if


(defun sel_view ()

(setq rr (get_tile "n")(get_tile "l_bt")(get_tile "s_bt")(get_tile "vsb")(get_tile "glv")(get_tile "vsv")

) ;_ end of setq

) ;_ end of defun


(action_tile

"glv"

(strcat

"(progn (sel_view)"

"(show_im2 (name)))"

"(vkr)"

) ;_ end of strcat

) ;_ end of action_tile


(action_tile

"vsb"

(strcat

"(progn (sel_view)"

"(show_im2 (name)))"

"(vkr)"

) ;_ end of strcat

) ;_ end of action_tile


(action_tile

"vsv"

(strcat

"(progn (sel_view)"

"(show_im2 (name)))"

"(vkr)"

) ;_ end of strcat

) ;_ end of action_tile


(defun dosi ()

(defun rino ()

(progn

(setq mcASO (strcat "(" mcA " " mcS " " o_si ")")

) ;_ end of setq

(setq mclS (open dlz "w"))

(write-line mcASO mclS)

(close mclS)

) ;_end of progn

) ;_end of defun


(action_tile

"osi"

(strcat

"(progn (setq o_si $value)"

"(rino))"

; "(dan))"

) ;_ end of strcat

) ;_ end of action_tile

)


(dosi)

(defun notes ()

(cond

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

(eq vk_rp "0")

(eq spr "0")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Диаметр головки болта")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_ end of or

(eq vk_rp "2")

(eq spr "0")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Диаметр гайки")

)

((and (eq pr_fl "7")

(eq vk_rp "3")

(eq spr "0")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Габаритный размер шайбы")

)

((and (eq pr_fl "7")

(eq vk_rp "3")

(eq spr "1")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Средняя толщина шайбы")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

) ;_ end of or

(eq vk_rp "3")

(eq spr "0")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Диаметр шайбы")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

) ;_ end of or

(eq vk_rp "3")

(eq spr "1")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Толщина шайбы")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

) ;_ end of or

(eq vk_rp "1")

(eq spr "0")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Диаметр головки винта")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_ end of or

(or (eq vk_rp "0")

(eq vk_rp "1")

(eq vk_rp "2")

) ;_end of or

(eq spr "1")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Размер под ключ")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

(eq vk_rp "1")

(eq spr "1")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Ширина паза под отвертку")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

(eq vk_rp "0")

(eq spr "2")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Высота головки болта")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

) ;_ end of or

(eq vk_rp "1")

(eq spr "2")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Высота головки винта")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_ end of or

(eq vk_rp "2")

(eq spr "2")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Высота гайки")

)

((and (or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

) ;_ end of or

(or (eq vk_rp "0")

(eq vk_rp "1")

) ;_ end of or

(eq spr "3")

) ;_ end of and

(set_tile "help" "Пояснения: >>> Длина резьбовой части")

)

) ;_ end of cond

) ;_ end of defun


(action_tile

"sprav"

(strcat

"(setq spr (get_tile sprav))"

"(notes)"

) ;_ end of strcat

) ;_ end of action_tile


(defun okey()

(if (and

(or (/= vk_rp "1") (/= vsb1 "1"))

(or (/= vk_rp "3") (/= vsb1 "1"))

) ;_end of and

(progn (done_dialog) (close x))

) ;_ end of if

) ;_ end of defun


(action_tile

"accept"

"(okey)"

) ;_ end of action_tile


(action_tile

"cancel"

(strcat "(progn (setq rr nil)" "(done_dialog))" "(close x)")

) ;_ end of action_tile


(start_dialog);Вывести диалоговое окно


(unload_dialog dcl_id);Выгрузить DCL-файл

(prin1)

); Описание функции show закончено


(if (and (<= (atoi mcA) 255) (<= (atoi mcS) 255) (/= mcS "0") (/= mcA "0")

(or (eq nstr ")") (eq nstr nil))

);_end of and

(show)

)


(defun msht ()

(setvar "celtscale" 1.0)

(if (>= ltsc cltsc) (setq mskf 10.0) (setq mskf 0.5))

(cond

((and (>= ltsc cltsc)

(or (and (<= dln 10.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (<= dgb 10.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.2 (/ mskf ltsc))))

((and (>= ltsc cltsc)

(or (and (> dln 10.0) (<= dln 20.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 10.0) (<= dgb 20.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.3 (/ mskf ltsc))))

((and (>= ltsc cltsc)

(or (and (> dln 20.0) (<= dln 30.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 20.0) (<= dgb 30.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.5 (/ mskf ltsc))))

((and (>= ltsc cltsc)

(or (and (> dln 30.0) (<= dln 80.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 30.0) (<= dgb 80.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.6 (/ mskf ltsc))))

((and (>= ltsc cltsc)

(or (and (> dln 80.0) (<= dln 150.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 80.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 2.0 (/ mskf ltsc))))

((and (>= ltsc cltsc)

(or (and (> dln 150.0) (<= dln 300.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 80.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 3.0 (/ mskf ltsc))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

((and (< ltsc cltsc)

(or (and (<= dln 10.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (<= dgb 10.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.0 (* ltsc cltsc))))

((and (< ltsc cltsc)

(or (and (> dln 10.0) (<= dln 20.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 10.0) (<= dgb 20.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.0 (* ltsc cltsc))))

((and (< ltsc cltsc)

(or (and (> dln 20.0) (<= dln 30.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 20.0) (<= dgb 30.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.3 (* ltsc cltsc))))

((and (< ltsc cltsc)

(or (and (> dln 30.0) (<= dln 80.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 30.0) (<= dgb 80.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 1.5 (* ltsc cltsc))))

((and (< ltsc cltsc)

(or (and (> dln 80.0) (<= dln 150.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 80.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 2.0 (* ltsc cltsc))))

((and (< ltsc cltsc)

(or (and (> dln 150.0) (<= dln 300.0) (or (eq vk_rp "0") (eq vk_rp "1")) (eq vsv1 "0"))

(and (> dgb 80.0) (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2"))

(eq vsv1 "1"))

);_end of or

);_end of and

(setq mshtb (* dop 3.0 (* ltsc cltsc))))

)

(if (or

(and (or (eq vk_rp "0") (eq vk_rp "1"))(eq vsv1 "0"))

(and (or (eq vk_rp "0") (eq vk_rp "1") (eq vk_rp "2")) (eq vsv1 "1"))

)

(setvar "celtscale" mshtb)

(setvar "celtscale" 1.0)

)

);_end of defun msht


(msht)


(cond((and (eq vk_rp "0")

(or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

) ;_ end of or

(/= rr nil)

) ;_ end of and

(blts)

)

((and (eq vk_rp "1")

(or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

) ;_ end of or

(/= rr nil)

) ;_ end of and

(vnts)

)

((and (eq vk_rp "2")

(or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

(eq pr_fl "8")

(eq pr_fl "9")

) ;_ end of or

(/= rr nil)

) ;_ end of and

(gks)

)

((and (eq vk_rp "3")

(or (eq pr_fl "0")

(eq pr_fl "1")

(eq pr_fl "2")

(eq pr_fl "3")

(eq pr_fl "4")

(eq pr_fl "5")

(eq pr_fl "6")

(eq pr_fl "7")

) ;_ end of or

(/= rr nil)

) ;_ end of and

(shb)

)

) ;_ end of cond



(setvar "celtscale" cltsc)


(prin1)


) ;_ end of defun


krpz.dcl - файл, що містить інформацію про діалогове вікно системи

: dialog {label = "Крепёжные изделия";


: column {


:row {

: popup_list {_width = 9;= "vkrp";= "Болты\nВинты\nГайки\nШайбы";

}


: popup_list {_width = 35;= "prfl";

}

}

:boxed_row {= "Выбор вида для черчения";

:radio_column {

: radio_button {= "glv";= "главный вид";= "1"; = 12; }

: radio_button {= "vsb";= "вид сверху";= 12; }

: radio_button {= "vsv";= "вид слева";= 12;}

: toggle {= "не чертить осевую";= "0";= "osi";}

}

:image_block {= "image";= 8;= 25;= 444;

}

}

}

:boxed_row {= "Размеры и справочные данные";


:column {

:row {

:column {

: popup_list {label = "диаметр резьбы M";_width = 7;= "n";= "";

}

: popup_list {label = "длина L";_width = 7;= "l_bt";= "";

}

: popup_list { = "шаг резьбы";_width = 7;= "";= "s_bt";

}

}

:list_box { = "sprav";= 12;= 6;

}

}


:text {= "Пояснения: >>>";= "help";= "";= 22;

}


}

}

_cancel;}.lsp - файл, що містить алгоритми креслень виробів

;;;Рисование болта


(defun blts (/ cmd blpm apsz osmddmt dln dln1sgb hgb dvt fskrsp cpt pt1pto2 ept pt2 pt3pt4 pt5 pt6pt8 pt9 pt10 pt11pt12 pt13 pt14-1 pt14-2 pt15 pt16 pt17pt18 pt19 pt19-1-2 pt20 pt21 pt22 pt23pt24 pt25 tgbtgbn edat3 label sset ;clay cltp ccol

)

(setq cmd (getvar "cmdecho"))

(setq blpm (getvar "blipmode"))

(setq apsz (getvar "aperture"))

(setq osmd (getvar "osmode"))

(setq clay (getvar "clayer"))

(setq cltp (getvar "celtype"))

(setq ccol (getvar "cecolor"))

(setvar "cmdecho" 0)

(setvar "blipmode" 0)

(setqdmt (nth 3 bb)(nth 4 bb)(nth 5 bb)(nth 6 bb)(nth 7 bb)(nth 8 bb)(nth 9 bb)(nth 10 bb)(nth 11 bb)

) ;_ end of setq

(lay_o)

(defun ris_blt ()

(setq cpt '(0.0 0.0))

(setvar "osmode" 0)

(setvar "aperture" 1)

;;;;;;;;;Рисование главного вида и вида сбоку

(defun bl_gl_sb ()


(setq pt1 (polar cpt pi hgb)(polar pt1 pi 2.00)(polar cpt 0 dln)(polar ept 0 2.00)

) ;_ end of setq

(defun acsl ()

(axs)

(command "_line" pto1 pto2 ""); Осевая линия нарисована

(if (eq label nil)

(setq label (entlast)(ssadd (entlast))

) ;_ end of setq

) ;_end of if

) ;_ end of defun

(if (eq o_si "0") (acsl))

;Рисование главного вида головки болта

(defun gbgl ()

(setq pt2 (polar cpt (/ pi 2) (/ dgb 2.00))(polar pt2

(- hgb (* dgb (- 0.25 (* 0.225 (cos (/ pi 6))))))

) ;_ end of polar(polar pt3

(/ (* pi 4) 3)

(* dgb (- 0.50 (* 0.45 (cos (/ pi 6)))))

) ;_ end of polar(polar cpt (/ (* pi 3) 2) (/ dgb 2.00))(polar pt7

(- hgb (* dgb (- 0.25 (* 0.225 (cos (/ pi 6))))))

) ;_ end of polar(polar pt6

(/ (* pi 2) 3)

(* dgb (- 0.5000 (* 0.4500 (cos (/ pi 6)))))

) ;_ end of polar(polar cpt (/ pi 2) (/ (distance cpt pt2) 2.00))(polar pt8

(- hgb (* dgb (- 0.25 (* 0.225 (cos (/ pi 6))))))

) ;_ end of polar(polar pt9

(/ (* pi 2) 3)

(* dgb (- 0.50 (* 0.45 (cos (/ pi 6)))))

) ;_ end of polar(polar cpt (/ (* pi 3) 2) (/ (distance cpt pt2) 2.00))(polar pt11

(- hgb (* dgb (- 0.25 (* 0.225 (cos (/ pi 6))))))

) ;_ end of polar(polar pt12

(/ (* pi 4) 3)

(* dgb (- 0.50 (* 0.45 (cos (/ pi 6)))))

) ;_ end of polar

) ;_ end of setq

(osn)

(command "_line"

""

)

(if (eq label nil)

(setq label (entlast)(ssadd (entlast))

) ;_ end of setq

) ;_end of if


(command "_line"

""

"_line"

""

"_line"

""

"_arc"

);Рисование главного вида

; головки болта закончено

) ;_ end of defun


;Рисование бокового вида головки болта

(defun gbbv ()

(setq pt2 (polar cpt (/ pi 2) (/ sgb 2.00))(polar cpt (/ (* pi 3) 2) (/ sgb 2.00))(polar pt2

(- hgb (* dgb (- (/ 0.25 (cos (/ pi 6))) 0.225)))

) ;_ end of polar(polar pt7

(- hgb (* dgb (- (/ 0.25 (cos (/ pi 6))) 0.225)))

) ;_ end of polar(polar cpt

(- hgb (* dgb (- (/ 0.25 (cos (/ pi 6))) 0.225)))

) ;_ end of polar(polar cpt

(/ pi 2)

(/ (/ (* dgb (cos (/ pi 6))) 2.0000) 2.00)

) ;_ end of polar(polar cpt

(/ (* pi 3) 2)

(/ (/ (* dgb (cos (/ pi 6))) 2.00) 2.00)

) ;_ end of polar(polar pt9 pi hgb)(polar pt10 pi hgb)

) ;_ end of setq

(osn)

(command "_line"

""

)

(if (eq label nil)

(setq label (entlast)(ssadd (entlast))

) ;_ end of setq

) ;_end of if

(command "_line"

""

"_line"

""

"_line"

""

"_arc"

"_arc"

);Рисование головки болта закончено

) ;_ end of defun


(if (and (eq glv1 "1") (eq vsb1 "0"))

(gbgl)

(gbbv)

) ;_ end of if

; Рисование стержня болта

(defun strg ()

(setq pt14 (polar cpt (/ (* pi 3) 2) (/ dmt 2.00))-1 (polar cpt (/ (* pi 3) 2) (+ (/ dmt 2.00) rsp))-2 (polar pt14-1 (/ pi 4) (/ rsp (cos (/ pi 4))))(polar pt14 0 (- dln fsk))(polar pt15 (/ pi 4) (* fsk (sqrt 2.00)))(polar cpt (/ pi 2) (/ dmt 2.0000))-1 (polar cpt (/ pi 2) (+ (/ dmt 2.00) rsp))-2 (polar pt19-1 (/ (* pi 7) 4) (/ rsp (cos (/ pi 4))))(polar pt19 0 (- dln fsk))(polar pt18 (/ (* pi 7) 4) (* fsk (sqrt 2.00)))(polar pt14 0 (- dln dln1))(polar pt19 0 (- dln dln1))(polar pt21 (/ (* pi 3) 2) (/ (- dmt dvt) 2.00))(polar pt20 (/ pi 2) (/ (- dmt dvt) 2.00))(polar pt22 0 (+ (- dln1 fsk) (/ (- dmt dvt) 2.00)))(polar pt23 0 (+ (- dln1 fsk) (/ (- dmt dvt) 2.00)))

) ;_ end of setq

(command "_line"-2-2

""

"_arc"-1

"_e"-2

"_r"

"_arc"-2

"_e"-1

"_r"

"_line"

""

) ;_ end of command

(if (/= dln dln1)

(command "_line" pt20 pt21 "")

) ;_ end of if

(ton)

(command "_line"

""

"_line"

""

); Рисование стержня болта закончено

) ;_ end of defun

(strg)

) ;_ end of defun

;;;;;_end of Главный вид и вид сбоку BL_GL_SB

;;;;;;;Рисование вида слева

(defun bl_vs ()

(setq tgb (/ (sqrt (- (expt dgb 2) (expt sgb 2))) sgb)(atan tgb)

) ;_ end of setq

(setq pt1 (polar cpt tgbt (/ dgb 2.0))(polar cpt (+ tgbt (/ pi 3)) (/ dgb 2.0))(polar cpt (+ tgbt (* (/ pi 3) 2)) (/ dgb 2.0))(polar cpt (+ tgbt pi) (/ dgb 2.0))(polar cpt (+ tgbt (* (/ pi 3) 4)) (/ dgb 2.0))(polar cpt (+ tgbt (* (/ pi 3) 5)) (/ dgb 2.0))(- pi tgbt)(polar cpt tgbn (/ dgb 2.0))(polar cpt (+ tgbn (/ pi 3)) (/ dgb 2.0))(polar cpt (+ tgbn (* (/ pi 3) 2)) (/ dgb 2.0))(polar cpt (+ tgbn pi) (/ dgb 2.0))(polar cpt (+ tgbn (* (/ pi 3) 4)) (/ dgb 2.0))(polar cpt (+ tgbn (* (/ pi 3) 5)) (/ dgb 2.0))(polar cpt 0 (+ (/ dgb 2.0) 3))(polar cpt pi (+ (/ dgb 2.0) 3))(polar cpt (/ (* pi 3) 2) (+ (/ dgb 2.0) 3))(polar cpt (/ pi 2) (+ (/ dgb 2.0) 3))

) ;_ end of setq

(if (eq o_si "0")

(progn (axs)

(command "_line" pt14 pt13 "")

(setq label (entlast))

(setq sset (ssadd (entlast)))

(command "_line" pt15 pt16 "")

);_end of progn

);_end of if

(osn)

(command "_circle" cpt (/ (* sgb 0.9000) 2.0000))

(if (eq label nil)

(setq label (entlast)(ssadd (entlast))

) ;_ end of setq

) ;_end of if

(command "_line"

""

"_line"

""

"_line"

""

"_line"

""

"_line"

""

"_line"

""

) ;_ end of command

(command "_arc"

"_e"

"_r"

(/ dgb 2.0)

"_arc"

"_e"

"_r"

(/ dgb 2.0)

"_arc"

"_e"

"_r"

(/ dgb 2.0)

"_arc"

"_e"

"_r"

(/ dgb 2.0)

"_arc"

"_e"

"_r"

(/ dgb 2.0)

"_arc"

"_e"

"_r"

(/ dgb 2.0)

) ;_ end of command


) ;_ end of defun

;;; _end of Вид слева BL_VS

(cond

((and (or (eq glv1 "1") (eq vsb1 "1")) (eq vsv1 "0"))

(bl_gl_sb)

)

((and (eq glv1 "0") (eq vsb1 "0") (eq vsv1 "1")) (bl_vs))

) ;_ end of cond

; (setvar "cmdecho" cmd)

; (setvar "blipmode" blpm)

(while (setq label (entnext label))

(setq sset (ssadd label sset))

) ;_ end of while

) ;_ end of defun

;;;_end of RIS_BLT

(defun edat ()

(cond ((eq glv1 "1") (setq nmpr "A"))

((eq vsb1 "1") (setq nmpr "B"))

((eq vsv1 "1") (setq nmpr "C"))

)

(setq edat3 (strcat "A" pr_fl nmpr rr rl rs o_si))

) ;_ end of defun

(defun clip_bl ()

(edat)

(if(eq (tblsearch "block" edat3) nil)

(progn

(ris_blt)

(command "._block" edat3 cpt sset "")

(setvar "aperture" apsz)

(setvar "osmode" osmd)

(setvar "clayer" clay)

(command "._insert" edat3 pause 1 1 pause)

) ;_end of progn

(progn

(setvar "clayer" clay)

(command "._insert" edat3 pause 1 1 pause)

) ;_ end of progn

) ;_ end of if

(setvar "celtype" cltp)

(setvar "cecolor" ccol)

) ;_ end of defun

(clip_bl)

(setvar "cmdecho" cmd)

(setvar "blipmode" blpm)

(prin1)

) ;_ end of defun BLTS


Міністерство освіти та науки України Криворізький інститут Кременчуцького університету економіки, інформаційних технологій та управління Кафедра Техніч

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ