Тема: Вывод на печать, предварительный просмотр.

АвтоКАД 14
В ЛИСПе сделана программа по печати листов документа. Листы - это просто наборы слоев. Программно обрабатывается из каких слоев выводится на печать.

1. Для пользователя необходим предварительный просмотр, как его организовать?

2. Необходима настройка форматов, доступных на принтере.

На текущий момент сделано так:
   1. Настройка принтера производится через библиотеку DosLib. Такие пар-ры, как имя принтера и ориентация (не работает на многих принтерах). Нету формата.
   2. Просмотр производится путем АвтоКАДовской комманды PLOT, с заданием параметров и выводом в файл. Сохраняются настройки и можно с помощью команды PREVIEW, вроде, показать. (Недостаток - долго обрабатывает для просмотра и не все можно учесть)

Re: Вывод на печать, предварительный просмотр.

Для листов (layout) есть стандартные для Автокада функции подготовки к печати, печати, просмотра и т.д.
Меню
File>Page setup...
File>Plot
В диалоге Plot кнопки Full Prewiev... и Partial Prewiev.

Re: Вывод на печать, предварительный просмотр.

Извините, невнимательно прочел ваше сообщение. У вас так и реализовано.

Re: Вывод на печать, предварительный просмотр.

Уточняю, мне это нужно организовать программно....

Re: Вывод на печать, предварительный просмотр.

Можно обращаться к объектной модели Автокада (PlotConfiguration object, Layout object): получить список устройств печати(ConfigName Property); форматы , поддерживаемые каждым устройством печати(CanonicalMediaName Property) и т.д.
Свойства писать-читать.
Методы.

Re: Вывод на печать, предварительный просмотр.

Кас, слушай, это мне трудно для меня. В ЛИСПЕ колупаюсь.. Может сделаешь типа ARX-ик. Не заржавеет...

Re: Вывод на печать, предварительный просмотр.

Я тоже работаю в Lisp (Visual Lisp). Испульзуя этот язык можно без проблем обращаться к обектной модели Автокада.
Береться документация разработчика по VBA -- там описаны все объекты, методы, свойства, события(реакторы); и по описанным правилам переводиться на язык Visual Lisp.

Вот так можно получить список устройств печати(PlotDeviceNames) активного листа (ActiveLayout):

   (vl-load-com)
   (setq aLayout (vla-get-ActiveLayout (vla-get-activedocument (vlax-get-acad-object))))
    (vla-RefreshPlotDeviceInfo aLayout) 
   (setq  PlotDeviceNames(vlax-safearray->list (vla-GetPlotDeviceNames aLayout)))

Re: Вывод на печать, предварительный просмотр.

Так ведь ВижуалЛисп, блин инициализировать надо, чтобы заработали функции.

Re: Вывод на печать, предварительный просмотр.

Создал VLX приложение и загрузил appload из Автокада.

Re: Вывод на печать, предварительный просмотр.

Попробую...

Спасибо всем..