Продължавайки предишната си публикация на тема Започване на разработката за AutoCAD, ще ви покажа как да използвате LISP в AutoCAD, за да конвертирате селекция от блокове в набор от точки.

Преди да започна, важно е да науча, че всички променливи в LISP са глобални, освен ако не са принудени да бъдат локални в дефиницията на функцията. Ето как създаваме локални променливи:

Това са две запазени префиксни букви за функции в LISP; „c:“ и „s:“. C е за правене на функцията достъпна от командния ред, S е във връзка със стартиращата рутина на AutoCAD. Все още не е нужно да знаете това.

В следния код добавих обработка на грешки към моя шаблон, като създадох персонализиран манипулатор на грешки за показване на всяка потенциална грешка, която може да възникне. След завършване на функцията нулирам променливата *error*, която съдържа функцията за редовна обработка на грешки на AutoCAD, освен ако не е заменена, както показвам тук.

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

LISP е прекрасен по начина, по който ви позволява да използвате всички обикновени команди на AutoCAD, които обикновено правите ръчно, и да ги извиквате в скрипт или функция. Командите, включващи потребителски форми за въвеждане обаче, ще бъдат по-интригуващи.

Тогава е хубаво да знаете, че повечето команди на AutoCAD имат алтернативна версия с префикса тире (-). Например: командата LAYER има еквивалентна команда -LAYER, която ви позволява да предавате параметри към нея чрез LISP.

Какво ще стане, ако вместо това искате да конвертирате блоковете в Civil 3d COGO-точки? Очаквайте следващата публикация;)