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

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

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

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

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

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

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

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

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

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


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

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


Теперь еще dwg с видами "что было" и "что получается в результате". И для функций не помешает передавать параметры и не надеяться на неизменность глобальных переменных.
Также не советую использовать vlax-ldata на пространство модели, если не собираешься между сессиями использовать эти данные. Никто не мешает создать именно для этих целей глобальную переменную, куда и загонять результаты. Ну а про отметки начала и конца отмены я даже не упоминаю.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.03.2018, 09:12
#3
koMon


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


Цитата:
Сообщение от Кулик Алексей 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
Москва
Сообщений: 460


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

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


Запомнить и использовать между сессиями - разные вещи
__________________

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


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


Цитата:
Сообщение от Кулик Алексей 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
С.-Петербург
Сообщений: 35,347


Цитата:
Сообщение от koMon Посмотреть сообщение
как можно использовать между сессиями то, что принадлежит конкретной сессии?
А так - ты загоняешь данные в описание блока *Model_Space*. При последующем открытии эти данные там уже будут.
Я что-то пытался в свое время рассматривать: http://autolisp.ru/?s=%D0%BF%D0%BE%D...8C%D1%81%D0%BA
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 16.03.2018, 10:35
#8
koMon


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


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надежно определять положение точек относительно линий АлексЮстасу Программирование 10 20.12.2016 10:24
Автоматическое создание блока из выбранных объектов VAV LISP 21 28.10.2016 11:49
Исключение объектов из набора 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

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