|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
05.10.2017, 15:50 | #1 | |
Возможно ли восстановить взорванные размеры?
Регистрация: 03.12.2009
Сообщений: 84
|
||
Просмотров: 6186
|
|
||||
Конструктор по сути (машиностроитель) Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391
|
Offtop: Люди взрывают, чтобы недобросовестные заказчики пользоваться нормально не могли, а заказчики ищут лекарство от этого на форуме исполнителей
__________________
Век живи, век учись - ... |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Возможно этот пост написал бедолага, которому в руки по наследству достались такие файлы и работать с ними как то надо. Мне такое прилетало, работать с таким г-ом это боль.
Тут еще идейка пришла. Найдя засечку, можно искать объекты размера по хендлу... они должны быть последовательными... Сумбурно объяснил, но думаю направление мысли понятно. Хорошая задачка, интересная. |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Исправление одиночного перебитого размера при условии, что размер не расчленен.
Код:
Последний раз редактировалось Setvar, 05.10.2017 в 17:02. |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Да, я знаю. Постепенно нащупываю решение.
Восстановление расчлененного размера (при условии сохраненных блоков стрелок). Код:
|
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Setvar, спасибо большое!
Код с поста #8 шикарен! Можно сказать бОльшая часть задачи решена. Встречный вопрос (признаюсь, не силен в лисп программировании) - возможна ли множественная отбивка размеров? Сейчас выбираю несколько [недо] разбитых размеров -> запускаю лисп -> на выходе отбивается только один верхний размер. В принципе с полностью разбитыми размерами все решаемо - через быстрый выбор заменил отрезки-засечки (они как правило на чертеже все одного размера и под углом 45° и 135°) на блоки - и лисп их уже распознает как остатки размеров. P.S. Надо будет подумать, как автоматизировать отбивку блоков на месте отрезков-засечек. |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Вот тут загвоздка. Когда мы выбираем 1 "размер", то фактически ясно, между какими точками строить новый размер, поскольку этих точек всего 2. В случае множественного выбора расчлененных размеров появляется неопределенность в попарном соответствии точек. Пока я не могу придумать приемы установки критериев соответствия точек.
Замену отрезков на блоки-засечки, я думаю, можно автоматизировать. Но есть еще проблемы: 1. Стрелки (а не засечки). Там не блоки, а фигуры. 2. Наклонные размеры. В этом случае надо применять команду "_dimaligned", а не "_dimlinear". Следовательно, надо проверять точки вставки блоков на неравенство координат по X или по Y. |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
В качестве наводки. Может попробовать задать условие, при котором отбивка размеров происходила только при наличии между блоками текста-цифры, расположенного строго по центру между точками. Понимаю, что не все тексты размеров бывают строго по центру, но все же (может люфт какой задать?) это было бы очень большим шагом вперед.
Про наклонные размеры - частности. Если их много - задачу [думаю] можно будет решать путем ручной смены ПСК (UPD: попробовал - не решает, увы - размеры улетают в далекие дали). |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 84
|
Поменять засечки на блоки похоже можно при помощи кода из поста по ссылке http://forum.dwg.ru/showpost.php?p=1...postcount=3398
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Setvar, он больше так не будет. Да же, megabeton?
Мне нравится идея Вохи. Добавлю толику своих размышлений. Получается, в коде мы должны тем же ssget'ом собрать все эти объекты, исключив лишние, "нащупать" первый попавшийся блок стрелки и анализировать, что было создано после него по порядковому номеру примитива в базе. Только пока неясно, как выяснить, первая ли это стрелка или заключительная. Предварительно надо разобраться, в какой последовательности создаются эти объекты при взрыве размера. Думаю, что первой создается стрелка, потом линия, текст, и опять стрелка (все это условно, для примера - там будет больше объектов, и это - только предположение, выяснить предлагается megabeton'у). Так вот, если после стрелки идет линия, значит это стрелка первая, если идет еще одна стрелка, то она вторая. Все, что между первой и второй стрелками - и есть нужное. Все это дело мы собираем в новый набор, удаляем, предварительно запомнив точки, по которым построим размер. И так в цикле, пока не кончатся блоки стрелок в чертеже. И еще интересно мне, в набор объекты добавляются в том же порядке, что создавались? Вероятнее всего да. Тогда первая попавшаяся в наборе стрелка (при условии, что начало обработки будет задано с верной стороны) будет первой, за ней должны будут последовать очередные объекты бывшего размера. |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Так, возвращаемся опять в эту тему.
Новая проба: Код:
Напоминаю, что это фактически заготовка для реальной программы, без всяких проверок наличия отсутствия. Последний раз редактировалось Setvar, 06.10.2017 в 20:36. Причина: Уточнение |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
А вот это зачем написано?
Цитата:
На этот счет еще цитата: Цитата:
Еще проба. Код:
|
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Монолитная ж.б. плита перекрытия жилого этажа с консольными вылетами по периметру на высоте более 40 м. Возможно ли выполнить? | Julianna | Железобетонные конструкции | 45 | 02.10.2016 11:27 |
Inventor. Возможно ли переназначить горячие клавиши и орбиту/зум/панорамирование по принципу Solidworks? | voverrr | Прочее ПО от Autodesk | 1 | 22.05.2015 07:03 |
Как узнать какие размеры на чертеже перебиты? | dimandgy | AutoCAD | 4 | 20.10.2014 09:37 |
Автоматизированное проектирование. Возможно ли? | Gurtik | AutoCAD | 18 | 03.09.2014 10:13 |
Глобально задать стили возможно? | Marv | AutoCAD | 9 | 24.06.2009 11:08 |