Тема: Программа для контроля использованных материалов
По роду работы приходится контролировать объем использованных при строительстве погонажных материалов (труба, кабель, провод, лоток, профиль, световая линия). По результатам проверки прорисовываю то что установленно на чертеже акада. Раньше пользовался функцией подсчета длинн на определенном слое, но теперь появилось немного свободного времени и для еще большего упрощения задачи написал прогу. Для правильной ее работы необходимо каждый материал прорисовывать (линиями, полилиниями, элипсами и прочими примитивами для которых возможно измерение длины) на отдельном слое (называть их например ВВГ3х2.5, кабель 3х1.5 в ПВХ трубе, труба д100, лоток 400, газовая труба, лента и т.п). Ничего страшного если на том же слое будут располагаться примитивы, для которых невозможно измерение длины (например текстовые пояснения). Не располагайте в этом слое всякого рода выноски и т.п. поскольку их длина будет учитываться.
Затем ручками необходимо набить таблицу в том же чертеже где перечислить все материалы что подлежат контролю и создать текстовые строки, в которые будут помещаться длины этих материалов.
Следующий шаг - ассоциация строк со слоями, на которых будет производиться подсчет. для этого в консоли необходимо набрать ASSOCIATE. На запрос "Select text to be associated:" нужно указать мышью строку, предназначенную для хранения длины. На второй запрос "Select object(s) on destination layer(s):" нужно выбрать мышью один (или несколько) объектов на слое (или слоях) с которого(рых) будет считаться длина. Можно здесь указать несколько слоев (тогда и длина будет считаться с нескольких слоев). ПВХ труба например может быть прорисована на слое ПВХтруба и на слое кабель в ПВХ трубе. Ограничение - суммарное количество символов в именах выбранных слоев должно быть в пределах 220 (т.к. больше 256 в тысячную группу не влезает а еще на кавычки и слэши надо место оставить)
Такую ассоциацию нужно произвести по каждой позиции в таблице. Проверить какие слои ассоциированы с конкретной строкой можно набрав в консоли STRINGTEST и на запрос "Select text to be checked:" кликнуть по строке которую необходимо проверить. В ответ получите либо ошибку (что означает что вы либо не попали мышью ни по одному примитиву, либо ни один слой с данной строкой не ассоциирован). Если имеется ассоциация то будет ответ типа "The selected string is associated with layer(s) - кабель в трубе". Если вы ошиблись со слоем при ассоциации, то необходимо сделать это заново с помощью команды ASSOCIATE.
После ассоциации ручная работа закончена. Теперь заданные вами слои связаны с заданными строками. Подсчет длинн и обновление значений происходит при нажатии кнопки SAVE (или командой _QSAVE, или save as - вобщем каждый раз при сохранении файла)
для вызова помощи наберите HELPME
Для работы программы она должна быть подгружена. Это можно сделать либо поместив ее в автозагрузку выбрав в меню tools->load application (там где портфель) либо поместив ее в папку Support и прописав в acad????.lsp или acad????doc.lsp (loadapp "VolumesControl.vlx")