Данная программа, выполняет некоторые рутинные операции, которые разработчик устал делать вручную.
Поэтому не стоит быть очень строгим к производительности, да и к работоспособности.
Что касается производительности, то использование функции (command …) по определению не может давать быстрых результатов.
Чаще всего используется тогда, когда пользователь-разработчик знает какую-либо функцию када, но не знает подходящую функцию лиспа.
Что касается функциональности:
программа не совсем корректно работает на "кривых" границах
Здесь:
1 - точка схождения длинных штрихов, совпадает с центром задающей дуги-границы
2 - область точек пересечения коротких штрихов.
Сходу определить принцип именно такого направления коротких штрихов не смог, необходимо более детально анализировать код
Штрихи создаются на собственном слое otkos, а вот цвет почему-то не устанавливается "по слою".
Предполагаю, что программа была написана для автокада, но в нано она работает чуть по-другому.
Отсюда и не очень понятный запрос насчет направления (если 0, то ничего не происходит, но программа чего-то ждет), и создание блоков otk, которые не используются.
Но есть одно неоспоримое достоинтсво - программа работает хотя бы на более-менее ровных примитивах.
Так же, может использоваться в качестве заготовки для доработки.