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

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

Все видовые экраны в hidden.

Ответ
Поиск в этой теме
Непрочитано 28.11.2011, 15:01 #1
Все видовые экраны в hidden.
klopius
 
Moscow
Регистрация: 23.09.2006
Сообщений: 123

Уважаемые лисповоды и программеры !!
Нужен лисп или макрос который переводит все видовые экраны в открытом файле на всех листах в режим hidden.
...
Просто надоел баг какойто.
Ставишь скрытие на видовой экран, печатаешь все хорошо. Затем входишь опять в видовой экран сдвигаешь чего либо печатаешь и он уже не в хиддене а обычный.
Предпросмотр не предлагать печатаю паблишем и смотреть каждый лист помру...
...
имею автосад 2011 механиКАЛЛ.
...
спасибо.
__________________
Спасибо что зашли !
Просмотров: 4636
 
Непрочитано 28.11.2011, 15:17
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Что значит "hidden"? Стиль печати hidden или выключить ВЭ?
В общем, смотри по коду - что тебе надо, то и оставляй:
Код:
[Выделить все]
 (vl-load-com)

(defun make-hide (/ adoc)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (vlax-for layout (vla-get-layouts adoc)
    (vlax-for ent (vla-get-block layout)
      (if (wcmatch (strcase (vla-get-objectname ent) "*VIEWPORT*"))
        (progn
          (vl-catch-all-apply
            (function
              (lambda ()
                (vla-put-viewporton ent :vlax-false) ; выключение ВЭ
                (vla-put-shadeplot ent 2) ; hidden
                ) ;_ end of lambda
              ) ;_ end of function
            ) ;_ end of vl-catch-all-apply
          ) ;_ end of progn
        ) ;_ end of if
      ) ;_ end of vlax-for
    ) ;_ end of vlax-for
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 28.11.2011 в 15:22.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.11.2011, 15:44
#3
klopius


 
Регистрация: 23.09.2006
Moscow
Сообщений: 123


Имел в виду стиль печати. А не отключение экранов.
Лисп попробую....
Спасибо за ответ..
__________________
Спасибо что зашли !
klopius вне форума  
 
Непрочитано 28.11.2011, 17:01
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Тогда из кода удали строку (vla-put-viewporton ent :vlax-false) ; выключение ВЭ
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.11.2011, 15:24
#5
klopius


 
Регистрация: 23.09.2006
Moscow
Сообщений: 123


Блин... я стара и глуповата, где же здесь мои котята?
..
1 строку (12) удалил
2 закинул в тхт
3 переименовал в лсп
4 закинул в папку с кадом
5 загрузил в автолисп
6 в командной стороке вбиваю: make-hide
7 неизвестная команда "MAKE-HIDE". Для вызова справки нажмите F1.
....
Где я оступился?
__________________
Спасибо что зашли !
klopius вне форума  
 
Непрочитано 29.11.2011, 15:44
#6
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


klopius, make-hide написано в виде функции, а не команды, и вызыват ее надо как функцию, т.е. со скобками (make-hide). Или к коде исправь
Код:
[Выделить все]
(defun make-hide (/ adoc)
...
на это
Код:
[Выделить все]
(defun c:make-hide (/ adoc)
...
Тогда make-hide будет комадной и можно будет вызывть ее без скобок, просто make-hide
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 29.11.2011, 15:47
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


klopius, если будет время и желание: http://dwg.ru/pub/9
Много лиспов публикуется именно в виде функций... А то и с параметрами
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.11.2011, 07:50
#8
klopius


 
Регистрация: 23.09.2006
Moscow
Сообщений: 123


Спасибо попробую.
Про функцию первый раз слышу, на столько не углублялся )))
Я не матерый старик-лисповик )))
Но многое побрал с этого сайта.
///
Вот попробывал
ни чего не выходит
может надо не только 12-ю строку удалить ?
запускал и функцией и командой...
///
говорят _$
ошика: слишком много аргументов: (IF (WCMATCH (STRCASE (vla-get-ObjectName ENT) "*VIEWPORT*")) 8 (PROGN 9 (VL-CATCH-ALL-APPLY 10 (FUNCTION 11 (LAMBDA nil 13 (vla-put-ShadePlot ENT 2) 14) 15) 16) 17) 18)
__________________
Спасибо что зашли !

