Я не забил и не забыл, просто работы была тьма.
В твоем коде ты получишь бесконечный цикл, скорее всего
Бесконечный цикл не получится, потому что _qsave стоит внутри (if (> sc 100) ..). После очистки масштабов происходит сохранение и во второй раз условие уже не выполняется. В этом плане код как раз оттестирован. _QSAVE я добавил после того, как понял, что команда vla-sendcommand выполняется уже после сохранения (и даже после alert). Единственный вариант, когда можно получить бесконечный цикл - это если кто-то реально использует больше 100 масштабов аннотаций и они не очистятся, но думаю столько никто не использует. Зато я точно буду знать, что по команде сохранения файл был не только очищен, а ещё и сохранён.
P.S. ИМХО код должен быть наподобие:
Твой код не очень сильно отличается от моего (убрал сохранение), к тому же содержит мелкий огрех. Ты переименовал sc в datas, а в (itoa sc) не поправил.
P.P.S. Будь время и возможность, я бы попробовал вообще выдавать запрос - вычищать сразу DgnLs или нет.
Собственно говоря это уже сделано, только не в реакторе, а в acaddoc.lsp. Правда диалог написан немного жёсткий, в том плане, что на него нельзя ответить "нет", только выбор варианта очистки - корректная и быстрая (удаление словаря).
Я думаю имеется в вижу таблица слоёв, блоков, типов линий, зарегистрированных приложений и т.д.
Ну примерно так
Ну, количество записей в этих таблицах не показатель ИМХО. Текстовые / размерные / табличные стили - да, можно, в принципе, прошерстить. Но информировать о превышении какого-то предельного числа, не предлагая ничего взамен - немного неразумно. А проходить по всей базе чертежа, исправляя "кривые" элементы - это задача точно не для лиспа. Мультилинии и мультивыноски - аналогично. Блоки? Количество описаний блоков еще ни о чем не говорит.
В общем-то я много думал над этим... Пока что эту функцию хотел использовать для подсчёта RegApp, чтобы очищать их при превышении адекватного количества. Для остального - да, большой вопрос. Но универсальность бывает очень удобна, как в случае с check-dict2, так сказать на будущее