NANOCAD ШОУ
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

LISP. Создание листов и видовых экранов на них

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 21.08.2015, 13:33 8 | 1
LISP. Создание листов и видовых экранов на них
Andrey_13
 
Инженер-проектировщик РЗА, ПА, ВК
 
Екатеринбург
Регистрация: 06.02.2014
Сообщений: 31

Andrey_13 вне форума Вставить имя

Вызов командой "_AL".
Указать слой с рамками чертежей (рамки выполнить в виде прямоугольников либо в виде блоков). Программа создаёт листы с видовыми экранами, совпадающими c рамками листов.
Программа нумерует листы по порядку следования рамок в одну строку или в один столбец (либо слева направо, либо сверху вниз). При расположении рамок матрицей - листы будут созданы, но нумерация вкладок потеряет упорядоченность.
Обновление (от старых к новым):
- предусмотрена установка параметров листов (установка принтера DWG to PDF.pc3, подбор ближайших стандартных форматов (A0,1,2,3,4), таблица стилей печати monochrome);
- убрано слово "Лист" из наименования листов;
- для нестандартных форматов листов устанавливается пустое устройство печати;
- улучшение для размещающих рамки форматов в пространстве модели вертикально;
- вместо ввода имени слоя с рамками определение слоя указанием объекта;
- предусмотрено блокирование создаваемых видовых экранов;
- предусмотрен ввод масштаба;
- исправлено завершение программы при пустом выборе объекта для определения слоя с форматами;
- исправлены мелкие ошибки, предусмотрен ввод номера первого листа при работе с удалением существующих листов;
- предусмотрено зумирование создаваемых листов, команда вызова "_AddLay" в целях ускорения набора сокращена до "_AL".
----------------------------
Выложена дополнительная программа создания группы видовых экранов в пространстве листа AVP.lsp. Выход из программы клавишей Esc.
Обновление:
- расширены пределы указания масштабов видовых экранов;
- показана рамка видового экрана при вставке.

Вложения
Тип файла: lsp AVP.LSP (2.9 Кб, 879 просмотров)
Тип файла: lsp AddLay.LSP (12.6 Кб, 936 просмотров)


Последний раз редактировалось Andrey_13, 02.09.2015 в 08:55.
Просмотров: 38297
 
Непрочитано 04.09.2015, 00:06 Andrey_13
#61
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 789
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Не знаю стоит ли, но только что столкнулся в чужих чертежах с проблемой, многие разбрасывают аннотативный текст , даже не подозревая что он аннотативный.

Пожелание (вопрос неоднозначный - обсуждается):
устанавливать ANNOALLVISIBLE=1 для вкладок листов,
либо делать запрос (чего не хотелось бы),
либо добавить описание переменной в шапку темы для добавления желающими в макрос запуска.

Чужие чертежи - только что наткнулся, в модели установлен масштаб 1:1 (обозван он 1:1000), шифр разбросан многострочным аннотативным текстом, ВЭ созданы с масштабом (1:1 и обозван он в списке 1:1). ВЭ создавались не вашей программой.

Но при ANNOALLVISIBLE=0, при котором создавались ВЭ, шифр через ВЭ не виден и не печатается, до установки ANNOALLVISIBLE=1 для каждой вкладки листа.


Скрытие или отображение аннотативных объектов, не поддерживающих текущего аннотативного масштаба.
Возможные значения:
0 - Отображаются только аннотативные объекты, поддерживающие текущий аннотативный масштаб
1 - Отображаются все аннотативные объекты

Значение переменной ANNOALLVISIBLE сохраняется отдельно для пространства модели и каждого листа.


http://forum.dwg.ru/showthread.php?t=29436

Вот ведь ... чем же теперь разом всем вкладкам ANNOALLVISIBLE=1 назначить чтоб листы не пересоздавать их таки 56 штучек.

Просто убрал свойство: аннотативность - да, для всех многострочных текстов, т.к. она была назначена не через стиль, то пришлось делать выборку, таких текстов.

