|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
определение границ области (AutoCAD & lisp)
Регистрация: 06.06.2009
Сообщений: 19
|
||
Просмотров: 9198
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Это как - ограничение незамкнутой области?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,194
|
Помещение на плане с отрисованной обычной линией открытой дверью (без применения блоков, обозначающих определенные элементы - двери, окна и т.п.) - классический пример контура, с точки зрения здравого смысла замкнутого, но с формальной точки зрения разомкнутого
|
|||
![]() |
|
||||
Как один из вариантов - построение твердого тела и нахождение всех объектов его пересекающих. Само тело можно программно создавать на одно мгновение, так, что и не заметишь, что оно вообще было.
Другой вариант - автоматически менять виды. Берем модель, в плане делаем выбор по точкам (можно и многоугольником). Затем меняем вид и делаем опять выбор, но уже поперек модели, естественно только из тех элементов, что попали в первый набор. Круг на виде сверху и сбоку даст область - шар, квадрат - куб и.т.п. В качестве визуализации объемного выбора можно использовать средства автокада по отрисовке твердых тел, но сами тела использовать только как источник данных о размере и местоположении. Написать лиспик для каждого тела (шар, куб, цилиндр и т.д.), где после процессае отрисовки запоминются данные тела и оно уничтожается, а вместо него на этом месте в нескольких проекциях создается выбор обычным select. Последний раз редактировалось Supermax, 10.03.2010 в 17:45. |
||||
![]() |
|
||||
Регистрация: 06.06.2009
Сообщений: 19
|
Цитата:
1. я, кажется, забыл уточнить, что вопрос относится только к 2D проектированию. 2. приэтом, библиотеки, необходимые для 3D-проектирования могут физически отсутствовать. 3. т.е., возможно, все вышеизложенное и есть - хорошо, но в данном случае неприменимо (. |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
проектирование электроснабжения Регистрация: 17.03.2009
Екатеринбург
Сообщений: 44
|
Более конкретно формулируйте что вы хотите получить в ответ.
МОжно посчитать эти примитивы тыкая в них пальцем на мониторе в конце концов. Можно програмно выделить секущей рамкой по углам вашего помещения если оно прямоугольной формы создать набор и по фильтру отловить количество каких либо конкретных примитивов. Или вам надо полный список, не понятно. Напишите что вы хотите в идеале получить и ваши шансы на это резко возрастут. |
|||
![]() |
|
||||
Регистрация: 06.06.2009
Сообщений: 19
|
Цитата:
вопрос: как я могу их получить? если все еще непонятно, то представьте себе как работает hatch. вот именно это и надо повторить. Цитата:
2. в заголовке темы стоит автокад. Последний раз редактировалось a-karlson, 17.03.2010 в 09:06. |
|||
![]() |
|
||||
Цитата:
Чтобы убрать эти "библиотеки" нужно удалить AutoCAD - при любой (даже минимальной) инсталляции AutoCAD они присутствуют. Они неотъемлемая его часть. Если их нет, AutoCAD работать не будет. Так понятнее? |
||||
![]() |
|
||||
Цитата:
Теоритически можно использовать все ту же штриховку, но это кажется не спортивно. |
||||
![]() |
|
||||
Регистрация: 06.06.2009
Сообщений: 19
|
нет, вопрос именно в том, чтобы получить примитивы, поскольку дальнейшие действия необходимо осуществлять именно с примитивами.
совершенно верно, неспортивно. |
|||
![]() |
|
||||
a-karlson, на самом деле задача не простая, поэтому если ты объяснишь, зачем? решить её будет проще...
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
|
||||
![]() |
|
||||
|
||||
![]() |
|
||||
В 2006 и 2008 у меня (и не только) BOUNDARY и, соответственно, HATCH работают ненадежно и некорректно. У некоторых пользователей 2010 (по их сообщениям здесь, на форуме) также - ненадежно и некорректно.
|
||||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,194
|
Цитата:
![]() |
|||
![]() |
|
||||
Цитата:
Среди корпоративных такой автор известен - сам Автодеск. В вертикальном приложении Civil при построении площадных "топологий". Точно, надежно и корректно. С выявлением ошибок контуров. Причем, позволяет строить исключительно из самых обычных элементов Автокада, без привлечения какой-либо особой "вертикальной" информации. Кстати, даже сейчас на форуме висит не меньше трех свежих тем, вызванных некорректной работой или неработой BOUNDARY. Последний раз редактировалось АлексЮстасу, 18.03.2010 в 18:57. |
||||
![]() |
|
||||
Регистрация: 06.06.2009
Сообщений: 19
|
Цитата:
цели достаточно просты: 1. очистка контура от нежелательных элементов (этот вопрос пока решается отключением слоя по объекту) 2. полу/автоматическая вставка повторяющихся элементов интерьера и оборудования. самым простое (для конечного пользователя имхо) - указал точку внутри контура помещения и получил список объектов, обработал их и радуйся. пока я пилю ручной поэлементный выбор (не стоит просить показать - есть пока только каркас) |
|||
![]() |
|
||||
Боюсь, что пока не получиться, в 2010 Autodesk, приблизился к решению этой задачи, если при указании точки для штриховки внутри контура, контур окажется не замкнутым, то он ругается и показывает предполагаемые места разрыва, которые необходимо замкнуть.
Т.е. алгоритм в принципе понят, и его можно повторить, если нет замкнутого контура, он находит все "торчащие концы" примитивов, образующих этот контур. [IMG]http://i064.***********/1003/e0/c1f9a51e142d.gif[/IMG] [IMG]http://s002.***********/i197/1003/fb/b8404ec7c5f5.gif[/IMG] [IMG]http://s54.***********/i144/1003/38/2e3602bd7eb0.gif[/IMG] [IMG]http://s006.***********/i214/1003/2d/4301db8eab14.gif[/IMG]
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Ну, не соглашусь, что все так безнадежно.
Для начала, игнорируем все блоки, солиды и вообще все, что не линии, дуги и 2D полилинии. Делаем из указанной точки векторы во все стороны и находим первые попавшиеся объекты в их направлении. Выбираем все точки этих объектов (ближайших) и математически выстраиваем их в последовательную ломанную. Далее селектом делаем выбор по этой ломанной. В частности все решение сводится к определению принадлежности точки к треугольнику, сегменту окружности и треугольнику, где одна сторона - дуга (правда это уже не треугольник). |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Ну, не соглашусь, что все так безнадежно.
Зря не соглащаешся. в общем случае задача очень сложная - часто не решаемая. тут или вводить ограничения - упрощать задачу, или искать другой подход - например сразу иметь замкнутый контур и получать из него не замкнутый путем вставки разрвов (окон, дверей и т.д.) |
|||
![]() |
|
||||
Проектировщик Регистрация: 27.11.2016
Тюмнь
Сообщений: 1
![]() |
Я как-то автоматизировал работу с однострочным текстом: выравнивание по левому краю, по правому, по центру и равномерное выравнивание текста в ячейке таблицы из линий и полилиний. Столкнулся с подобной задачей, ячейки таблиц в автокаде не всегда были замкнуты, программа работала по алгоритму:
1) запрашивала у пользователя секущей рамкой две точки, при этом пользователю необходимо было выделить всю таблицу целиком, немного захватывалось и окружающее таблицу пространство. 2) а дальше шла работа с координатами концов полилиний и отрезков попавших в набор, из них я получал примерные границы любого незамкнутого прямоугольного контура. 3) затем шла модификация координат текста, выравнивание его по вертикали с учётом размера шрифта и габарита ячейки. Думаю подобный алгоритм можно применить и тут. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоуроки 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 |