| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
13.05.2020, 01:01 | #1 | |
Перенос нескольких объектов "Текст" на мультивыноску.
проектирование автомобильных дорог
Москва
Регистрация: 15.11.2019
Сообщений: 55
|
||
Просмотров: 6894
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,008
|
Цитата:
ну так ее и доработайте - последовательный выбор двух текстов вместо одного с последующим объединением и занесением в выноску. |
|||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
понимаю, что можно доработать... но даже близко не представляю себе, как. Даже понимаю, что скорее всего не сильно сложно - но мне для этого нужно с нуля изучить программирование в автокаде. Пишу в надежде, что кто-то тут поможет по доброте душевной) Если это действительно не сложная задача, конечно...
|
|||
|
||||
выложите примнр файла до/после
|
||||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
Приложил файл. Много отметок в файле - изначально были блоками с атрибутом, через экспресс тулз перевел их в текс (просто для информации, может другим путем можно пойти, используя блоки).
Мультивыноской показал, что из всех этих отметок должно получиться. |
|||
|
||||
|
||||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
вот с блоками
----- добавлено через ~1 мин. ----- если Вы с робуром знакомы - может, прям в нем можно как-то иначе сделать, чтобы эти отметки сразу в удобоваримом виде выходили из него? |
|||
|
||||
не знаком
|
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
SeRioOuS, я бы, возможно, мог попробовать посодействовать, но нужно более четкое ТЗ. И пример поинформативнее, с описанием всех возможных случаев.
Подозреваю, что koMon уже что-то колдует, но это не точно В любом случае, уточнения никому не повредят. Первые вопросы, что приходят в голову: 1. Почему выноска в примере под углом? 2. Почему где-то текст один, а где-то - два? 3. Почему в примерах только отметки? Жалко что ли выложить фрагмент "как есть"? Ну чтобы более четко понимать задачу. В идеале для программиста - получить примеры: как есть и как надо. Желательно - в одном файле. И предварительно продумать все возможные варианты. Описать подробнее все хотелки. При таком подходе шансы получить помощь возрастают. А без нужного ТЗ, как говорится, результат - ФЗ. Вот для затравки кодик: Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
С мультивыносками поосторожнее: https://autolisp.ru/2015/01/21/mleader_create_order/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
Цитата:
Выноска в примере под углом, потому что так я вижу конечный вариант. На чертеже дорога будет повернута горизонтально, вот и выноску повернул "лицом" к читателю. Там, где рядом два текста - это места, где стоит дорожный бортовой камень (100.30.15) нижняя отметка - это отметка покрытия проезжей части, а верхняя - отметка верха бортового камня. Где отметка всего одна - это просто отметка поверхности (покрытия тротуара, например или покрытия ПЧ где нет бордюра. На мультивыноску будут выноситься все варианты, и там где одна отметка и там где две. Просто одну отметку в виде текста в данный момент я могу превратить в мультивыноску (есть такой лисп в природе), а вот подхватить вместе с ней вторую отметку - не могу, такой функции в лиспе нет. Фрагмента не жалко, сюда приложу файл полностью, только геоподоснова скорее всего не подгрузится (она наверно и не нужна). Приложил файл с тем, что у меня имеется. Все эти отметки в итоге должны занять место на мультивыносках. Стрелка мультивыноски должна приходить в центр точки этих отметок. Где по две отметки - в точку меньшей (покрытия ПЧ). Других возможных случаев и не приходит в голову... Т.е. либо на мультивыноске две отметки, либо одна. В любом случае присоединение к тексту "с подчеркиванием первой строки" пусть будет. ТЗ не знаю, как еще сформулировать... Алгоритм для кода попробую: 1. В моем понимании удобнее эти блоки разбить на текст через Экспресс Тулз. (это вручную, не через код) 2. Вызываем созданную программку, тыкаем на один текст, тыкаем на второй текст, тыкаем на точку, куда должна приходить стрелка мультивыноски, тыкаем на место, где должна располагаться полка с текстом, задаем угол поворота этой полки. Все. Далее программа не сбивается, запоминая угол поворота полки. Просто тыкаем на текст, на точки и расставляем выноски. Как-то так я себе это представляю... ----- добавлено через ~1 мин. ----- p.s. сейчас попробую Ваш код ----- добавлено через ~9 мин. ----- попробовал код, работает только "выберите первый текст, выберите второй текст" и все, дальше сбивается) |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
И где файл?) А лучше - несколько разных, из разных источников, чтоб понять, насколько и что может отличаться. И стиль мультивыноски в файле нужный бы чтоб был. |
|||
|
||||
skkkk,
компилированный лисп. 1. стиль мультивыноски ДОЛЖЕН БЫТЬ ПРАВИЛЬНО определён перед запуском лиспа 2. загружаем и запускаем лисп 2. схематично рисуем прототип мультивыноски НЕ на блоке... обрабатываются блоки с z координатой в атрибуте z. Последний раз редактировалось koMon, 15.05.2020 в 14:23. |
||||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
|
|||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
Итак, попробовал. Прикладываю файл, что получилось)
1. Получаются длинные ножки у выносок. Наверно не понял, как правильно схематично нужно отрисовывать мультивыноску. 2. Почти каждая отметка садится на свою выноску. Нужно, чтобы две стоящие рядом отметки садились на одну общую (такие случаи попадаются, но как-то выборочно, не все, что надо). А так - круто, не ожидал, что все еще и автоматизировать можно на всем чертеже. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,008
|
Цитата:
Цитата:
Цитата:
p.s. Простая чистка чертежа уменьшает его размер на два порядка) |
|||
|
||||
обновил вложение в #15.
нарисуйте прототип или выноску на СВОБОДНОМ ОТ ВСЕГО месте и далее обведите её по подсказкам лиспа. |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
koMon, так я и знал, что ты не откажешься от такой косточки аппетитной)). Прикольно получилось, респект.) Но, вот не пойму, откуда такая мода компилировать лиспы? Секреты хранишь или хочешь критики красот кода избежать?)) Я не стал пока смотреть в сторону пакетной обработки, хотя, признаюсь, ручки чесались. Рассудил, что с учетом подосновы юзер захочет ставить выноску на пустое место для лучшей читаемости и во избежание закрытия выносками подосновы - и решил сначала сделать полуавтомат. Может, проще сначала расставить все автоматом, а потом подвинуть те выноски, что налезли не туда. Но это уже сделать было сложнее для меня и я самодеятельность проявлять не стал. Почти. Отказался только вопреки ТЗ от прицельных кликов в пользу возможности выбора группы рамкой. Правда, при таком подходе встал вопрос о смене угла наклона выносок, потому как в случае с прицельными кликами можно было прикрутить опции к запросу ("Выберите первый атрибут [Сменить угол]"), в случае же с выбором рамкой (ssget) такая возможность отсутствует. Пришлось для этого изобретать отдельную команду. Вчера еще нацарапал кодик вечером минут за 15, но без тестов и отладки выкладывать не стал, а сегодня завалили. В общем, мой вариант попроще: нужно выделить группу из двух блоков или один блок (рамкой или кликами) и ткнуть место установки выноски. Может, уже и не пригодится, но раз уж написал, то выложу. Может, вылетит ошибка с учетом сказанного мной в начале этого поста, но постарался этот вариант исключить. Проверил на трех компах (2011, 2015, 2016) - работает. Также в файле-примере стиль мультивыноски настроен неверно - не соответствует той выноске, что указана в качестве образца. Я привел его в соответствие, поэтому файл прикладываю - тестировать надо на нем и на будущее (если потребуется) брать образец этой выноски в другие чертежи. Код:
Точно Последний раз редактировалось skkkk, 15.05.2020 в 19:07. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Единый государственный реестр объектов культурного наследия | msv_mnv | Поиск литературы, чертежей, моделей и прочих материалов | 4 | 13.11.2017 11:12 |
Перестало работать снятие выделения нескольких объектов через Shift | empsokol | AutoCAD | 1 | 06.07.2017 16:06 |
Масштабирование нескольких объектов без изменения их точки положения. | СеверныйЧел | AutoCAD | 6 | 10.04.2017 16:07 |
перенос всех линий слоя в блоках в другой слой | Positron | Программирование | 6 | 10.02.2012 15:59 |