Данную фичу (аннотативность) используют единицы, а вот пропажа размеров, текстов, и других объектов поддерживающих аннотативность (через стиль, или как свойство объекта) отследить сложно,
потому ИМХО ANNOALLVISIBLE=1 для вкладок листов нужно устанавливать программно, с предупреждением в шапке темы (можно указать какие строки закоментировать при желании не менять эту переменную).
В этом случае и лишнего запроса нет, и переделать под аннотативность можно.
Миниатюры
Нажмите на изображение для увеличения
Название: 2015-09-04__ TC71-PC__ 12.11.27 AM.png
Просмотров: 74
Размер:	8.4 Кб
ID:	156292  
__________________
tc71

Последний раз редактировалось perpetule, 04.09.2015 в 09:33.
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.09.2015, 16:30
#62
Vetinj


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


AVP.LSP При вставки ВЭ у предыдущего слетает видимость изображения, при дальнейшей работе вставляется пустой ВЭ. Переменная MAXACTVP-64, ВЭ включен.
В чем может быть причина?
Vetinj вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 16.09.2015, 12:30
#63
betonolom


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


Пользуюсь AVP.LSP, огромное спасибо разработчикам.
Немного исправил для своих нужд:
(if (not Scale) (setq Scale (getvar "USERI2")))
Теперь когда необходимо вставить на лист огромное число узлов конструкций в масштабе 1:20, я присваиваю USERI2 значение 20, масштабы при этом устанавливаются по умолчанию 1:20.

Теперь о проблемке: использую лисп автоматического переноса объектов на слои http://forum.dwg.ru/showpost.php?p=58664&postcount=25
в который добавил следующее: ((wcmatch thecommandstart "*VPORTS*") ;_Если выполняется команда *VPORTS
(setvar "clayer" (Layer? "КР_П_01_ВЭ"))

Видовые экраны, которые созданы в AVP.LSP при этом не переходят в нужный слой.
Подскажите как подправить AVP.LSP или лисп автоматического переноса, чтобы видовые экраны переходили на нужный слой.
Спасибо.
betonolom вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.09.2015, 12:40
1 | #64
Andrey_13

Инженер-проектировщик РЗА, ПА, ВК
 
Регистрация: 06.02.2014
Екатеринбург
Сообщений: 31


Цитата:
Сообщение от Vetinj Посмотреть сообщение
В чем может быть причина?
По вашей проблеме у меня, к сожалению, нет информации.
Цитата:
Сообщение от betonolom Посмотреть сообщение
Подскажите как подправить AVP.LSP или лисп автоматического переноса, чтобы видовые экраны переходили на нужный слой.
В конце программы AVP.LSP после строки
Код:
[Выделить все]
 (vla-put-CustomScale Viewport (/ (float 1) (float Scale)))
добавьте строку
Код:
[Выделить все]
 (vla-put-Layer Viewport "КР_П_01_ВЭ")
Andrey_13 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.10.2015, 17:39
#65
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 789
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Надеюсь не offtop
Сборник ссылок на виртуальные Pdf принтера / конвертеры с упоминанием их платности / бесплатности и локализации
http://kompazbuka.ru/office/text-converters

P.S. Добавлен PDF reDirect, дальнейшие добавления виртуальных PDF - > пишем в ЛС, дабы не размазывать тему!
Nike - спасибо за ссылку!
Вложения
Тип файла: pdf Конвертеры-документов-2015-10-06--v002.pdf (280.7 Кб, 47 просмотров)
Тип файла: docx Конвертеры-документов-2015-10-06--v002.docx (29.9 Кб, 23 просмотров)
__________________
tc71

Последний раз редактировалось perpetule, 06.10.2015 в 09:14.
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 05.10.2015, 17:52
#66
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,533


perpetule, "PDF reDirect" забыли.
Nike вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 13.10.2015, 16:33
#67
betonolom


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


Цитата:
Сообщение от perpetule Посмотреть сообщение
Не знаю стоит ли, но только что столкнулся в чужих чертежах с проблемой, многие разбрасывают аннотативный текст , даже не подозревая что он аннотативный.
....
А у меня другая проблема: при использовании AVP.LSP видовые экраны создаются с масштабом аннотаций равным 1:1, и поэтому даже если масштаб аннотаций текстов и размеров в модели совпадает с масштабом, устанавливаемом при запросе лиспа, то в видовом экране они не отображаются (масштаб аннотаций в модели не совпадает с масштабом аннотаций видового экрана).
Подскажите пожалуйста, как откорректировать лисп, чтоб масштаб аннотаций видового экрана устанавливался равным масштабу видового экрана?
betonolom вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.10.2015, 12:05
1 | #68
Poker face


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


Привет всем. Новичок на форуме и в лиспе. По работе понадобился инструмент для автоматического формирования листов. Скачал addlay, попробовал, некоторые моменты подправил под себя, нашел 2 ошибки. По ошибкам:
1) строка (vla-put-Name (vla-Item Layouts 1) (itoa FirstSheet)) ; Переименование первого листа вызывает ошибку на английской версии, т.к. похоже для английской версии vla-Item Layouts 0 является List1 , а vla-Item Layouts 1 - model. В отличие от русской где все наоборот.
Переделал этот момент, также переделал строку (setq Layout (vla-item Layouts 0)) по той же причине, хотя она отрабатывала корректно после переименования листа.
2) Цикл с проверкой на совпадение листов при выполнении условия совпадения становится бесконечным, поправил это.
По переделке под себя. Надеюсь автор не обидится на подобное надругательство над программой. Ну и т.к. в лиспе я новичок возможны ошибки и огрехи в добавлениях. Тут надеюсь на опытных форумчан, возможно поправят или дадут добрый совет.
Что именно поменял:
1) задал слой для рамок по умолчанию
2) добавил возможность выбора нескольких наборов листов по горизонтали либо вертикали
3) добавил выбор форматов для набора новых листов А4/А3/А2/А1/Масштаб, форматы А4 и А3 вписываются в область печати принтера независимо от размера вьюпорта, для форматов А2 и А1 масштаб установлен 1:1, при выборе Масштаб идет запрос масштаба из оригинального Addlay.
4) добавил выбор файла настроек принтера и выбор стиля ctb для формируемых листов
5) добавил обработку выбора мелких объектов и взорванных рамок с сообщением и выходом
6) добавил проверку регенерации листов и установку переменной LAYOUTREGENCTL в 0
7) убрал выбор формата по площади, т.к. в моем случае формат листа задается вручную
Вложения
Тип файла: lsp AddLayforDwgru.LSP (17.8 Кб, 77 просмотров)
Poker face вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2015, 09:23
#69
Kserg_nn


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


