Schöck
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Изменение настроек принтера в листе(листах)

LISP. Изменение настроек принтера в листе(листах)

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 21.01.2008, 12:19 2 | #1
LISP. Изменение настроек принтера в листе(листах)
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,693
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™

VVA вне форума Вставить имя

Команда опубликована whdjr здесь. Внес некоторые улучшения.
Команда устанавливает всем листам сохраненные ранее настройки параметра листа (Разъяснения читать в посте #2).
В архиве lsp и dcl и vlx файл. Для работы рекомендуется загружать pagesetups.vlx (lisp и dcl в одном флаконе). Название команды
Команды
Change_page_setups или CPS - изменяет параметры листа по всем листам
CPSSL - изменяет параметры листа выбранных листов
DPS - удаляет выбранные параметры
DAPS - удаляет все параметры
MyPS - управляющая команда
CPStyle - изменяет стиль печати выбранных листов

Варианты:
CPSSL от VVA
CPSSL от Sleekka
Версия PageSetups to Tabs от CAB'a




Вложения
Тип файла: lsp page_setup20171205.LSP (14.2 Кб, 109 просмотров)

__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 06.12.2017 в 23:02. Причина: Добавил CPStyle
Просмотров: 37258
 
Автор темы   Непрочитано 21.01.2008, 12:23
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,693
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Некоторые разъяснения. Чтобы воспользоваться командой, необходимо предварительно в команде _plot создать Именованный набор параметров в листе!!!. Картинка ниже должна помочь
Миниатюры
Нажмите на изображение для увеличения
Название: page_setups.jpg
Просмотров: 2789
Размер:	84.9 Кб
ID:	2446  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.01.2008, 16:27
#3
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,553
Отправить сообщение для wetr с помощью ICQ Отправить сообщение для wetr с помощью Skype™


Спасибо,VVA,
а то там где это опубликовал whdjr я нифига не понял. Ты уже раньше давал ссылочку на форуме...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 21.01.2008, 18:05
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,693
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Вариант с выбором назначаемых листов. Немного модифицировал. Диалог пишется динамически
Команда называется CPSSL (Change Page Setups on Select Layout)
При выборе листов нужно использовать в диалоге Shift и Ctrl
Код:
[Выделить все]
;;;posted whdjr
;;;http://www.theswamp.org/index.php?topic=12439.msg153420#msg153420
;;;Modifyed VVA 21.01.2008 http://dwg.ru/f/showthread.php?t=16792
;;Change Page Setups on Select Layout (CPSSL)
(defun c:CPSSL (/                  adoc
                page_setups        dcl_id
                userclick          selection
                plotcfg            loc:get_page_setup
                loc:getSelectedItems
                loc:dwgru-get-user-dcl
               )
;;;
  (defun loc:get_page_setup (doc func / lst)
    (vlax-map-collection
      (vla-get-plotconfigurations doc)
      '(lambda (x) (setq lst (cons ((eval func) x) lst)))
    ) ;_ end of vlax-map-collection
    (reverse lst)
  ) ;_ end of defun
;;;
  (defun loc:getSelectedItems (tilename AllItemsList / indexes)
    (if (setq indexes (get_tile tilename))
      (setq indexes (read (strcat "(" indexes ")"))
            indexes (mapcar '(lambda (n) (nth n AllItemsList))
                            indexes
                    ) ;_ end of mapcar
      ) ;_ end of setq
    ) ;_ end of if
    indexes
  ) ;_ end of defun
;;;
;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2008  DWGru Programmers Group
;;; *
;;; * loc:dwgru-get-user-dcl (Кандидат)
;;; *
;;; * Запрос значения у пользователя через диалоговое окно
;;; *
;;; *
;;; * 21/01/2008 Версия 0001. Редакция Владимир Азарко (VVA)
;;; ************************************************************************
 
  (defun loc:dwgru-get-user-dcl
         (zagl info-list multi / fl ret dcl_id msg layouts)
         ;|
* Запрос значения у пользователя через диалоговое окно
* Диалог формируется "налету"
* Параметры вызова:
    zagl - заголовок окна [String]
    info-list - список строковых значений[List of String]
    multi - t - разрешен множественный выбор, nil- нет
 
* Возвращает:
 Список выбранных строк или nil - отмена
* Пример
 (loc:dwgru-get-user-dcl "Укажите вариант" '("Первый" "Второй" "Третий") nil) ->("Первый") 
 (loc:dwgru-get-user-dcl "Укажите вариант" '("Первый" "Второй" "Третий") t) ->("Первый" "Второй") 
|;
    (if (null zagl)
      (setq zagl "Выбор")
    ) ;_ end if
    (setq fl (vl-filename-mktemp "dwgru" nil ".dcl"))
    (setq ret (open fl "w"))
    (mapcar
      '(lambda (x) (write-line x ret))
      (list "dwgru_msg : dialog { "
            (strcat "label=\"" zagl "\";")
            " :list_box {"
            "alignment=top ;"
            (if multi
              "multiple_select = true ;"
              "multiple_select = false ;"
            ) ;_ end of if
            "width=31 ;"
            (if (> (length info-list) 26)
              "height= 26 ;"
              (strcat "height= " (itoa (+ 3 (length info-list))) ";")
            ) ;_ end of if
            "is_tab_stop = false ;"
            "key = \"info\";}"
            "ok_cancel;}"
      ) ;_ end of list
    ) ;_ end of mapcar
    (setq ret (close ret))
    (if (and (null (minusp (setq dcl_id (load_dialog fl))))
             (new_dialog "dwgru_msg" dcl_id)
        ) ;_ end and
      (progn (start_list "info")
             (mapcar 'add_list info-list)
             (end_list)
             (set_tile "info" "0")
             (setq ret "0")
             (action_tile "info" "(setq ret $value)")
             (action_tile "cancel" "(done_dialog 0)")
             (action_tile "accept" " (done_dialog 1)")
             (if (zerop (start_dialog))
               (setq ret nil)
               (setq
                 ret (mapcar (function (lambda (num) (nth num info-list)))
                             (read (strcat "(" ret ")"))
                     ) ;_ end mapcar
               ) ;_ end setq
             ) ;_ end if
             (unload_dialog dcl_id)
      ) ;_ end of progn
    ) ;_ end of if
    (vl-file-delete fl)
    ret
  ) ;_ end of defun
;;;
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(if (= (getvar "TILEMODE") 0)
  (progn
  (setq page_setups
         (loc:get_page_setup
           adoc
           '(lambda (x)
              (if (eq (vla-get-modeltype x) :vlax-false)
                (vla-get-name x)
                nil
              ) ;_ end of if
            ) ;_ end of lambda
         ) ;_ end of loc:get_page_setup
  ) ;_ end of setq
;;;_Change VVA
  (setq page_setups (vl-remove-if 'null page_setups))
;;;_Add VVA
  (if (and page_setups
           (setq selection (loc:dwgru-get-user-dcl
                             "Select Page Setups"
                             page_setups
                             nil
                           ) ;_ end of loc:dwgru-get-user-dcl
           ) ;_ end of setq
           (setq layouts (loc:dwgru-get-user-dcl
                           "Select Layouts with Shift or Ctrl"
                           (acad_strlsort (layoutlist))
                           t
                         ) ;_ end of loc:dwgru-get-user-dcl
           ) ;_ end of setq
           (setq plotcfg (vla-item (vla-get-plotconfigurations adoc)
                                   (car selection)
                         ) ;_ end of vla-item
           ) ;_ end of setq
      ) ;_ end of and
    (vlax-map-collection
      (vla-get-layouts adoc)
      '(lambda (x)
         (if (and (eq (vla-get-modeltype x) :vlax-false)
                  (member (vla-get-name x) layouts)
             ) ;_ end of and
           (vla-copyfrom x plotcfg)
         ) ;_ end of if
       ) ;_ end of lambda
    ) ;_ end of vlax-map-collection
    (alert (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
           "Нет именованных параметров листа\nСоздавать командой _plot"
           "The named setups of pages are absent\nCall _plot to do it"
           )
         )
  ) ;_ end of if
  )
  (alert (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
           "Нужно перейти в пространство листа"
           "Work in layout space"
           )
         )
  )
  (princ)
) ;_ end of defun
(princ "\nType CPSSL in command line")
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 23.04.2008 в 10:07. Причина: Добавлены сообщения
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 22.01.2008, 12:17
#5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,693
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Изменил архив в #1. Теперь vlx включает в себя команды CHANGE_PAGE_SETUPS и CPSSL
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.01.2008, 13:31
#6
Rascen


 
Регистрация: 22.04.2007
Москва
Сообщений: 36


Спасибо огромное. действительно необходимой lisp!
Rascen вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.03.2008, 19:00
#7
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,005


VVA, я так именно и хотел, первый варинт предложенный тобой
не умел делать выборку, теперь с этим справились!
но потестировав данный лисп я нашел трудность которая по прежднему
не дает пользоваться данной программой по полной:

Сначало расскажу ситуацию:

Приносят чертеж 100 лайаутов настроенных на другой плоттер,
а мне надобно их распечатать на своем А4 лазерном,
но листы там расположены как по вертикали так и по горизонтали,
для того чтобы воспользоваться выборкой я должен их просмотреть
и выписать какой лист повернут а какой нет, тогда смысла нет
потом осуществлять выборку покая буду перелистывать я могу и
принтер настроить...

Что хотелось бы поменять в алгоритме работы лиспа:

1. Создаю к примеру два Setup 1 и Setup 2
2. Setup 1 отвечает за листы горизонтальные Landscape, бумага к примеру А4 (зависит от моего принтера), масштаб по лайауту тоесть Fit to Paper, галочка в поле Center the plot.
3. Setup 2 отвечает за листы вертикальные Portrait, бумага к примеру А4 (зависит от моего принтера), масштаб по лайауту тоесть Fit to Paper, галочка в поле Center the plot.

Теперь самое интересное:


Из Setup 1 и Setup 2 создается Setup 3,
Setup 3 я применяю ко всем лайаутам,
и он распределяется так что, где в предыдущем
плоттере было настроено горизонтальный лист там
применяется Setup 1, а где вертикальный применяется
Setup 2, и формат настраивается под мой принтер
какой бы ни был на другом, т.е. если там формат А1, то под мой принтер
получается А4

Тоесть за 1 минуту мы переустанавливаем все настройки лайаутов
под свой принтер, а это просто и быстро с помощью такого лиспа

Примечание: Для русского автокада: горизонтальная читать АЛЬБОМНАЯ, а вертикальная читать КНИЖНАЯ



PS VVA, если интересно могу рассказать как я уже полгода выкручиваюсь из данной ситуации
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.04.2008, 05:32
#8
u77


 
Регистрация: 10.06.2005
Сообщений: 28


Можно пояснить ?, AutoCad2006(Eng) 2008(Rus)
вообще ни какой реакции на обе команды ? что не так делаю ?
Команда: _appload Успешно загружено файлов: 2.
Команда:
Type Change_page_setups or CPSSL in command line
Команда:
Type Change_page_setups or CPSSL in command line
Команда:
Команда: CPSSL
Команда:
Команда:
CPSSL
Команда:
u77 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.04.2008, 10:10
#9
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,693
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


u77,
1. Читать внимательно #2
2. Перейти в лист!!!
3. Создать именованный параметр страницы. См. рисунок в #2
4. Вызвать команду
Чтобы было понятней, добавил диалоговые сообщения в #4. Обнови и попробуй снова с учетом пп. 1-4
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.04.2008, 10:29
#10
u77


 
Регистрация: 10.06.2005
Сообщений: 28


VVA-СПАСИБО
Понял в чем проблема , в лист не перешел, а когда перешел на другом файле видно вид не настроил, все отлично работает !
Правда за ночь я и так все сделал (лучше бы потом за 5 минут долететь)
u77 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 17.12.2008, 08:37
#11
SkyLine

Проектировщик
 
Регистрация: 16.10.2007
Иркутск
Сообщений: 16


Всё клёва вообще, вот только у меня листы бывают и А3 и А4 и быбирать из списка где какие не вариант, сильно мутарно, вот если бы это было автоматически!!!!! Может кто может подправить данный лисп нужным образом???
SkyLine вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 17.12.2008, 09:14
#12
SkyLine

Проектировщик
 
Регистрация: 16.10.2007
Иркутск
Сообщений: 16


Или хотя бы сделать так, чтоб в списке выбора листов А3 были скажем расположены вверху, а А4 внизу... Или допустим добавить в этот список ещё один столбец, где у каждого листа был бы указан размер.
SkyLine вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 17.12.2008, 11:04
#13
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,970
Отправить сообщение для Red Nova с помощью Skype™


SkyLine,
Цитата:
Или хотя бы сделать так, чтоб в списке выбора листов А3 были скажем расположены вверху, а А4 внизу... Или допустим добавить в этот список ещё один столбец, где у каждого листа был бы указан размер.
Используй публиш там такое есть.
Цитата:
Всё клёва вообще, вот только у меня листы бывают и А3 и А4 и быбирать из списка где какие не вариант, сильно мутарно, вот если бы это было автоматически!!!!! Может кто может подправить данный лисп нужным образом???
А вот с этим я полностью согласен. Если VVA добавит эту возможность то лисп станет значительно удобнее, хотя и сейчас он лично для меня незаменим.
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 18.12.2008, 03:58
#14
SkyLine

Проектировщик
 
Регистрация: 16.10.2007
Иркутск
Сообщений: 16


VVA I need help!!!! Вся надежда на тебя!!!
SkyLine вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 18.12.2008, 04:02
#15
SkyLine

Проектировщик
 
Регистрация: 16.10.2007
Иркутск
Сообщений: 16


Цитата:
Сообщение от Red Nova Посмотреть сообщение
SkyLine,

Используй публиш там такое есть.
Red Nova, Я что-то несовсем понял, где в publish такая сортировка?
SkyLine вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 18.12.2008, 13:19
#16
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,970
Отправить сообщение для Red Nova с помощью Skype™


Для того чтобы это работало нужно чтобы каждый лист имел свой page setup, причем в названии page setup нужно указать и формат бумаги (чтобы сразу видно было, а также чтобы при желании сортировалось).
Вот к примеру мои файлы. Я тоже пользуюсь листами А4 и А3. Для каждого формата я имею два своих page setup-а, в сумме получается 4 штуки, вот они
А3 Canon
А4 Canon
А3 PDF
А4 PDF
Когда вызываю publish, то выходит таблица всех имеющихся листов с page setup-ами А3 Canon и А4 Canon (картинка-1)
Нажимаю на заголовок столбца с page setup-ами, и они сортируются по названию (картинка-2)
При помощи клавиши shift выбираю все листы А3 Canon и назначаю им page setup А3 PDF, с листами А4 тоже–самое (картинка-3)
Затем обратно сортирую листы (а названия листов у меня возрастают по очереди, и по этому сортируются) и печатаю (картинка-4)
Все.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.JPG
Просмотров: 692
Размер:	42.4 Кб
ID:	13705  Нажмите на изображение для увеличения
Название: 2.JPG
Просмотров: 421
Размер:	42.7 Кб
ID:	13706  Нажмите на изображение для увеличения
Название: 3.JPG
Просмотров: 372
Размер:	39.3 Кб
ID:	13707  Нажмите на изображение для увеличения
Название: 4.JPG
Просмотров: 395
Размер:	39.4 Кб
ID:	13708  
__________________
Блог
Red Nova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.12.2008, 04:18
#17
SkyLine

Проектировщик
 
Регистрация: 16.10.2007
Иркутск
Сообщений: 16


А ну да так можно, при условии первоначально правильного составленного dwg файла. У меня просто публиш выглядит так:



Какой из них А3, какой А4 непонятно, было бы клёво просто добавить столбец в прогу примерно так:





чтоб я сразу в ручную выделил, зажав контрол, все А4 или все А3.

А сейчас я залажу в модель и смотрю где какой лист, как и многие другие люди... Вот такой вот гимор...
SkyLine вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.02.2009, 09:51
#18
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 822


Друзья - зачем так сложно? Какой такой лисп Отправляйте всё в dwf, а потом печатайте с галочкой "Use dwf paper size" или "Choose paper source by DWF page size" (если у вас Design review)
Сергей Богатов вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 25.02.2009, 18:38
#19
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,693
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


SkyLine, Вариант CPSSL с показом назначенных форматов и ориентаций
Буква P означает Portrait, L - Landscape
Если по каким-либо причинам не удалось получить формат листа (отключен сетевой принтер или удален, а pc3 остался), то вместо формата будет отображаться ?
Код:
[Выделить все]
(defun c:CPSSL (/     adoc
  page_setups    dcl_id
  userclick    selection
  plotcfg     loc:get_page_setup
  loc:getSelectedItems
  loc:dwgru-get-user-dcl
        )
;;;
;;;posted whdjr
;;;http://www.theswamp.org/index.php?topic=12439.msg153420#msg153420
;;;Modifyed VVA 21.01.2008 http://dwg.ru/f/showthread.php?t=16792
;;Change Page Setups on Select Layout (CPSSL)
;;;  
  (defun loc:get_page_setup (doc func / lst)
    (vlax-map-collection
      (vla-get-plotconfigurations doc)
      '(lambda (x) (setq lst (cons ((eval func) x) lst)))
    ) ;_ end of vlax-map-collection
    (reverse lst)
  ) ;_ end of defun
;;;
  (defun loc:getSelectedItems (tilename AllItemsList / indexes)
    (if (setq indexes (get_tile tilename))
      (setq indexes (read (strcat "(" indexes ")"))
     indexes (mapcar '(lambda (n) (nth n AllItemsList))
       indexes
      ) ;_ end of mapcar
      ) ;_ end of setq
    ) ;_ end of if
    indexes
  ) ;_ end of defun
;;;
;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2008  DWGru Programmers Group
;;; *
;;; * loc:dwgru-get-user-dcl (Кандидат)
;;; *
;;; * Запрос значения у пользователя через диалоговое окно
;;; *
;;; *
;;; * 21/01/2008 Версия 0001. Редакция Владимир Азарко (VVA)
;;; ************************************************************************

  (defun loc:dwgru-get-user-dcl
  (zagl info-list multi / fl ret dcl_id msg layouts)
  ;|
* Запрос значения у пользователя через диалоговое окно
* Диалог формируется "налету"
* Параметры вызова:
    zagl - заголовок окна [String]
    info-list - список строковых значений[List of String]
    multi - t - разрешен множественный выбор, nil- нет
    
* Возвращает:
 Список выбранных строк или nil - отмена
* Пример
 (loc:dwgru-get-user-dcl "Укажите вариант" '("Первый" "Второй" "Третий") nil) ->("Первый") 
 (loc:dwgru-get-user-dcl "Укажите вариант" '("Первый" "Второй" "Третий") t) ->("Первый" "Второй") 
|;
    (if (null zagl)
      (setq zagl "Выбор")
    ) ;_ end if
    (setq fl (vl-filename-mktemp "dwgru" nil ".dcl"))
    (setq ret (open fl "w"))
    (mapcar
      '(lambda (x) (write-line x ret))
      (list "dwgru_msg : dialog { "
     (strcat "label=\"" zagl "\";")
     " :list_box {"
     "alignment=top ;"
     (if multi
       "multiple_select = true ;"
       "multiple_select = false ;"
     ) ;_ end of if
     "width=31 ;"
     (if (> (length info-list) 26)
       "height= 26 ;"
       (strcat "height= " (itoa (+ 3 (length info-list))) ";")
     ) ;_ end of if
     "is_tab_stop = false ;"
     "key = \"info\";}"
     "ok_cancel;}"
      ) ;_ end of list
    ) ;_ end of mapcar
    (setq ret (close ret))
    (if (and (null (minusp (setq dcl_id (load_dialog fl))))
      (new_dialog "dwgru_msg" dcl_id)
 ) ;_ end and
      (progn
 (start_list "info")
 (mapcar 'add_list info-list)
 (end_list)
 (set_tile "info" "0")
 (setq ret "0")
 (action_tile "info" "(setq ret $value)")
 (action_tile "cancel" "(done_dialog 0)")
 (action_tile "accept" " (done_dialog 1)")
 (if (zerop (start_dialog))
   (setq ret nil)
   (setq
     ret (mapcar (function (lambda (num) (nth num info-list)))
   (read (strcat "(" ret ")"))
  ) ;_ end mapcar
   ) ;_ end setq
 ) ;_ end if
 (unload_dialog dcl_id)
      ) ;_ end of progn
    ) ;_ end of if
    (vl-file-delete fl)
    ret
  ) ;_ end of defun
(defun loc:catch ( func  / ret)
  (if (VL-CATCH-ALL-ERROR-P (setq ret (vl-catch-all-apply
         '(lambda()(eval func)))))
    "?"
    ret
  )
  )
;;;
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq page_setups
  (loc:get_page_setup
    adoc
    '(lambda (x)
       (if (eq (vla-get-modeltype x) :vlax-false)
  (strcat
    (vla-get-name x)
    (if (= (loc:catch '(vla-get-CanonicalMediaName x)) "")
      " [Нет]"
      (strcat " [ "
       (loc:catch '(vla-GetLocaleMediaName x (vla-get-CanonicalMediaName x)))
        (if (zerop(vla-get-PlotRotation x)) " P" " L")
       " ]"
        )
      )
  )
  nil
       ) ;_ end of if
     ) ;_ end of lambda
  ) ;_ end of loc:get_page_setup
  ) ;_ end of setq
;;;_Change VVA
  (setq page_setups (vl-remove-if 'null page_setups))
;;;_Add VVA
  (if (and page_setups
    (setq selection (loc:dwgru-get-user-dcl
        "Select Page Setups"
        page_setups
        nil
      ) ;_ end of loc:dwgru-get-user-dcl
    ) ;_ end of setq
    (setq selection
    (mapcar '(lambda(x / l)(setq l (strlen x))
        (while (/= (substr x l 1) "[")
          (setq l (1- l)))
        (substr x 1 (- l 2)))
     selection
     )
   )
    (setq
      layouts (loc:dwgru-get-user-dcl
         "Select Layouts with Shift or Ctrl"
         (acad_strlsort
    (mapcar
      '(lambda (y / x)
         (setq x (vla-item (vla-get-Layouts adoc) y))
         (strcat
    y
    (if (= (loc:catch '(vla-get-CanonicalMediaName x)) "")
      " [Нет]"
      (strcat " [ "
       (loc:catch '(vla-GetLocaleMediaName x (vla-get-CanonicalMediaName x)))
       (if (zerop(vla-get-PlotRotation x)) " P" " L")
         " ]"
      )
    )
    
         )
       )
      (LAYOUTLIST)
    )
         )
         t
       ) ;_ end of loc:dwgru-get-user-dcl
    ) ;_ end of setq
    (setq layouts
    (mapcar '(lambda(x / l)(setq l (strlen x))
        (while (/= (substr x l 1) "[")
          (setq l (1- l)))
        (substr x 1 (- l 2)))
     layouts
     )
   )
    (setq plotcfg (vla-item (vla-get-plotconfigurations adoc)
       (car selection)
    ) ;_ end of vla-item
    ) ;_ end of setq
      ) ;_ end of and
    (vlax-map-collection
      (vla-get-layouts adoc)
      '(lambda (x)
  (if (and (eq (vla-get-modeltype x) :vlax-false)
    (member (vla-get-name x) layouts)
      ) ;_ end of and
    (vla-copyfrom x plotcfg)
  ) ;_ end of if
       ) ;_ end of lambda
    ) ;_ end of vlax-map-collection
  ) ;_ end of if
  (vl-cmdf "_.REGENALL")
  (princ)
) ;_ end of defun
(princ "\nType CPSSL in command line")
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 02.03.2009 в 11:20. Причина: Обработка отсутсвующих притеров (пост #27)
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.02.2009, 16:59
#20
dextron3

Фотограф
 
Регистрация: 01.01.2007
Алматы
Сообщений: 5,005


VVA, а можно чтобы еще и показывал Ландскайл и Портрейт, по мимо самого масштаба, вот бы было здорово.....
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Изменение настроек принтера в листе(листах)

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение настроек экрана olegg Программирование 17 19.10.2007 15:21
Изменение форматированного текста посредством lisp Tramp LISP 4 03.03.2006 11:28
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||