|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
Код:
----- добавлено через ~43 мин. ----- и проверка на: Если расстояние от Конца линии до Первой точки меньше чем расстояние от конца до проверяемой точки И Если расстояние от Начала линии до Ввторой точки меньше чем расстояние от конца до проверяемой точки То проверяемая точка лежит между Первой и Второй точками. ----- добавлено через ~44 мин. ----- задача в определении точки вставки блока на проверяемой линии. Блок может пересекать несколько линий, но точка будет только на одной (не считая перекрестков). ----- добавлено через ~45 мин. ----- почитаю завтра- времени не хватило разобраться. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Примерный алгоритм: 1) найти все блоки, которые могут пересекаться с полилинией, например с помощью BSELPOLY 2) для каждого блока уточнить пересечение с характерной рамкой: - сделать копию блока (vla-copy); - запомнить последний примитив чертежа (entlast); - подорвать копию (vla-explode); - среди полученных "обломков" выделить ту самую характерную рамку (перебор с помощью entnext от ранее запомненной метки последнего примитива до текущего entlast по условиям "полилиния" и "спецслой"); - проверить ее пересечения с "кабельной" полилинией - если есть, значит блок на кабеле, оставить в списке блоков по п.1, если нет - удалить из этого списка; - убрать мусор (от ранее запомненной метки последнего примитива до текущего entlast) Как-то так Предлагаемые в п. 2 действия вообще-то относятся к низкому штилю программирования, гуру наверняка могут предложить вариант прямого доступа к подпримитивам блока. Последний раз редактировалось kp+, 04.08.2015 в 18:01. |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
Цитата:
Если кто сталкивался буду рад вразумительным объяснениям )) А про доступ в примитивам блока это надо глянуть функции Lee Mac |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
ну пока остановился на вложенном внутри основного блока УГО спец-блоке - маленьком квадрате без атрибутов с точкой вставки в центре. В блоке перебираю примитивы, нахожу вхождение этого блока, затем дело техники - найти ближайшие вершины полилинии, опустить перпендикуляр, найти точку на сегменте полилинии. Чистая геометрия - и пофиг на полилинии блок или рядом где то) Почему вложенный блок-квадрат - так как не всегда геометрический центр УГО совпадает с желаемым центром разбития полилинии, а этот вспомогательный блок где нужно ставишь.
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Кажется, эта чистая геометрия в полном объеме реализована в грязной стандартной функции vlax-curve-getclosestpointto. Или о ней и идет речь? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
прикольно) Только лишняя операция - выравнивание выносок. В NetApi/Arx есть JIG классы - выноску можно сформировать и ставить на место визуально сразу. Не знаю, как в лиспе с этим дела обстоят.
----- добавлено через ~8 мин. ----- Цитата:
ну в 2012 хэндл был типа long - т.е. 2 миллиарда всего, если со знаком. Если постоянно убивать/создавать примитивы - то каждому новому из БД чертежа следующий свободный номер присваивается. |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
В моем опыте достаточно: прокси-графика, копирование ген.плана(порядка 5 раз), изменение генплана несколько раз, взрыв прокси без своевременной чистки.
Ооо... кстати щас такая проблема- может кто сталкивался: файл порядка 25-30Мб в нем всего лишь один блок из-за которого все тормозит и он не удаляется- файл виснет. Вроде предлагается пересохранить из 15 в 13 версию. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
ну человек хочет переплюнуть тот же электрикал - пускай пробует) Наверно, многие, кто начинал заниматься автоматизацией - пребывали в фантазийной эйфории насчет открывающихся возможностей.. а лишь потом со временем приходит понимание - что есть лишь узкий круг задач, где реально сделать лучше именно под себя...
----- добавлено через ~2 мин. ----- 13..16 акад-одна версия файла.. до этого была тройка 10..12 |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
"плеваться" ни куда не хочу ). Назовем это переход с кульмана на САПР. Электрикал у нас никто не осилил разобраться и настроить под себя тем более. Еплан куда более подходит под наши задачи, но с англ. инструкцией сложно разобраться. Оказалось проще самим что-то этакое создать. В добавок лицензии приобретать не нужно.
Вот небольшая история: купили ModelStudio ЛЭП (ну и всю линейку вдобавок). Требуется всего-лишь провис проводов по профилю юзать. Как выяснилось- в есть ограничения поскольку программист не электрик и тонкостей не знает. Когда эти ограничения уберут? А так сами можем- разве нет. Чет я разгорячился ) .... И тут в точку - все под себя. Ни одна САПР наши потребности не удовлетворяет: ни в экспликация, кабельном журнале, спецификации, схемах, БД оборудования производителей, документообороте и т.п.. ----- добавлено через ~3 мин. ----- Сергей, вопрос.. возможно знаешь. Даунгрейд с 16 до 14 возможен при условии, что лицензия? (ModelStudio работает только на до 14версии включительно и тут с тех поддержкой возникают дилемы по этому поводу) |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
вы мужественно боретесь с "проблемой" определения нахождения блока на полилинии второй день, и при этом замахиваетесь на автоматическую расстановку выносок, на прорисовку схемы соединений и т.д... либо у вас очень узкий сегмент рынка проектирования с большой типизацией.. либо слабо представляете себе реальный объем работ.. и что это понадобиться еще много-много раз дописывать/переписывать по реальные задачи.. а еще это все затевать на лиспе, насколько понимаю..
----- добавлено через ~2 мин. ----- Насколько я слышал от нашего админа, что с 16 версии можно было до 13 даунгрейд сделать.. но это лучше уточнять у представителей аутодеска всетаки |
|||
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
|
>>Назовем это переход с кульмана на САПР.
С подходом Поиск блоков пересекающих полилинию это будет не сапр, даже не велосипед-кульман а самокат какойнить. >>Ни одна САПР наши потребности не удовлетворяет: ни в экспликация, кабельном журнале, спецификации, схемах, БД оборудования производителей, документообороте и т.п.. Сомневаюсь. Скорее наоборот - лень разбираться, да еще и документация к ним какаято нетакая)) |
|||
|
||||
Регистрация: 26.12.2013
Сообщений: 284
|
ага
скажу больше - для сметчиков "Красную кнопку" тоже запланировал. И компоновщик документации для заказчика как распинаю C# переключись на него. Пока есть вот это:Пакетная печать- опять же под наши требования. И я знаю, что есть 5(известных мне) похожих программ... ----- добавлено через ~1 мин. ----- |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
Его не пинать надо, а изучать и писать на нем) Когда увидите, что многие задачи по обработки информации в С# решаются буквально в несколько строк.. ощутите прелесть того XML-комментирования своего кода.. не говори уже о возможностях построения диалогов.. лисп хорош для небольших задач, имхо.. да и раньше просто альтернативы для него не было..
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Offtop: Лисп хорош не только для небольших задач. Сделать на нем можно очень много - и при этом не зависеть от версии ACAD
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Очистка рисунка от "пустых" блоков | Makswell | Готовые программы | 15 | 26.10.2022 15:24 |
AutoCAD 2012 Поиск по атрибутам блоков | yurka52rus | AutoCAD | 8 | 17.07.2020 12:09 |
Lisp. Поиск блоков в файлах и замена атрибутов | AlexKey | LISP | 3 | 12.09.2013 16:39 |