LAYOUTCREATEVIEWPORT – работает или нет?
В одном из чатов всплыла эта переменная с текстом примерно следующего содержания:
"переменную LAYOUTCREATEVIEWPORT выставляю в начале команды в 0. Программно созданные листы все-равно имеют видовой экран"
Полез проверять.
Пробую создать (стартовое значение переменной - 1):
1 2 3 4 5 6 7 | (defun t1 (/ sysvar layout) (setq sysvar (getvar "LAYOUTCREATEVIEWPORT")) (setvar "LAYOUTCREATEVIEWPORT" 0) (setq layout (vla-add (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) "qq")) (setvar "LAYOUTCREATEVIEWPORT" sysvar) layout ) ;_ end of defun |
Хм... Видовой экран на месте. А если вынести назначение переменной во внешнюю функцию?
1 2 3 4 5 6 7 8 9 10 11 12 | (defun t2 (/ sysvar layout) (setq sysvar (f1)) (setq layout (vla-add (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) "qq")) (setvar "LAYOUTCREATEVIEWPORT" sysvar) layout ) ;_ end of defun (defun f1 (/ sysvar) (setq sysvar (getvar "LAYOUTCREATEVIEWPORT")) (setvar "LAYOUTCREATEVIEWPORT" 0) sysvar ) ;_ end of defun |
Не, что сову об пень, что пнем по сове - ВЭ на месте.
А если попробовать командные методы (хоть я и не люблю их)?
1 2 3 4 5 6 7 | (defun t3 (/ sysvar layout) (setq sysvar (getvar "LAYOUTCREATEVIEWPORT")) (vl-cmdf "LAYOUTCREATEVIEWPORT" "_OFF") (setq layout (vla-add (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) "qq")) (setvar "LAYOUTCREATEVIEWPORT" sysvar) layout ) ;_ end of defun |
Все равно ВЭ никуда не девается.
Что еще? Ставить метки начала-конца отмены? Ну, во-первых, вопросы со вложенностью таких меток, а во-вторых, все равно не работает (ACAD2020x64). Похоже, что ответ другого участника чата: "Создать с экраном по умолчанию, а потом удалить тот, что создался" - чуть ли не единственный вариант.
2
3
(vla-put-LayoutCreateViewport Display :vlax-false) ; Отключение автоматического создания видового экрана
)
А Display - это
?
ага