Добрый день. Спасибо за полезный лисп.
Если можно то внесите небольшое изменение
Суть. Есть планы линейных объектом, на протяжении трассы расставляются форматки, соответственно не горизонтально, а под разными углами, вдоль самой трассы.
Программа определяет и создает листы и видовые экраны, НО видовой экран на этом участке остается горизонтальным. Пожалуйста сделайте так, чтобы и форматка и видовой экран были вместе одинаково ориентированы по горизонтали на листе.
Еще маленький вопрос. Где и что добавить в лиспе чтобы по умолчанию видовые экраны сохранялись в слое "ВЭ" и этот слой был не печатный.
Спасибо
Вложения
Тип файла: dwg
DWG 2010
Чертеж1.dwg (76.4 Кб, 648 просмотров)
Kserg_nn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.11.2015, 13:47
#70
Poker face


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


Небольшим изменением тут не обойтись. Стороны видового экрана параллельны осям мировых координат. Могу посоветовать ставить форматку на плане горизонтально/вертикально, а уже потом зайдя в модель через видовой экран (не забудьте разблокировать вид в свойствах видового экрана) поворачивать как надо и менять ПСК. Со слоем проще, в лисп добавлять ничего не надо, видовые экраны создаются в текущем слое, соответственно если в чертеже есть слой ВЭ и он непечатаемый, то нужно просто сделать его текущим перед запуском лиспа.
Poker face вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.11.2015, 16:13
#71
Kserg_nn


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


