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

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

LISP. Компоновка видовых экранов на лист.

Ответ
Поиск в этой теме
Непрочитано 25.08.2011, 11:22 3 |
LISP. Компоновка видовых экранов на лист.
YRat
 
Support - ACD, ASD, ACA, ACM, RAC, RST
 
Stuttgart-Петербург
Регистрация: 19.10.2004
Сообщений: 238

Смысл и применение

Идем в пространство листа, жмем кнопку или вводим с клавиатуры AF
Программа прыгвет в модель, вы задаете область модели, которую хотите разместить в видовом экране, масштаб и.. и расополагаете разещенный уже на вашем курсоре видовой экран.

Код:
[Выделить все]
;Ansichtsfenster erzeugen.
;(c)2011 iLkraret ([email protected])

(defun c:af ( / )
	(setvar "cmdecho" 0) ; Turn off command line echoing
	(setq layoutname (getvar "ctab")); Store current tab name

	(if (/= layoutname "Model") ; Must be started from a layout tab to establish destination, quit quietly if on Model tab
		(progn
			(setvar "tilemode" 1) 
			(setq modellunitsmulti 1)
			
			(setq p1 (getpoint "\nУкажите одну из вершин области: "))  
			(setq p2 (getcorner p1 "\nУкажите противоположную вершину области: "))

			(setq units (getvar "insunits")); Store current insunits

			(if (equal units 1) (setq modellunitsmulti 25.4))
			(if (equal units 2) (setq modellunitsmulti 304.8))
			(if (equal units 3) (setq modellunitsmulti 1609344))
			(if (equal units 5) (setq modellunitsmulti 10))
			(if (equal units 6) (setq modellunitsmulti 1000))
			(if (equal units 7) (setq modellunitsmulti 1000000))
			(if (equal units 8) (setq modellunitsmulti 25400000))
			(if (equal units 9) (setq modellunitsmulti 25400))
			(if (equal units 10) (setq modellunitsmulti 914.4))
			(if (equal units 11) (setq modellunitsmulti 0.0000001))
			(if (equal units 12) (setq modellunitsmulti 0.000001))
			(if (equal units 13) (setq modellunitsmulti 0.001))
			(if (equal units 14) (setq modellunitsmulti 100))
			(if (equal units 15) (setq modellunitsmulti 10000))
			(if (equal units 16) (setq modellunitsmulti 100000))
			(if (equal units 17) (setq modellunitsmulti 10000000000000))
			(if (equal units 18) (setq modellunitsmulti 149597806297768))
			(if (equal units 19) (setq modellunitsmulti 9460469428493040000))
			(if (equal units 20) (setq modellunitsmulti 30856959478640800000))

			(setq mass (getreal  "\nMasstab - 1:"))
			(setq vpxd (* (/ (abs (- (car p1) (car p2))) mass) modellunitsmulti)) ; Determine horizontal length of selected window
			(setq vpyd (* (/ (abs (- (cadr p1) (cadr p2))) mass) modellunitsmulti)) ; Determine vertical height of selected window
			(setq vpc (list (/ (+ (car p1) (car p2)) 2.0) (/ (+ (cadr p1) (cadr p2)) 2.0) 0.0)) ; Determine center point of selected model window
			(setvar "ctab" layoutname)
			(command "_mview" "0,0" (strcat "@" (rtos vpxd) "," (rtos vpyd))) ; Create Paper Space viewport
			(setq ssvp (ssget "_L")) ; Start selection set with last viewport frame
			(command "_mspace") ; Open viewport window to Model Space
			(command "_zoom" "_C" vpc (rtos vpyd)) ; Center view of viewport window using determined point
			(command "_zoom" "_SCALE" (strcat (rtos (/ modellunitsmulti mass)) "xp")) ; Set zoom scale of viewport window
			(command "_vports" "_LOCK" "_ON" ssvp "") ; Lock scale and position of model in viewport
			(command "_pspace") ; Close viewport window
 
			(command "._move" ssvp "" "0,0" pause )
		)
		(princ "\nThis command must be started from a layout sheet!") ; Need to start on a layout tab so program knows where to create the new viewports
	) 
(setvar "cmdecho" 1) ; Turn on command line echoing
)
__________________
без DWG мы никуда - и не туда, и не сюда...
Спасибо за то, что Вы есть, коллеги ;)

Последний раз редактировалось YRat, 08.11.2011 в 23:12.
Просмотров: 36100
 
Непрочитано 27.02.2014, 10:33
#41
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от San-_-13 Посмотреть сообщение
А суть моей проблемы по поводу Lispa заключается в следующем...я ввожу команду "AF" из пространства листа, меня автоматически перебрасывает в пространство модели, где мне нужно обвести нужную мне область рамкой и указать нужный мне масштаб ( в котором будем размещена моя деталь например). Например, я обвожу рамкой какую-то область и вписываю масштаб 1:20, в пространстве листа создается видовой экран но в каком-то непонятном масштабе, далеко не в 1:20.
У кого нибудь была проблема такого рода? как-то лечил это?
Вводить нужно не 1:20, а 20
RNB вне форума  
 
Непрочитано 27.02.2014, 11:09
#42
San-_-13


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


Цитата:
Сообщение от RNB Посмотреть сообщение
Вводить нужно не 1:20, а 20
Ну это понятно, я так и делаю (видимо не корректно написал в предыдущем посте). Видовой экран создается либо в масштабе 1:1 или вообще в произвольном(((
San-_-13 вне форума  
 
Непрочитано 27.02.2014, 11:35
#43
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от San-_-13 Посмотреть сообщение
Ну это понятно, я так и делаю (видимо не корректно написал в предыдущем посте). Видовой экран создается либо в масштабе 1:1 или вообще в произвольном(((
У меня команда вела себя некорректно однажды. Не знаю, как это влияло на программу, но очень сильно отдалена была область печати на листе. Когда приблизил область печати, всё встало на свои места.
Как вариант, попробуйте область печати настроить и приблизить (танцы с бубном какие-то, но может быть поможет...)
RNB вне форума  
 
Непрочитано 27.02.2014, 12:27
#44
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от San-_-13 Посмотреть сообщение
Ну это понятно, я так и делаю (видимо не корректно написал в предыдущем посте). Видовой экран создается либо в масштабе 1:1 или вообще в произвольном(((
Подтверждаю - глюк присутствует.
Почему не знаю, в лиспе не шарю, но у меня лечится так (в одной вкладке выполнять подряд):
1. Пробую вставить с масштабом 20 - фигня
2. Пробую вставить с масштабом 1 - норма
3. Это и последующие вставить с масштабом 20 - норма.

----- добавлено через ~2 мин. -----
San-_-13 сервис пак установлен ?
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 05.03.2014, 17:23
#45
San-_-13


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


Цитата:
Сообщение от maratovich Посмотреть сообщение
Подтверждаю - глюк присутствует.
Почему не знаю, в лиспе не шарю, но у меня лечится так (в одной вкладке выполнять подряд):
1. Пробую вставить с масштабом 20 - фигня
2. Пробую вставить с масштабом 1 - норма
3. Это и последующие вставить с масштабом 20 - норма.

----- добавлено через ~2 мин. -----
San-_-13 сервис пак установлен ?
Сервис пак установлен первый, хотя не совсем понимаю связь. Попробовал ваш метод, к сожалению он не работает( в масштабе 1:1 вставляется нормально все, но если указывать какой-то другой масштаб происходит то, что я описал выши. Да и вообще я думаю, что если человек выкладывает это как "готовый" продукт, то и это должно работать, так как написано в "пособию по применению". Жаль, что решение проблемы видимо тут не будет(.
San-_-13 вне форума  
 
Непрочитано 05.03.2014, 18:03
#46
Лада Калина Универсал


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


А у меня программа делает ошибку:

Команда: af Восстановление кэшированных видовых экранов.

Укажите одну из вершин области:
Укажите противоположную вершину области:
Masstab - 1:
; ошибка: неверный тип аргумента: numberp: nil
Лада Калина Универсал вне форума  
 
Непрочитано 08.04.2014, 10:41
#47
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Когда то писал для себя такое. Теперь приходится поддерживать и развивать по замечаниям трудящихся.
Если интересно, то скачать можно тут :http://experement.spb.ru/wiki/doku.php?id=vport_pp
Видео тут: http://youtu.be/JRU4YrkzDPc
Boxa вне форума  
 
Непрочитано 08.04.2014, 11:11
#48
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Boxa, спасибо, интересный вариант, добавил в общий список
Думаю против не будешь
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 08.04.2014, 12:18
#49
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от maratovich Посмотреть сообщение
Boxa, спасибо, интересный вариант, добавил в общий список
Думаю против не будешь
не буду. =) Потому и дал ссылку.
Boxa вне форума  
 
Непрочитано 09.04.2014, 10:40
#50
San-_-13


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Когда то писал для себя такое. Теперь приходится поддерживать и развивать по замечаниям трудящихся.
Если интересно, то скачать можно тут :http://experement.spb.ru/wiki/doku.php?id=vport_pp
Видео тут: http://youtu.be/JRU4YrkzDPc
Спасибо большое, это куда интереснее..но, есть несколько вопросов и пожеланий.
1. Можно ли сделать, что-бы при создания видового экрана он сразу блокировался??
2. И может быть офтопный вопрос, но не подскажете, как добавить .dll фаил в автозагрузку(аналог автозагрузки .lisp)?
Спасибо.
San-_-13 вне форума  
 
Непрочитано 09.04.2014, 20:23
#51
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


1. Можно, а вот нужно ли?
2. Вот тут расписывал: http://experement.spb.ru/wiki/doku.php?id=setup_acaddll
Не за что.
Boxa вне форума  
 
Непрочитано 17.04.2014, 18:21
#52
shartal


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


Для nik_mb. Задается только стандартный масштаб видового экрана. Масштаб аннотаций остается неизменным. Можно это исправить, иначе при использовании аннотац. объектов вся процедура теряет смысл.
shartal вне форума  
 
Непрочитано 03.07.2017, 12:37
#53
tujn08


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


Кто мне поможет с созданием многоугольных видовых экранов?
_-vports - какое обращение к функции?
tujn08 вне форума  
 
Непрочитано 03.07.2017, 13:49
#54
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от tujn08 Посмотреть сообщение
_-vports - какое обращение к функции?
ну, как минимум, с точкой:
Цитата:
_.-VPORTS
ключи - "_P" - многоугольный, в конце построения закрыть - "_C".
Сергей812 вне форума  
 
Непрочитано 03.07.2017, 13:54
#55
tujn08


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


Код:
[Выделить все]
 (command "_-vports" "_p" point point2 point3 point4 point5 "_C")
Спасибо! вот искал ключ "_C"
tujn08 вне форума  
 
Непрочитано 03.07.2017, 14:20
#56
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


А чего его искать, с вероятностью 90% - "Close")
Сергей812 вне форума  
 
Непрочитано 11.01.2018, 23:04
#57
olga87


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


Спасибо за лисп "бсвэ" (http://forum.dwg.ru/showpost.php?p=1091820&postcount=33).
Попробовав в Автокаде 2007 заметила следующее: если мне нужен масштаб ВЭ = 2, то на запрос Масштаба задаю 0.5, в результате все работает, если в окне "Единицы чертежа" в зоне "Масштаб вставки" выставлено "миллиметры", если "метры"- то масштаб ВЭ в результате получается равным 2000. Вопрос: как это исправить в коде?
В Автокаде 2008 ввожу, например, масштаб 50, то в итоге для ВЭ в его свойствах получается: Масштаб аннотаций 1:50, Пользовательский масштаб каждый раз разный (0.0014 или 0.0019,...).
olga87 вне форума  
 
Непрочитано 06.06.2018, 12:28
#58
alex-kolchugin

инженер-конструктор
 
Регистрация: 03.02.2010
г. Березники, Пермский край
Сообщений: 40


(command "_zoom" "_SCALE" (strcat (rtos (/ modellunitsmulti mass)) "xp")
Что такое "xp"? загружаю эту строку, возвращает 0.0xp и ругань... В комстроке пишет значение должно быть положительным и не нулевым... Масштаб ранее задал 1:50. Я так понимаю это масштабный коэффициент...
Сделал так (command "_zoom" "_SCALE" (rtos (/ modellunitsmulti mass) 2 2)), загружаю вернул значение 0.02... Вроде всё нормально, ибо 1/50=0.02
Запускаю весь лисп, набираю "af", всё рисует красиво, НО... масштаб видового экрана 0.013 и что-то там ещё какие-то цифры дальше...
AutoCAD 2017
__________________
У меня есть один очень большой минус... да и тот - резус-фактор :crazy:
alex-kolchugin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Компоновка видовых экранов на лист.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование видовых экранов с листа на др. лист Алексий K AutoCAD 26 29.01.2021 11:36
Фатал эррор при переходе с модели на лист с большим количеством видовых окон Serikdjan AutoCAD 14 28.04.2011 10:03
Ищу листы Специальной карты Европейской России М:1дюйм-10верст KSI Поиск литературы, чертежей, моделей и прочих материалов 6 19.04.2009 12:04
Содержимое видовых экранов (в ПЛ) плавает при кручении колеса мыши JokerrSergh AutoCAD 29 29.12.2008 13:16