В този урок ще разгледаме как да управлявате програмата на диалогов прозорец LISP.
Като пример, ние ще използваме, създадени в диалоговия прозорец урок предишния. "Диалоговия прозорец"
И веднага да започнете с кода, който контролира диалоговия прозорец.
Фиг. 1. "диалоговия софтуер за контрол на кода".
диалоговия прозорец Управление на LISP програма се извършва на няколко етапа:
диалоговия прозорец Файл за изтегляне
Първо, трябва да изтеглите на DCL-файла, съдържащ желаното диалог.
Ако диалогов прозорец се зарежда, тази функция връща поредния номер на заредения DCL-файла в работата на сесия с AutoCAD система.
С помощта на setq за присвояване на оператора запомня този брой в променлива dcl_id.
Ако не се зареди диалоговия прозорец, функцията връща отрицателно число.
Ако името на файла в аргумент е без пътека, AutoCAD система се опитва да намери файла в папката Support Когато придружаващите файлове.
Добавяне на пътя към помощните файлове.
Не е да се напише пълния път до нашия диалогов прозорец, нека добавим пътя до папката, в нашето "D: \ MyLisp» в начина на достъп до файловете за поддръжка на AutoCAD. й папка подкрепа Made.
За да направите това, кликнете върху бутона "Прилагане" в диалоговия прозорец на "Опции", за кутията. Виж. Фиг. 2.
Фиг. Бутон 2. Прилагане
отваря "Настройки" прозорец. Вж. Фигура 3.
Фиг. 3. "Добавяне на път за подкрепа на файл"
Тя отидете в раздела "Файлове".
Щракнете върху [+] в предната част на елемента "Подкрепа File пътя".
След това кликнете върху бутона "Добави". След това върху бутона "Browse ...". "Преглед на папка" отваря прозорец.
Намираме папка «D: \ MyLisp» и натиснете OK.
нова линия «: \ MyLisp D» се появява в маршрутите за достъп до спомагателните файлове.
Фиг. 3. "Пътят на поддръжка на файл"
Щракнете върху OK. Сега AutoCAD знае къде да търси файла си и вместо пълния път до него, достатъчно, за да напишете само името му.
Отваряне на диалоговия прозорец и да провери наличието на диалог.
Тази функция се отваря диалогов прозорец, и се връща T (True), ако диалогът със същото име в този файл там.
И се връща Nil ако диалогът не може да бъде намерен.
Нека за по-добро разбиране на линия
замени функцията (new_dialog «mp_paral» dcl_id) връщане стойност Те.
Ще (ако (не T) (изход)) - ако не изляза Т. С други думи, освен ако диалоговия прозорец Отвори, за да завърши програмата.
Ако всичко върви добре, тя ще се отвори диалогов прозорец, в работен прозорец AutoCAD. Виж. Фиг. 5.
Фиг. 5. диалоговия DCL
LISP програма ще бъде на пауза и изчакайте за въвеждане на текст.
Въведете стойностите в "дължината", "ширина", "височина" и натиснете един от двата бутона. (OK или Отказ). AutoCAD се връща в програмата LISP.
Описание на действието при натискане на бутоните и затваряне на диалоговия прозорец.
За описание на действията, които се изпълняват програмата, като щракнете върху бутоните, използвани action_tile функция. В общи линии, това изглежда така:
Така следния израз
За потребителски дефинирана функция (raz_paral) ще бъдат обсъдени по-късно.
Функция (done_dialog 1) - затваря диалоговия прозорец и изпраща цифрова стойност, която може да се прочете функция (start_dialog)
В следващия ред
(Start_dialog) чете с всеки диалогов прозорец стойност цифровата е затворена
Setq - той възлага на променлива DDI.
Качване на диалоговия файл
Функция (unload_dialog dcl_id) - разтоварва с пореден номер dcl_id диалог.
Defun функция.
За да създадете потребителска функция е функция defun. В общи линии, това изглежда така:
Дефинирани от потребителя функция (raz_paral) (размер на карето).
Кодът създава функция (raz_paral) е показана на Фиг. 6.
Фиг. 6. "Потребител функция raz_paral»
Функция (get_tile «eb_Dl«) - пише в съдържанието на диалоговия прозорец с eb_Dl код. Връща стойност низ (ако стои в поле 100. връща "100").
За да се превърне низ до цяло число с помощта на функцията (atoi <строка>)
По този начин, ред
Чете съдържанието на полето "Дължина" (код на полето eb_Dl), тя се превръща в цяло число, и го съхранява (с помощта на setq функция) на променлива DL.
В него е записано съдържанието на полето "ширина" и го съхранява в променлива Sh.
В него е записано съдържанието на "височина" поле и го съхранява в променливата Здравейте.
Функция (raz_paral) - не съдържа аргументи и променливи на временни работници. Ако променливи Dl, Sh, Hi посочите като работници, в края на стойностите на функцията на променливите ще бъдат изтрити от паметта. И имаме нужда след края на функцията (raz_paral), тези променливи запазват своите стойности.
След функцията е била създадена, тя може да се нарече навсякъде в програмата чрез набиране (raz_paral).
Дефинирани от потребителя функция (mp_kub Dl Sh Hi).
Нека да се превърне в програмата, създадена в урок? "Пример за прост програми на LISP" в потребителските функции. Виж. Фиг. 7.
Фиг. 7. "Потребител функция mp_kub»
За да направите това, премахване на "C:"
Добавянето аргументи Dl Hi Sh.
И излага аргументи в програмата вместо броя 200, както е показано на фигура 7.
В резултат на това, ние получаваме потребителска функция, както е показано на фиг. 8.
Фиг. 7. "Потребител функция mp_kub»
След mp_kub променливи функцията P1 P2 P3 P4 p5 p6 P7 р8 ние не се нуждаем. И така, те не се съхраняват в паметта, да ги добавите като временни работници променливи.
За да се обадите на тази функция, трябва да изберете
Обща програма LISP с диалогов прозорец.
Общо програма LISP с диалогов прозорец ще се появи, както е показано на фиг. 9.
Фиг. 9. "Обща програма"
Mp_paral софтуерен код на програмата:
Изтеглете диалогов прозорец Mp_paral.dcl (размер на файла: 392 байта)
Изтеглете Mp_paral.lsp програма (големина на файла: 781 байта)
Той създава потребителски функция, наречена «mp_paral».
префикс "C:" The означава, че тази функция може да се използва като стандартен командването AutoCAD.
Трябва само да въведете името в командния ред на AutoCAD.
(/ Dcl_id чеп Dl Sh Hi) - временни работни променливи, използвани в програмата.
Освен това, има създаване на потребителска функция mp_kub (обсъдено по-горе).
След това, създаването на потребителска функция raz_paral (обсъдени по-горе).
Програмата след това контролира диалогов прозорец (обсъдени по-горе).
Ако променливата DDI = 1 да изпълнява функция (mp_kub Dl Sh Hi)
Частично DDI = 1. ако даден потребител в диалогов прозорец чрез натискане на бутона "ОК".
Ако потребителят кликне върху бутона "Отказ", променливата DDI = 0 и функцията (mp_kub Dl Sh Hi), няма да бъде изпълнена.
Функция (Princ) изпълнява мека изход.
Последно ")" - означава функцията на крайната mp_paral.
Изтеглете и стартирайте mp_paral програма.
За да проверите работата на програмата:
Създаване на нов файл Фиг. 10.
Фиг. 10. "Създаване на нов файл"
Ние го отпечатате или копирате текста на програмата от сайта.
Запазете файла в «D: / MyLisp» папка с името «mp_paral».
На следващо място, се зареди програмата и отидете на AutoCAD. Виж. Фиг. 11
Фиг. 11. "Изтегляне на програма"
В командния ред и натиснете въведете mp_paral
Фиг. 12. "командния ред"
Отворете диалоговия прозорец "Box". Вж. Фигура 13.
Фиг. 13. "диалог"
Той допълни полето "дължината", "ширина", "височина" и кликнете върху OK.
В командния ред се появява: "Избор на базова точка:". Кликнете някъде в прозорец AutoCAD работа и тя ще се направи кутия. Виж. Фиг. 14.
Фиг. 14. "Кутия"
По този начин, в тази статия ще погледна пример за създаване на диалоговия прозорец LISP програма в.
- Как да се справим с диалоговия прозорец на LISP програма.
- Как да добавите пътя до файловете за поддръжка на AutoCAD.
- Как да създавате и използвате потребителски дефинирани функции.
всичко, което имам;
Беше ли трудно да се осъществява този урок?;
където имате трудности?
Ако желаете да получавате новини от моя сайт. Абонаменти.
Докато се срещнем отново.
Свързани статии