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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Как изменить размер окна Autocad

LISP. Как изменить размер окна Autocad

Ответ
Поиск в этой теме
Непрочитано 25.03.2012, 10:12 #1
LISP. Как изменить размер окна Autocad
PDM
 
Регистрация: 25.03.2012
Сообщений: 12

На входе две координаты прямоугольной области в пространстве модели. Нужно уменьшить размер окна Autocad до размеров области. Масштаб изображения на экране монитора не должен изменятся. Монитор 1680х1050 точек. Окно за угол таскать уходит много времени, хотелось бы в одно нажатие клавиши. ACAD 2002, Win XP. Требуется только "ядро", а обычный lisp без "vla-" сам попробую победить.
Просмотров: 6840
 
Непрочитано 25.03.2012, 11:16
#2
gomer

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


На мониторе линейкой собираетесь измерять?
gomer вне форума  
 
Автор темы   Непрочитано 25.03.2012, 12:15
#3
PDM


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


Это для вставки рисунков (много) из ACAD в другие приложения. Вместо линейки у меня кнопка М1:1.
PDM вне форума  
 
Непрочитано 25.03.2012, 13:06
#4
gomer

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


зум экстентз и панель свойств тож ничего
gomer вне форума  
 
Автор темы   Непрочитано 25.03.2012, 16:05
#5
PDM


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


Понятно, спасибо, но мне не нужен весь чертеж. Грубо говоря, тыкаю две точки на поле чертежа, нажимаю волшебную кнопку, и окно ACAD уменьшается до этих двух точек. Затем "Copy" и т. д. А еще грубее: как через lisp изменить размер окна ACAD? После этого можно Zoom, Window. Здесь, похоже, в реестр надо лезть т.к. размерами окон занимается Windows. А в реестр чистым лиспом не пробъешся, нужно через vla- наверное. Да я и так обхожусь уже несколько лет, но нудное это дело. А здесь у вас хорошие мастера по lisp, подумал, может кто знает. Спасибо.
PDM вне форума  
 
Непрочитано 25.03.2012, 16:30
#6
gomer

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


Цитата:
Сообщение от PDM Посмотреть сообщение
Грубо говоря, тыкаю две точки на поле чертежа, нажимаю волшебную кнопку, и окно ACAD уменьшается до этих двух точек. Затем "Copy" и т. д. А еще грубее: как через lisp изменить размер окна ACAD? После этого можно Zoom, Window. Здесь, похоже, в реестр надо лезть т.к. размерами окон занимается Windows. А в реестр чистым лиспом не пробъешся, нужно через vla- наверное. Да я и так обхожусь уже несколько лет, но нудное это дело.
Во-первых, ваша задумка - идея фикс, имхо...
Во-вторых, (vla-put-width (vlax-get-acad-object) 600) (это если окно не развернуто) должно, по-идее, работать (2002 автокад мне так и не удалось запустить ни разу) и не надо бояться vla
В третьих, возможно, оформление документов в самом автокаде окажется менее мучительно, чем казалось, попробуйте
gomer вне форума  
 
Непрочитано 25.03.2012, 16:55
#7
Кулик Алексей aka kpblc
Moderator

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


Проще уж размер отображаемой области менять...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.03.2012, 23:50
#8
PDM


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


gomer, буду пробовать (vla-put-width...) как время будет. Для использования vla для связи с др. приложениями нужно владеть Visual Basic for App как я понял из примеров Полещука. А я им не владею. Про оформление документов в самом автокаде бы чуть подробнее или ссылку. Word 2003, Mathcad 11. Спасибо.

Кулик Алексей, изменение размера отображаемой области это то что надо. Можешь поподробнее или ссылку. Спасибо.

Последний раз редактировалось PDM, 26.03.2012 в 00:17. Причина: Отсутствие навыков работы на компьютере
PDM вне форума  
 
Непрочитано 26.03.2012, 00:44
#9
gomer

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


Через COM из лиспа можно добраться и до ворда и до маткада, собственно как и наоборот, тут проблем нет
Цитата:
Сообщение от PDM Посмотреть сообщение
Про оформление документов в самом автокаде бы чуть подробнее или ссылку.
Конечно автокад - не текстовый процессор, но текстовые документы при печати получаются ничуть не хуже, чем при печати из ворда
Ну и еще... что мешает печатать в файл изображения (jpg, png), настроив предварительно принтер
gomer вне форума  
 
Непрочитано 26.03.2012, 02:04
#10
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Код:
[Выделить все]
 (defun vk_GetPixelSize ()
    (/ (getvar "VIEWSIZE") (cadr (getvar "SCREENSIZE")))
)
(defun vk_GetMidPoint (p1 p2)
    (mapcar (function (lambda (e1 e2) (/ (+ e1 e2) 2.))) p1 p2)
)
(defun test (p1 p2 / adoc psize)
    (setq adoc	(vla-get-ActiveDocument (vlax-get-acad-object))
	  psize	(vk_GetPixelSize)
    )
    (mapcar (function (lambda (e1 e2 e3 e4)
			  (vlax-put-property
			      adoc
			      e3
			      (+ 1
				 (/ (abs (- e2 e1)) psize)
				 (- (vlax-get-property adoc e3) e4)
			      )
			  )
		      )
	    )
	    p1
	    p2
	    (list "WIDTH" "HEIGHT")
	    (getvar "SCREENSIZE")
    )
    (vla-ZoomCenter
	(vlax-get-acad-object)
	(vlax-3d-point (vk_GetMidPoint p1 p2))
	(getvar "VIEWSIZE")
    )
)
;|
(setq p1 (getpoint "\nCorner 1: ")
      p2 (getcorner p1 "\nCorner 2: ")
)
(test p1 p2)
|;
Vov.Ka вне форума  
 
Автор темы   Непрочитано 26.03.2012, 02:52
#11
PDM


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


gomer, это трудоемко.

Vov.ka, все работает, окно по размеру картинки. Проблема решена, большое спасибо. С кодом попытаюсь разобраться когда будет время.
PDM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Как изменить размер окна Autocad

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить размер текста во всех блоках с одинаковым имене red AutoCAD 78 28.03.2022 08:07
Lisp. Как адаптировать под AutoCAD 2010 программу, заточеную для AutoCad 2004? byackafoot LISP 25 30.09.2011 08:08
LISP для создания окна с разрезом стены и утеплителя. Scorpio_1986 LISP 11 30.06.2009 15:43
Autocad dbconnect Lisp игорёк LISP 6 12.05.2006 08:57
export в wmf или как поменять размер активного окна disintegrator Программирование 8 25.10.2005 12:01