Последний раз редактировалось klopius, 30.11.2011 в 18:57.
klopius вне форума  
 
Непрочитано 04.12.2011, 21:06
#9
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Капитан очевидность предполагает, что Вы скопировали сурс прямо с номерами строк!
5hev вне форума  
 
Непрочитано 04.12.2011, 23:58
#10
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


я бы назвал команду vphide и обязательно написАл обратную - vpshow на основе предложенной функции, только с булевым аргументом
gomer вне форума  
 
Автор темы   Непрочитано 20.12.2011, 11:22
#11
klopius


 
Регистрация: 23.09.2006
Moscow
Сообщений: 123


опять я
оставил
Код:
[Выделить все]
 (vl-load-com)
	 
	(defun make-hide (/ adoc)
	  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
	  (vlax-for layout (vla-get-layouts adoc)
	    (vlax-for ent (vla-get-block layout)
	      (if (wcmatch (strcase (vla-get-objectname ent) "*VIEWPORT*"))
	        (progn
	          (vl-catch-all-apply
	            (function
	              (lambda ()
	                (vla-put-shadeplot ent 2) ; hidden
	                ) ;_ end of lambda
	              ) ;_ end of function
	            ) ;_ end of vl-catch-all-apply
	          ) ;_ end of progn
	        ) ;_ end of if
	      ) ;_ end of vlax-for
	    ) ;_ end of vlax-for
	  (vla-endundomark adoc)
	  (princ)
	  ) ;_ end of defun
говорят:
Команда: (make-hide)
; ошибка: слишком мало аргументов
...
начинаю плакать
...
в текстовый файл вставлял без нумерации строк
__________________
Спасибо что зашли !
klopius вне форума  
 
Непрочитано 20.12.2011, 11:43
#12
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Проверяй еще раз - код рабочий.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 20.12.2011, 15:00
#13
klopius


 
Регистрация: 23.09.2006
Moscow
Сообщений: 123


уф... мужчины
имею:
Код:
[Выделить все]
 (vl-load-com)
	 
	(defun make-hide (/ adoc)
	  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
	  (vlax-for layout (vla-get-layouts adoc)
	    (vlax-for ent (vla-get-block layout)
	      (if (wcmatch (strcase (vla-get-objectname ent) "*VIEWPORT*"))
	        (progn
	          (vl-catch-all-apply
	            (function
	              (lambda ()	                
	                (vla-put-shadeplot ent 2) ; hidden
	                ) ;_ end of lambda
	              ) ;_ end of function
	            ) ;_ end of vl-catch-all-apply
	          ) ;_ end of progn
	        ) ;_ end of if
	      ) ;_ end of vlax-for
	    ) ;_ end of vlax-for
	  (vla-endundomark adoc)
	  (princ)
	  ) ;_ end of defun
подгружаю в кад (2011 механикал) с расширением .lsp
в ком. строке пишу: (make-hide)
получаю: слишком мало аргументов
...
в авто лиспе
; предупреждение: слишком мало аргументов: (WCMATCH (STRCASE ( ... ) "*VIEWPORT*"))
...
где моя собака тут порылась?
__________________
Спасибо что зашли !
klopius вне форума  
 
Непрочитано 20.12.2011, 15:05
#14
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Байда какая-то с твоим компьютером - отключи все другие лиспы (может, какой умник, стандартную функцию переправил).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 20.12.2011, 16:34
1 | #15
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


klopius,
Мне кажется вместо
Код:
[Выделить все]
(if (wcmatch (strcase (vla-get-objectname ent) "*VIEWPORT*"))
Должно быть

Код:
[Выделить все]
(if (wcmatch (strcase (vla-get-objectname ent)) "*VIEWPORT*")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 18.01.2012, 16:46
#16
klopius


 
Регистрация: 23.09.2006
Moscow
Сообщений: 123


VVA
спасибо.
держи плюсик к карме )))
__________________
Спасибо что зашли !
klopius вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Все видовые экраны в hidden.



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