| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

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

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

Ответ
Поиск в этой теме
Непрочитано 21.01.2008, 12:19 3 | #1
LISP. Изменение настроек принтера в листе(листах)
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,990

Команда опубликована 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_setup20191115.LSP (15.2 Кб, 626 просмотров)

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

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

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


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

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


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

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для 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,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


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


 
Сообщений: n/a


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

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


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
Сообщений: 31


Можно пояснить ?, 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,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


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


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


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,980
Отправить сообщение для 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,980
Отправить сообщение для 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
Просмотров: 853
Размер:	42.4 Кб
ID:	13705  Нажмите на изображение для увеличения
Название: 2.JPG
Просмотров: 551
Размер:	42.7 Кб
ID:	13706  Нажмите на изображение для увеличения
Название: 3.JPG
Просмотров: 456
Размер:	39.3 Кб
ID:	13707  Нажмите на изображение для увеличения
Название: 4.JPG
Просмотров: 467
Размер:	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
Сообщений: 825


Друзья - зачем так сложно? Какой такой лисп Отправляйте всё в 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,990
<phrase 1= Отправить сообщение для 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,143


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