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

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

Команда для выравнивания выбранных объектов относительно центра

Ответ
Поиск в этой теме
Непрочитано 15.03.2018, 17:51 1 | #1
Команда для выравнивания выбранных объектов относительно центра
koMon
 
Регистрация: 26.09.2017
Сообщений: 1,665

Всем привет!
Пришлось позаниматься монотонным тупым выравниванием выбранных объектов оносительно центра одного из последних. Задолбало. Решил автоматизировать процесс до минималистического всякого нажимания/указания. Для понимания процесса придумал нарисовать маркер. Естественно подумалось сразу о grdraw, но тут встал вопрос как обновлять его если вдруг придётся зумировать/панорамировать рабочее пространство. Хотел решить вопрос использованием реактора(ов), но для конкретно этого случая решить этот момент не удалось, а жаль) Пришлось реализовать простое рисование двух маркеров и манипулировать их видимостью и маштабируемостью. В итоге получился вот такая команда. Возможно кому-то и пригодится)))

PS. Подумалось, что предварительно выбранный объект для выравнивания на заблокированном слое вызовет обрушение. Исправлю попозже.

Команда Align_by_Last_Center
-----------------------------------
Позволяет выровнять [предварительно] выбранные объекты по X, Y, обеим координатам
центра описанного прямоугольника последнего объекта в наборе или указанного
в выбранных объектах набора / невыбранных нарисованных объектов.
Изменение направления выравнивания - <Tab>
Подтверждение выравнивания - <Space>, <Enter>, <RMB>

Миниатюры
Нажмите на изображение для увеличения
Название: Align_by_last_Center-(Pick_First).gif
Просмотров: 53
Размер:	1.70 Мб
ID:	200215  Нажмите на изображение для увеличения
Название: Align_by_last_Center.gif
Просмотров: 49
Размер:	611.3 Кб
ID:	200261  

Вложения
Тип файла: lsp Align_by_Last_Center_2.lsp (16.2 Кб, 29 просмотров)


Последний раз редактировалось koMon, 19.03.2018 в 09:21.
Просмотров: 1957
 
Непрочитано 15.03.2018, 19:27
#2
Кулик Алексей aka kpblc
Moderator

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


Теперь еще dwg с видами "что было" и "что получается в результате". И для функций не помешает передавать параметры и не надеяться на неизменность глобальных переменных.
Также не советую использовать vlax-ldata на пространство модели, если не собираешься между сессиями использовать эти данные. Никто не мешает создать именно для этих целей глобальную переменную, куда и загонять результаты. Ну а про отметки начала и конца отмены я даже не упоминаю.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.03.2018, 09:12
#3
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Теперь еще dwg с видами "что было" и "что получается в результате".
Эээ…это как?

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Также не советую использовать vlax-ldata на пространство модели
Именно собираюсь запомнить последний выбор именно в пространстве модели.

----- добавлено через ~20 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ну а про отметки начала и конца отмены
Зачем это? Здесь нет многочисленных командных методов. Ну если только маркер выскочит) Хотя наверное ты прав.

Последний раз редактировалось koMon, 16.03.2018 в 09:46.
koMon вне форума  
 
Непрочитано 16.03.2018, 09:47
#4
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Так это опять программа для англосаксов...
Setvar вне форума  
 
Непрочитано 16.03.2018, 09:58
#5
Кулик Алексей aka kpblc
Moderator

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


Запомнить и использовать между сессиями - разные вещи
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.03.2018, 10:03
#6
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Запомнить и использовать между сессиями - разные вещи
может я туплю, но как можно использовать между сессиями то, что принадлежит конкретной сессии?

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Setvar Посмотреть сообщение
Так это опять программа для англосаксов...
мля, вот ты надавил на больное
koMon вне форума  
 
Непрочитано 16.03.2018, 10:16
#7
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от koMon Посмотреть сообщение
как можно использовать между сессиями то, что принадлежит конкретной сессии?
А так - ты загоняешь данные в описание блока *Model_Space*. При последующем открытии эти данные там уже будут.
Я что-то пытался в свое время рассматривать: http://autolisp.ru/?s=%D0%BF%D0%BE%D...8C%D1%81%D0%BA
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.03.2018, 10:35
1 | #8
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А так - ты загоняешь данные в описание блока *Model_Space*. При последующем открытии эти данные там уже будут.
Ну так в этом и цель) Они там будут, я их прочитаю, если они есть и буду использовать, по завершении команды данные будут переписаны и готовы к следующему использованию. Мне нравится ldata. Это имхо будет покруче системной переменной INT1...5 и боже упаси записи в реестр)
koMon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Команда для выравнивания выбранных объектов относительно центра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическое создание блока из выбранных объектов VAV LISP 25 27.02.2023 11:31
Надежно определять положение точек относительно линий АлексЮстасу Программирование 10 20.12.2016 10:24
Исключение объектов из набора Violent MITCHELL AutoCAD 22 10.08.2016 12:09
Команда обрезать. Почему не режет относительно всех объектов? KronSerg AutoCAD 15 29.06.2016 13:39
Возможно ли залить штриховкой сразу несколько выбранных аналогичных объектов MagaShpaga AutoCAD 13 11.04.2011 10:35