![]() | ![]() |
Translate to: |
|||||
Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО |
Ко мне приходят письма пользователей с просьбами рассказать как быстро адаптировать библиотеки чертежей, сохраненных в старых версиях AutoCAD для удобного просмотра. Проблема состоит в том, что они не могут видеть корректную пиктограмму предварительного просмотра так как масштабирование чертежа не установлено.
Для этой целью мною была написана подпрограмма, состоящая из двух файлов, ZOOM-SAVE.LSP и ZOOM-SAVE.DCL, архив с которыми можно скачать отсюда. Подпрограмма позволяет открыть любое число DWG или DXF файлов и автоматически отмасштабировать их до 80% области экрана, что позволит потом ей сохранить их с корректными пиктограммами для предварительного просмотра.
Распакуйте архив в удобное место на жесткий диск. Используя функцию Appload выбрав в меню Tools пункт Load Application загрузите ZOOM-SAVE.LSP.
Чтобы запустить программу, введите ZS в командной строке AutoCAD, и вы увидите диалоговое окно Zoom-Save.
Вы можете выбрать тип файлов для отображения, используя переключатели DWG и DXF. Выберите диск и каталог, где находятся файлы чертежей для обработки, и вы увидите список файлов чертежей в области диалогового окна справа. Чтобы выбрать файлы используйте стандартные для Microsoft Windows процедуры выбора: щелчок мышью по файлу влечет выбор единичного файла; нажатие клавиши shift позволяет выбрать группу файлов; удерживание нажатой клавиши Ctrl и щелчок мышью влечет добавление к группе выбора произвольного файла.
Нажатие на кнопку OK влечет за собой автоматическое открытие, масштабирование и сохранение поочередно каждого файла из списка. После завершения операции происходит возврат обратно в диалоговое окно подпрограммы Zoom-Save. Вы снова можете изменить тип файлов, диск и каталог для того чтобы выбрать еще одну группу файлов для обработки. Нажмите на кнопку All Done что бы закрыть диалоговое окно, когда все файлы будут сконвертированны.
После запуска моих стандартных функций для обработки ошибок и управления системными переменными, программа активизирует функцию ZOOM-SAVE, которая управляет диалоговым окном. Обратите внимание, что устанавливаются значения системных переменных FILEDIA, LISPINIT и SDI. Эти системные переменные позволяют программе LIST запускаться и оставаться загруженной при любом числе открытых чертежей, а так же запрещать отображение стандартных диалоговых окон AutoCAD. ZOOM-SAVE использует глобальную переменную DTYPE для того, чтобы отслеживать, какой тип файлов (DWG и DXF) выбран. Эта же функция так же инициализирует диалоговое окно и определяет действия при выборе элементов диалогового окна. ZOOM-SAVE вызывает несколько функций, включая INIT-DWG, DO-DRIVES, DO-DIRBOX, GET-FILES и DO-MDWGS.
INIT-DWG вызывает MAKE-DRIVELIST, которая возвращает список всех дисков на компьютере пользователя. Чтобы это сделать функция Visual LISP VL-FILE-SIZE используется как тест, так как она возвращает 0 если ее аргумент - каталог. Функция DO-DRIVES используется что бы отобразить список дисков в диалоговом окне, а функция DO-DIRBOX возвращает список каталогов на указанном диске.
GET-FILES использует повторяющийся цикл чтобы создать список файлов, выбранных пользователем в диалоговом окне. Список используется впоследствии функцией DO-MDWGS следующим образом:
(defun do-mdwgs (dlist / dname) (if dlist (progn (repeat (length dlist) (if dlist (progn (setq dname (car dlist) dlist (cdr dlist) ) ;_ end of setq (new-open) (vl-cmdf dname) (zoomsave) ;;; zoom and save operation on a drawing ) ;_ end of progn ) ;_ end of if ) ;_ end of repeat ) ;_ end of progn ) ;_ end of if ) ;_ end of do-mdwgs
Эта функция вызывает NEW-OPEN, которая в свою очередь является модифицированной версией функции Autodesk, написанной более чем 10 лет назад. Ниже дана модифицированная версия:
(defun new-open () (vl-cmdf "open") (if (not (= 0 (getvar "dbmod"))) (vl-cmdf "N") ) ;_ end of if (princ) ) ;_ end of new-open
Функция ZOOMSAVE так же вызывается из DO-MDWGS. Она выполняет работу по масштабированию и сохранению каждого чертежа и DXF-файла. Ее код показан ниже:
(defun zoomsave () (vl-cmdf "ZOOM" "E") (vl-cmdf "ZOOM" "0.8XP") (if (= *DTYPE* "dwg") (vl-cmdf "SAVEAS" "2004" "" "Y") (vl-cmdf "SAVEAS" "DXF" "" "" "Y") ) ) ;_ end of zoomsave
Переменная DTYPE используется для определения типа файла (DWG и DXF), в зависимости от чего впоследствии файл и сохраняется.
Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko