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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > определение границ области (AutoCAD & lisp)

определение границ области (AutoCAD & lisp)

Ответ
Поиск в этой теме
Непрочитано 09.03.2010, 18:34 #1
определение границ области (AutoCAD & lisp)
a-karlson
 
Регистрация: 06.06.2009
Сообщений: 19

Доброго времени суток всем!

скажите пожалуйста, каким образом можно определить состав и количество примитивов, ограничивающих некую область.
само собой, граница может быть как замкнутая, так и разомкнутая.
Просмотров: 9057
 
Непрочитано 09.03.2010, 21:58
#2
Кулик Алексей aka kpblc
Moderator

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


Это как - ограничение незамкнутой области?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.03.2010, 11:50
#3
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,093


Помещение на плане с отрисованной обычной линией открытой дверью (без применения блоков, обозначающих определенные элементы - двери, окна и т.п.) - классический пример контура, с точки зрения здравого смысла замкнутого, но с формальной точки зрения разомкнутого
kp+ вне форума  
 
Непрочитано 10.03.2010, 17:38
#4
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Как один из вариантов - построение твердого тела и нахождение всех объектов его пересекающих. Само тело можно программно создавать на одно мгновение, так, что и не заметишь, что оно вообще было.
Другой вариант - автоматически менять виды. Берем модель, в плане делаем выбор по точкам (можно и многоугольником). Затем меняем вид и делаем опять выбор, но уже поперек модели, естественно только из тех элементов, что попали в первый набор. Круг на виде сверху и сбоку даст область - шар, квадрат - куб и.т.п.

В качестве визуализации объемного выбора можно использовать средства автокада по отрисовке твердых тел, но сами тела использовать только как источник данных о размере и местоположении. Написать лиспик для каждого тела (шар, куб, цилиндр и т.д.), где после процессае отрисовки запоминются данные тела и оно уничтожается, а вместо него на этом месте в нескольких проекциях создается выбор обычным select.

Последний раз редактировалось Supermax, 10.03.2010 в 17:45.
Supermax вне форума  
 
Автор темы   Непрочитано 11.03.2010, 06:38
#5
a-karlson


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


Цитата:
Сообщение от Supermax Посмотреть сообщение
Как один из вариантов - построение твердого тела и нахождение всех объектов его пересекающих. Само тело можно программно создавать на одно мгновение, так, что и не заметишь, что оно вообще было.
Другой вариант - автоматически менять виды. Берем модель, в плане делаем выбор по точкам (можно и многоугольником). Затем меняем вид и делаем опять выбор, но уже поперек модели, естественно только из тех элементов, что попали в первый набор. Круг на виде сверху и сбоку даст область - шар, квадрат - куб и.т.п.

В качестве визуализации объемного выбора можно использовать средства автокада по отрисовке твердых тел, но сами тела использовать только как источник данных о размере и местоположении. Написать лиспик для каждого тела (шар, куб, цилиндр и т.д.), где после процессае отрисовки запоминются данные тела и оно уничтожается, а вместо него на этом месте в нескольких проекциях создается выбор обычным select.

1. я, кажется, забыл уточнить, что вопрос относится только к 2D проектированию.
2. приэтом, библиотеки, необходимые для 3D-проектирования могут физически отсутствовать.
3. т.е., возможно, все вышеизложенное и есть - хорошо, но в данном случае неприменимо (.
a-karlson вне форума  
 
Непрочитано 12.03.2010, 22:17
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от a-karlson Посмотреть сообщение
2. приэтом, библиотеки, необходимые для 3D-проектирования могут физически отсутствовать.
Это какие такие библиотеки? Они всегда присутствуют. Или речь идет не о AutoCAD? Тогда уточняй.
Александр Ривилис на форуме  
 
Непрочитано 14.03.2010, 05:48
#7
Uduzr

проектирование электроснабжения
 
Регистрация: 17.03.2009
Екатеринбург
Сообщений: 44


Более конкретно формулируйте что вы хотите получить в ответ.
МОжно посчитать эти примитивы тыкая в них пальцем на мониторе в конце концов. Можно програмно выделить секущей рамкой по углам вашего помещения если оно прямоугольной формы создать набор и по фильтру отловить количество каких либо конкретных примитивов. Или вам надо полный список, не понятно. Напишите что вы хотите в идеале получить и ваши шансы на это резко возрастут.
Uduzr вне форума  
 
Автор темы   Непрочитано 17.03.2010, 09:01
#8
a-karlson


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


Цитата:
Сообщение от Uduzr Посмотреть сообщение
Более конкретно формулируйте что вы хотите получить в ответ.
МОжно посчитать эти примитивы тыкая в них пальцем на мониторе в конце концов. Можно програмно выделить секущей рамкой по углам вашего помещения если оно прямоугольной формы создать набор и по фильтру отловить количество каких либо конкретных примитивов. Или вам надо полный список, не понятно. Напишите что вы хотите в идеале получить и ваши шансы на это резко возрастут.
в идеале я хочу получить список примитивов, ограничивающих область, внутри которой я "кликнул" мышкой.
вопрос: как я могу их получить?

если все еще непонятно, то представьте себе как работает hatch.
вот именно это и надо повторить.

Цитата:
Это какие такие библиотеки? Они всегда присутствуют. Или речь идет не о AutoCAD? Тогда уточняй.
1. неважно какие - любые можно удалить физически. важно, что их может не быть.
2. в заголовке темы стоит автокад.

Последний раз редактировалось a-karlson, 17.03.2010 в 09:06.
a-karlson вне форума  
 
Непрочитано 17.03.2010, 09:24
#9
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от a-karlson Посмотреть сообщение
если все еще непонятно, то представьте себе как работает hatch.
вот именно это и надо повторить.
Можно воспользоваться командой _BOUNDARY (или _BPOLY). Но контур должен быть замкнут.

Цитата:
Сообщение от a-karlson Посмотреть сообщение
1. неважно какие - любые можно удалить физически. важно, что их может не быть.
Чтобы убрать эти "библиотеки" нужно удалить AutoCAD - при любой (даже минимальной) инсталляции AutoCAD они присутствуют. Они неотъемлемая его часть. Если их нет, AutoCAD работать не будет. Так понятнее?
Александр Ривилис на форуме  
 
Непрочитано 17.03.2010, 21:58
#10
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Цитата:
... в идеале я хочу получить список примитивов, ограничивающих область, внутри которой я "кликнул" мышкой.
вопрос: как я могу их получить?
Вопрос не в том, как получить примитивы, а как получить область?
Теоритически можно использовать все ту же штриховку, но это кажется не спортивно.
Supermax вне форума  
 
Автор темы   Непрочитано 18.03.2010, 12:40
#11
a-karlson


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


Цитата:
Сообщение от Supermax Посмотреть сообщение
Вопрос не в том, как получить примитивы, а как получить область?
нет, вопрос именно в том, чтобы получить примитивы, поскольку дальнейшие действия необходимо осуществлять именно с примитивами.
Цитата:
Сообщение от Supermax Посмотреть сообщение
Теоритически можно использовать все ту же штриховку, но это кажется не спортивно.
совершенно верно, неспортивно.
a-karlson вне форума  
 
Непрочитано 18.03.2010, 12:47 вопрос в том... вопрос не в том...
#12
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


a-karlson, на самом деле задача не простая, поэтому если ты объяснишь, зачем? решить её будет проще...
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 18.03.2010, 13:18
#13
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от a-karlson Посмотреть сообщение
совершенно верно, неспортивно.
_BPOLY тоже не годится?
Александр Ривилис на форуме  
 
Непрочитано 18.03.2010, 16:48
#14
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Можно воспользоваться командой _BOUNDARY (или _BPOLY). Но контур должен быть замкнут.
С какой-то версии BOUNDARY начала работать надежно и корректно?
АлексЮстасу вне форума  
 
Непрочитано 18.03.2010, 17:06
#15
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
С какой-то версии BOUNDARY начала работать надежно и корректно?
С той, в которой надежно и корректно начала работать команда _HATCH, так и та и другая команда используют один алгоритм для получения контура.
Александр Ривилис на форуме  
 
Непрочитано 18.03.2010, 18:02
#16
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
С той, в которой надежно и корректно начала работать команда _HATCH, так и та и другая команда используют один алгоритм для получения контура.
В 2006 и 2008 у меня (и не только) BOUNDARY и, соответственно, HATCH работают ненадежно и некорректно. У некоторых пользователей 2010 (по их сообщениям здесь, на форуме) также - ненадежно и некорректно.
АлексЮстасу вне форума  
 
Непрочитано 18.03.2010, 18:25
#17
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Вполне возможно. Но написать свой более надежный алгоритм под AutoCAD пока еще никто не смог. Во всяком мне такой не известен.
Александр Ривилис на форуме  
 
Непрочитано 18.03.2010, 18:39
#18
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,093


Цитата:
С той, в которой надежно и корректно начала работать команда _HATCH, так и та и другая команда используют один алгоритм для получения контура.
А это случится, как говорят англичане, когда два воскресенья придутся на одну неделю
kp+ вне форума  
 
Непрочитано 18.03.2010, 18:50
#19
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Вполне возможно. Но написать свой более надежный алгоритм под AutoCAD пока еще никто не смог. Во всяком мне такой не известен.
Может быть никто и не пытался? Или есть уже более-менее удачные частные попытки?
Среди корпоративных такой автор известен - сам Автодеск. В вертикальном приложении Civil при построении площадных "топологий". Точно, надежно и корректно. С выявлением ошибок контуров. Причем, позволяет строить исключительно из самых обычных элементов Автокада, без привлечения какой-либо особой "вертикальной" информации.

Кстати, даже сейчас на форуме висит не меньше трех свежих тем, вызванных некорректной работой или неработой BOUNDARY.

Последний раз редактировалось АлексЮстасу, 18.03.2010 в 18:57.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 19.03.2010, 06:57
#20
a-karlson


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


Цитата:
Сообщение от Disney Посмотреть сообщение
a-karlson, на самом деле задача не простая, поэтому если ты объяснишь, зачем? решить её будет проще...
преамбула: есть строительные чертежи, перенасыщенные лишними элементами, требуются же, чаще всего, лишь контуры помещений.

цели достаточно просты:

1. очистка контура от нежелательных элементов (этот вопрос пока решается отключением слоя по объекту)
2. полу/автоматическая вставка повторяющихся элементов интерьера и оборудования. самым простое (для конечного пользователя имхо) - указал точку внутри контура помещения и получил список объектов, обработал их и радуйся. пока я пилю ручной поэлементный выбор (не стоит просить показать - есть пока только каркас)
a-karlson вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > определение границ области (AutoCAD & lisp)

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоуроки AutoCAD kosmax AutoCAD 173 17.02.2017 15:08
как в autocad увеличить границу печатаемой области exploer AutoCAD 11 03.10.2013 19:08
LISP: как узнать, AutoCAD 64-bit или 32? VetalBY LISP 12 02.11.2010 05:40
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. hwd Баги и пожелания в Autodesk 21 21.04.2010 20:27
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59