Цитата:
Сообщение от Poker face Посмотреть сообщение
Небольшим изменением тут не обойтись. Стороны видового экрана параллельны осям мировых координат. Могу посоветовать ставить форматку на плане горизонтально/вертикально, а уже потом зайдя в модель через видовой экран (не забудьте разблокировать вид в свойствах видового экрана) поворачивать как надо и менять ПСК. Со слоем проще, в лисп добавлять ничего не надо, видовые экраны создаются в текущем слое, соответственно если в чертеже есть слой ВЭ и он непечатаемый, то нужно просто сделать его текущим перед запуском лиспа.
как по вернуть экран я знаю, но это все руками, теряется весь смысл автоматизации, поэтому хотелось бы это видеть программно (есть подобный лисп, но он привязан к шаблонам и работает только до 2012 версии + с ним есть ряд неудобств)
по поводу ВЭ.
хотелось бы это сразу чтобы в лиспе было прописано, чтобы с самого начала слой устанавливался нужного имени или создавался нужного имени. Так как этим лиспом пользуются разные люди, каждый раз контролировать какой слой текущий не каждый будет да и не нужно это.
Kserg_nn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 27.11.2015, 09:20
#72
freese

ingénieur
 
Регистрация: 21.07.2008
Сообщений: 702


Цитата:
Сообщение от Kserg_nn Посмотреть сообщение
как по вернуть экран я знаю, но это все руками, теряется весь смысл автоматизации, поэтому хотелось бы это видеть программно (есть подобный лисп, но он привязан к шаблонам и работает только до 2012 версии + с ним есть ряд неудобств)
по поводу ВЭ.
хотелось бы это сразу чтобы в лиспе было прописано, чтобы с самого начала слой устанавливался нужного имени или создавался нужного имени. Так как этим лиспом пользуются разные люди, каждый раз контролировать какой слой текущий не каждый будет да и не нужно это.
http://forum.dwg.ru/showthread.php?t=83750 - прототип, с вашей задачей справится
freese вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 10.12.2015, 14:24
#73
Kserg_nn


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


