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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp - не сохраняются созданные видовые экраны

Lisp - не сохраняются созданные видовые экраны

Ответ
Поиск в этой теме
Непрочитано 02.07.2012, 17:05 #1
Lisp - не сохраняются созданные видовые экраны
Psyakrev
 
Регистрация: 17.06.2010
Сообщений: 438

Преамбула - все чертежи находятся в модели (так принято в организации).
Для упрощения своей жизни написал программку, которая по выделяемым областям в модели создает новые листы (Layout), в которых в свою очередь создаются видовые экраны, настроенные на нужную область в модели, потом к листу автоматически применяется соответствующий готовый набор параметров листа с нужным форматом. Имеющиеся до этого листы удаляются.
После выполнения программы листы создаются, на них есть видовые экраны, установлены нужные наборы параметров листа, все замечательно, программа завершается без ошибок. Проблема в том, что если сразу после выполнения выйти с сохранением, то при новом открытии файла в листах не будет созданных видовых экранов. Если после выполнения переключиться на модель (программа после завершения работы остается на последнем созданном листе) и выйти с сохранением - в листе будет дефолтный видовой экран в слое 0 (в программе создаваемые видовые экраны перемещаются в Defpoints). Если перейти на модель, затем обратно на лист (чтобы выполнилась регенерация видового экрана) и выйти с сохранением - видовой экран сохранится. Применял после создания листа и видового экрана vla-update видового экрана и vla-regen документа - эффекта нет. Аналогичная программка, которая создает видовые экраны в существующих листах, работает без проблем (видовые экраны сохраняются и без ручной регенерации листа).
Подозреваю, что проблема возникает где-то при создании листа или видового экрана, но не могу понять где.
Autocad 2011 SP1

Функция, создающая видовой экран
Код:
[Выделить все]
 (defun create-viewport (p1 p2 / p1x p1y p2x p2y vp_h vp_w vp)
    (setq p1x (car p1) p1y (cadr p1) p2x (car p2) p2y (cadr p2)
      vp_h (abs (- p1y p2y)) vp_w (abs (- p1x p2x))
      vp (vla-AddPViewport (rir-space) (vlax-3d-point (list (/ vp_w 2) (/ vp_h 2))) vp_w vp_h))
    (vla-display vp :vlax-true)
    (vla-put-mspace *acad-doc :vlax-true)
    (vla-put-activepviewport *acad-doc vp)
    (vla-zoomcenter *acad-app (vlax-3d-point (list (/ (+ p1x p2x) 2) (/ (+ p1y p2y) 2))) 1.)
    (vla-put-mspace *acad-doc :vlax-false)
    (vla-put-standardscale vp acVpCustomScale)
    (vla-put-CustomScale vp 1.0)
    (rir-createlayer "Defpoints")
    (vla-put-Layer vp "Defpoints")
    (vla-regen *acad-doc acActiveViewport)
    (vla-put-DisplayLocked vp :vlax-true)
    )
Функция, создающая лист
Код:
[Выделить все]
 (defun create-layout (name / layout_list)
    (setq layout_list (rir-layoutlist))
    (if (null name) (setq name (last layout_list)))
    (while (member name layout_list) (setq name (incsuff name 1 t)))
    (vla-add *acad-layouts name)
    (setvar 'ctab name)
    (vlax-for obj (rir-space) (vla-delete obj))
    (eval name)
    )

Вложения
Тип файла: lsp cvp.lsp (11.1 Кб, 57 просмотров)


Последний раз редактировалось Psyakrev, 02.07.2012 в 18:05.
Просмотров: 2645
 
Автор темы   Непрочитано 03.07.2012, 20:53
#2
Psyakrev


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


Дело было в строчке
Код:
[Выделить все]
 (vlax-for obj (rir-space) (vla-delete obj))
Как оказалось, даже в абсолютно пустом листе есть невидимый PViewport с dxf-кодом 69 (номер видового экрана), равным 1, удаление которого и вызывало проблемы.

Последний раз редактировалось Psyakrev, 03.07.2012 в 21:40.
Psyakrev вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp - не сохраняются созданные видовые экраны

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видовые экраны. Присвоение разных стилей печати. tarasn3230 AutoCAD 8 22.01.2018 13:27
Все видовые экраны в hidden. klopius Программирование 15 18.01.2012 16:46
Проблема с весом линий при печати векторного чертежа через видовые экраны, есть решение? Кравченко Александр AutoCAD 3 18.05.2011 16:14
Панель - Видовые экраны Ztn AutoCAD 5 25.02.2009 00:40