|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как средствами Lisp/Autolisp масштабировать объекты в видовом экране с одновременным изменением его границ
Регистрация: 05.08.2023
Сообщений: 27
|
||
Просмотров: 1473
|
|
||||
Регистрация: 05.08.2023
Сообщений: 27
|
Сергей812, это свойство меняет масштаб отображения объекта/объектов в видовом экране, но не меняет его границ. Иначе при работе программы видовые экраны начнут перекрывать друг друга. Суть в том, чтобы по количеству групп в пространстве модели сформировать видовые экраны, компактные по размеру, и разместить их на созданном листе, чтобы они не перекрывались.
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
откуда несколько ВЭ, если выбирается группа блоков, задается в явном или скрытом виде имя этой группы и создается одноименный лист для этой группы.
|
|||
![]() |
|
||||
Регистрация: 05.08.2023
Сообщений: 27
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
ну создание ВЭ - это одна задача, расположение ВЭкранов в пространстве листа - тут уже скорее задача, схожая с оптимальным раскроем, если нет дополнительных критерием к взаиморасположению видовых экранов на листе. ВЭ строится по геометрическим границам группы, а не пытаться натянуть ВЭ непонятно на что)
|
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Прежде чем думать о частностях вроде "как программно нажать "треугольную ручку" я бы озадачился общим алгоритмом работы:
|
|||
![]() |
|
||||
Регистрация: 05.08.2023
Сообщений: 27
|
Так ребята, давайте расставили все точки над ё! Если не понятно из моего первого сообщения, то я уже написал работоспособный массив кода, при работе которого выбирается группа объектов, создаётся лист с именем этой группы, на листе создаётся ВЭ с отображением этой самой группы объектов, далее через команду zoom по объекту происходит масштабирование объектов в видовом экране... А дальше я спрашиваю, как сделать так, чтобы установить в видовом экране один из стандартных масштабов и одновременно изменить границы ВЭ, как если бы мы нажали треугольную кнопку на выделенном ВЭ и выбрали какой-нибудь стандартный масштаб! Ну сколько раз мне ещё нужно повторить текст моего первого сообщения или вы начинаете читать с конца? Ребята есть мысли, как это сделать, так подскажите!
Цитата:
Последний раз редактировалось Кулик Алексей aka kpblc, 10.08.2023 в 17:17. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
(entmod) для ВЭ не получится использовать, надо через vla-функции.
Координаты верхнего левого и нижнего правого угла есть, но их можно только прочитать. У видового экрана есть центр (X, Y, Z) и высота и ширина - их можно и читать и устанавливать Код:
Последний раз редактировалось name02, 11.08.2023 в 11:15. |
|||
![]() |
|
||||
Регистрация: 05.08.2023
Сообщений: 27
|
name02, свойства vla-get-height и vla-get-width, также как и свойства vla-put-height и vla-put-width я уже пытался использовать в своём коде. Но эти функции только считывают или изменяют границы видового экрана. Получается, нужно связать функции vla-put-height и vla-put-width, а также команду zoom по группе объектов, в одном коде, вычисляя оптимальные границы видового экрана. Вопрос: как это сделать?
|
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
У тебя есть критерий "оптимальности"?
Я поэтому и написал первый пост про алгоритм работы - по своему опыту скажу, что самое сложное как раз и придумать алгоритм работы программы. Подобрать функционал языка под него проще. Цитата:
Вот видишь сколько еще вопросов! А ты спрашивал про "программную реализацию нажатия треугольной ручки видового экрана" ![]() |
|||
![]() |
|
||||
Регистрация: 05.08.2023
Сообщений: 27
|
Попробую объяснить более подробно алгоритм работы моей программы и компановку получаемого чертежа. Запускаем программу, выбираем сформированную группу объектов на модели, при этом автоматически создаётся лист (по шаблону, в котором есть рамка листа и штамп) и ему присваивается имя группы. Затем этот лист открывается, в нём создаётся ВЭ заданного размера, в нем отображается только выделенная группа объектов, далее происходит вход в модель через видовой экран и zoom по объекту, выход из модели, в этом месте границы экрана и принимают "оптимальные размеры". (*) Создаётся следующий видовой экран, например, с видом сбоку этой же группы объектов, при этом повторяются действия с выходом в модель через видовой экран и zoom по объекту. Этот и следующие ВЭ-ы при создании размещаются в определённых местах листа, с учётом расположения предыдущих ВЭ-в начиная со второго. Далее создаётся ещё насколько таких экранов но уже с другими видами. В перспективе дополнение листа видовыми экранами с другими группами при указании целевого листа с их расположением. В месте, где я поставил зввёздочку, и должно выполняться изменение границ экрана с зумом и выбором стандартного масштаба. Нужно это для того, чтобы в последствии при размещении созданных ВЭ-в на листе, они бы не перекрывались, иначе проблемы с отображением объектов и ручная правка границ ВЭ-в. Вооооот...
|
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Честно говоря, я очень ориентировочно представляю как это сделать. Прежде всего из-за распределения области чертежа под ВЭкраны.
Ты сам алгоритм в голове какой-то имеешь? Подумай над ним сначала - от глобальных этапов к конкретным шагам. 1 Определяем область для вставки первого ВЭ: очевидно что это область внутри рамки. Как ее можно определить? 2 Допустим, определили область для первого ВЭ. 3 Создаем ВЭ - но опять-таки - в одном случае ВЭ может быть квадратным, во втором горизонтальным прямоугольным, в третьем - вертикальным прямоугольным. Пропорции опять-таки могут быть разными ![]() 4 Допустим создали ВЭ. Нужно определить область чертежа, где будут размещены следующие ВЭ. ? Может сделать шаблоны листов уже с ВЭ и в них "распихивать" нужные виды? |
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
Как я понял, процесс оптимизации, отмеченный (*), умеет делать сам Автокад, при нажатии мышкой на некую "треугольную ручку" ?
Приложи к сообщению, плиз: а) Файл *.dwg - ДО нажатия "треугольной ручки" б) Файл *.dwg - ПОСЛЕ нажатия "треугольной ручки" в) Скрин с этой самой "треугольной ручкой" а то все так и будут гадать до бесконечности...
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
ИМХО достаточно установить CustomScale для VP, а масштабирование выполнять как масштабирование любого другого объекта
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.08.2023
Сообщений: 27
|
Да дело-то не в центре, а в том, при выборе масштаба через эту самую ручку зуммируется весь видовой экран вместе с содержимым. "Волшебная оптимизация будет дальше", если кто-нибудь всё-таки сможет объяснить, как программно выбрать масштаб, как если бы я это делал через эту ручку...
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не отображается текст в видовом экране | Nastya_sv | AutoCAD | 30 | 24.04.2019 15:33 |
Отображение веса линий в видовом экране. | Андрюха_вода | AutoCAD | 46 | 29.08.2014 12:38 |
Динамический блок не отображается в видовом экране | E_note | Динамические блоки | 3 | 07.06.2012 09:26 |
Как сделать объекты, отображенные в Видовом Экране, невидимыми, не пользуясь слоями. | ant_bar | AutoCAD | 15 | 25.02.2009 14:49 |
Как сделать разрыв в видовом экране? | viter_alex | AutoCAD | 25 | 19.10.2008 17:31 |