Цитата:
Сообщение от freese Посмотреть сообщение
http://forum.dwg.ru/showthread.php?t=83750 - прототип, с вашей задачей справится
не подходит или что то не так делаю
по повернутым форматкам нельзя ничего сделать, не саму форматку в правильную рамку определить, ни видовой экран по форматке сделать ((
Kserg_nn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 10.12.2015, 16:21
#74
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 789
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Цитата:
прототип, с вашей задачей справится
Такового на форуме нет, есть стандартный набор действий, не самый быстый, который позволит нарезать трассы.

_Chspace

_-vports _o
Миниатюры
Нажмите на изображение для увеличения
Название: 2015-12-10 - 16.16.04---MyImgur---модель--.png
Просмотров: 50
Размер:	9.9 Кб
ID:	162052  Нажмите на изображение для увеличения
Название: 2015-12-10 - 16.16.43---MyImgur---лист--.png
Просмотров: 35
Размер:	5.1 Кб
ID:	162053  Нажмите на изображение для увеличения
Название: 2015-12-10 - 16.17.54---MyImgur---лист--.png
Просмотров: 58
Размер:	13.1 Кб
ID:	162054  Нажмите на изображение для увеличения
Название: 2015-12-10 - 16.18.42---MyImgur---лист--в-модель-с-чуть сбитым-масштабом--.png
Просмотров: 35
Размер:	9.1 Кб
ID:	162055  
__________________
tc71
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.02.2016, 07:10
#75
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 345
Отправить сообщение для Vladimir_Sergeevich с помощью ICQ Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


AddLay отличная программа, сделал несколько изменений под себя.
У нас принято печатать рамкой для этого:
1. Перед назначением метода печати рамкой надо эту рамку задать
Код:
[Выделить все]
 ;;; Установка параметров печати
    ;;(vla-put-StyleSheet Layout "monochrome.ctb") ; Установка таблицы стилей печати не надо монохрома!
    (vla-SetWindowToPlot Layout ;;;задаем рамку для печати
		(vlax-safearray-fill 
			(vlax-make-safearray vlax-vbDouble '(0 . 1))
			'(0 0)
		)
		(vlax-safearray-fill 
			(vlax-make-safearray vlax-vbDouble '(0 . 1))
			(list ViewportWidth ViewportHight)
		)
	)
	(vla-put-PlotType Layout 4) ;; Установки области печати "Лист"(5) "рамка"(4)

2.После задания области печати и выбора формата подправить единицы и центровку (перед зумированием)
По крайней мере на том чертеже, где тестил, по умолчанию выставлялись дюймы
Код:
[Выделить все]
 	(vla-put-PaperUnits Layout 1) ;;миллиметры
	(vla-put-CenterPlot Layout :vlax-true) ;;центровка


и поменял листы на "ISO_expand_A4_(297.00_x_210.00_MM)" и тому подобные, думаю можно будет и неформат позже дописать туда же
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.02.2016, 17:12
#76
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 532


betonolom, попробуйте после строчки
Код:
[Выделить все]
 (vla-put-mspace ActiveDocument :vlax-true)
вставить строчку
Код:
[Выделить все]
 (setvar "cannoscale" (strcat "1:" (rtos Scale 2 0)))
Должно подходить и для addlay.lsp
kacugu вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 04.04.2016, 11:19
#77
KEHT


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


Цитата:
Сообщение от Vetinj Посмотреть сообщение
AVP.LSP При вставки ВЭ у предыдущего слетает видимость изображения, при дальнейшей работе вставляется пустой ВЭ. Переменная MAXACTVP-64, ВЭ включен.
В чем может быть причина?
Таже проблема) игрался лиспом настраивал под себя, добавлял удалял, добавлял удалял видовые экраны и бац стали выключаться, хотя их на листе 5-6. Думаю удаленные ВЭ не чистяться на листе при удалении...

----- добавлено через ~55 мин. -----
(vla-zoomcenter Application (vlax-3d-point (list (/ (+ Point1x Point2x) 2) (/ (+ Point1y Point2y) 2))) 1.0) Ошибка в этой строчке иногда сбивается центровка...
KEHT вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.04.2016, 17:57
#78
Segey.K


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


Цитата:
Сообщение от Andrey_13 Посмотреть сообщение
По вашей проблеме
Андрей подскажи пожалуйста куда и что нужно дописать в коде AddLay.LSP, чтобы при создании листа переменная PSLTSCALE была = 0, по умолчанию PSLTSCALE=1. Очень нужно. Заранее спасибо.
Segey.K вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 21.04.2016, 06:40
#79
Andrey_13

Инженер-проектировщик РЗА, ПА, ВК
 
Регистрация: 06.02.2014
Екатеринбург
Сообщений: 31


Цитата:
Сообщение от Segey.K Посмотреть сообщение
Андрей подскажи пожалуйста куда и что нужно дописать в коде AddLay.LSP, чтобы при создании листа переменная PSLTSCALE была = 0, по умолчанию PSLTSCALE=1. Очень нужно. Заранее спасибо.
Посмотрите во вложении.
Вложения
Тип файла: lsp AddLay Segey.K.LSP (12.7 Кб, 27 просмотров)
Andrey_13 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 31.05.2016, 23:35
#80
KEHT


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


Цитата:
Сообщение от KEHT Посмотреть сообщение
Таже проблема) игрался лиспом настраивал под себя, добавлял удалял, добавлял удалял видовые экраны и бац стали выключаться, хотя их на листе 5-6. Думаю удаленные ВЭ не чистяться на листе при удалении...

----- добавлено через ~55 мин. -----
(vla-zoomcenter Application (vlax-3d-point (list (/ (+ Point1x Point2x) 2) (/ (+ Point1y Point2y) 2))) 1.0) Ошибка в этой строчке иногда сбивается центровка...
Отвечаю Vetinj и самому себе. Проблема была в двух строчках, Когда рисовался видовой экран, должна была видна быть точка 0,0 (начало координат). Поэтому поправил код так:
Код:
[Выделить все]
;;; Создание группы видовых экранов в одной вкладке листа
(defun C:AVP (/
	      Application
	      ActiveDocument
	      CenterPointViewport
	      FrameHeight
	      FrameWidth
	      LayoutName
	      PaperSpace
	      Point1
	      Point2
	      Point1x
	      Point1y
	      Point2x
	      Point2y
	      Scale
	      Viewport
	      ViewportHeight
	      ViewportWidth	      
		 )
  (vl-load-com) ; Загрузка функций ActiveX
  (setq Application (vlax-get-acad-object) ; Указатель приложения
	ActiveDocument (vla-get-ActiveDocument Application) ; Указатель активного документа
	PaperSpace (vla-get-PaperSpace ActiveDocument) ; Указатель пространства листа
	)
  (if (= (getvar "CTAB") "Model")
    (progn
      (alert "Перейдите в лист назначения.") ; Предупреждение о переходе во вкладку листа
      (quit)
      )
    (setq LayoutName (getvar "CTAB")) ; Сохранение имени листа
    )
  (while T
    (setvar "CTAB" "Model") ; Переход во вкладку модели
    (setq Point1 (getpoint "Первая вершина области")) ; Запрос первой точки области
    (setq Point2 (getcorner Point1 "Вторая вершина области")) ; Запрос второй точки области
    (initget 6) (setq Scale (getreal "Масштаб 1:<1>")) ; Запрос масштаба
    (if (not Scale) (setq Scale 1))
    (setvar "CTAB" LayoutName) ; Переход во вкладку листа
    (setq
      FrameWidth (abs (- (car Point1) (car Point2))) ; Получение ширины рамки
      FrameHight (abs (- (cadr Point1) (cadr Point2))) ; Получение высоты рамки
      ViewportWidth (/ FrameWidth Scale) ; Получение высоты видового экрана
      ViewportHight (/ FrameHight Scale) ; Получение ширины видового экрана
      PaperSpace (vla-get-paperspace ActiveDocument)
      Point1x (car Point1) ; Получение координат из точек
      Point1y (cadr Point1)
      Point2x (car Point2)
      Point2y (cadr Point2)
      )	 
    ;(setq PointViewport (getpoint "Левая нижняя точка видового экрана"))
    (setq CenterPointViewport (list (/ ViewportWidth 2) (/ ViewportHight 2) 0))  ; Преобразование левой нижней точки видового экрана в центральную точку
    (setq Viewport (vla-AddPViewport PaperSpace (vlax-3d-point (getvar "VIEWCTR")) ViewportWidth ViewportHight)) ; Видовой экран
    (vla-display Viewport :vlax-true) ; Включение видового экрана
    (vla-put-mspace ActiveDocument :vlax-true) ; Активизация модели в видовом экране
    (vla-zoomcenter Application (vlax-3d-point (list (/ (+ Point1x Point2x) 2) (/ (+ Point1y Point2y) 2))) 1.0) ; Центровка зума экрана
    (vla-put-mspace ActiveDocument :vlax-false) ; Деактивация пространства модели
    (vla-put-standardscale Viewport acVpCustomScale) ; Установка пользовательского масштаба видового экрана
    (vla-put-DisplayLocked Viewport "-1") ; Блокировка видового экрана
    (vla-put-CustomScale Viewport (/ (float 1) (float Scale))) ; Установка масштаба видового экрана
    (command "._move" (vlax-vla-object->ename Viewport) "" (getvar "VIEWCTR") pause) ; Указание точки вставки видового экрана
    )
  )
Теперь вайпорты не сбиваются
KEHT вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Создание листов и видовых экранов на них

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбиваются масштабы аннотаций и видовых экранов (из-за размерности юнита ?) Tyhig AutoCAD 9 15.09.2015 15:53
Автоматическое создание Листов (layot) с встроенной рамкой. Ассистент содания Листов. Что я делаю не так? Couleurs du Sud AutoCAD 14 16.06.2015 20:17
Проекции видовых экранов листов в модели (= отображение viewport на layout в model) I.Van AutoCAD 6 02.08.2012 15:31
Содержимое видовых экранов (в ПЛ) плавает при кручении колеса мыши JokerrSergh AutoCAD 29 29.12.2008 13:16

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы