|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
13.05.2020, 01:01 | #1 | |
Перенос нескольких объектов "Текст" на мультивыноску.
проектирование автомобильных дорог
Москва
Регистрация: 15.11.2019
Сообщений: 55
|
||
Просмотров: 6936
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
ну так ее и доработайте - последовательный выбор двух текстов вместо одного с последующим объединением и занесением в выноску. |
|||
|
||||
проектирование автомобильных дорог Регистрация: 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,852
|
С мультивыносками поосторожнее: 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,052
|
Цитата:
Цитата:
Цитата:
p.s. Простая чистка чертежа уменьшает его размер на два порядка) |
|||
|
||||
обновил вложение в #15.
нарисуйте прототип или выноску на СВОБОДНОМ ОТ ВСЕГО месте и далее обведите её по подсказкам лиспа. |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
koMon, так я и знал, что ты не откажешься от такой косточки аппетитной)). Прикольно получилось, респект.) Но, вот не пойму, откуда такая мода компилировать лиспы? Секреты хранишь или хочешь критики красот кода избежать?)) Я не стал пока смотреть в сторону пакетной обработки, хотя, признаюсь, ручки чесались. Рассудил, что с учетом подосновы юзер захочет ставить выноску на пустое место для лучшей читаемости и во избежание закрытия выносками подосновы - и решил сначала сделать полуавтомат. Может, проще сначала расставить все автоматом, а потом подвинуть те выноски, что налезли не туда. Но это уже сделать было сложнее для меня и я самодеятельность проявлять не стал. Почти. Отказался только вопреки ТЗ от прицельных кликов в пользу возможности выбора группы рамкой. Правда, при таком подходе встал вопрос о смене угла наклона выносок, потому как в случае с прицельными кликами можно было прикрутить опции к запросу ("Выберите первый атрибут [Сменить угол]"), в случае же с выбором рамкой (ssget) такая возможность отсутствует. Пришлось для этого изобретать отдельную команду. Вчера еще нацарапал кодик вечером минут за 15, но без тестов и отладки выкладывать не стал, а сегодня завалили. В общем, мой вариант попроще: нужно выделить группу из двух блоков или один блок (рамкой или кликами) и ткнуть место установки выноски. Может, уже и не пригодится, но раз уж написал, то выложу. Может, вылетит ошибка с учетом сказанного мной в начале этого поста, но постарался этот вариант исключить. Проверил на трех компах (2011, 2015, 2016) - работает. Также в файле-примере стиль мультивыноски настроен неверно - не соответствует той выноске, что указана в качестве образца. Я привел его в соответствие, поэтому файл прикладываю - тестировать надо на нем и на будущее (если потребуется) брать образец этой выноски в другие чертежи. Код:
Точно Последний раз редактировалось skkkk, 15.05.2020 в 19:07. |
|||
|
||||
|
||||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
Цитата:
(на скрине чуть растащил две выноски, они были параллельно друг другу с наложением. А выноску-пример обводил вдали от чертежа, потом тоже перенес для сравнения) |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Offtop: koMon, прошу Вас не извращайте. Я за то, что бы делиться знаниями и помогать узнать что то новое, если человек пытается сделать что то сам, но мне категорически противит, когда пытаются перевалить свою работу на другого и желательно даром. Компиляция и закрытие кода, ничего не меняют, Вы выполнили за SeRioOuS, его работу. Он заработал деньги, Вы потратили время. За что же мне Вас ругать, каждому свое.
|
|||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
Цитата:
koMon, если продолжите доработку своей версии - с удовольствием продолжу тестировать ее. В очередной раз убеждаюсь, что любое рутинное действие в автокаде можно автоматизировать до минутной работы. Жаль, что сам такими умениями не владею, но надеюсь, все еще впереди) Вам огромное спасибо еще раз за помощь! ----- добавлено через ~8 мин. ----- Цитата:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Offtop:
Цитата:
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
проектирование автомобильных дорог Регистрация: 15.11.2019
Москва
Сообщений: 55
|
А почему бы и нет? Я ничего не утверждаю. Не исключаю вариант, что и сам буду изучать. Автокад - наш хлеб. У нас есть человек в организации, который умеет динамические блоки делать (помимо просто отличного знания программы) - его почти на руках носят, с вопросами всегда к нему. Если еще и программы уметь писать - я считаю, это высший пилотаж. Так что время покажет.
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Да, Алексей, ты прав. Проглядел. Спасибо за подсказку. Раньше я уже читал эту статью, но позабыл про нее. Попробовал жестко прописать опции, причем в английской справке про arrowHead ничего не было; на русском опция называется ...Стрелка выноски - и я методом тыка почему-то подобрал опцию _P и она сработала, как мне показалось. На самом деле должна быть _H. Исправил сейчас в #20, но как ни странно...
Видимо, SeRioOuS уже вбил перед этим верную опцию. Кулик Алексей aka kpblc, вычитал по твоей ссылке такой тезис: Цитата:
Последний раз редактировалось skkkk, 15.05.2020 в 19:54. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Сергей812, если речь об этой функции, то я пробовал ради интереса - там были проблемы с завершением визуализации, а точнее - с выходом из цикла. При нажатии Esс выноска "падала" полкой на стрелку. А при нажатии Enter - "подцеплялась" предыдущая. Разбираться не стал. Да и работает же так, плюс в данном случае бокс выноски всегда одинаков и плюс-минус предсказуем.
|
|||
|
||||
skkkk, не работает в MMXX
Command: A2ML Укажите две точки, задающие угол наклона полок мультивыносок: Specify second point: Выберите один или два блока отметок рамкой или кликами: Select objects: 1 found Select objects: 1 found, 2 total Select objects: _MLEADER Specify leader arrowhead location or [leader Landing first/Content first/Options] <Options>: _H Invalid Input. Specify leader arrowhead location or [leader Landing first/Content first/Options] <Options>: _O Enter an option [Leader type/leader lAnding/Content type/Maxpoints/First angle/Second angle/eXit options] <eXit options>: _C Select a content type [Block/Mtext/None] <Mtext>: _M Enter an option [Leader type/leader lAnding/Content type/Maxpoints/First angle/Second angle/eXit options] <Content type>: _X Specify leader arrowhead location or [leader Landing first/Content first/Options] <Options>: Specify leader landing location: Specify landing distance <0.0100>: 22.45 22.30 Requires numeric distance or second point. ; error: Automation Error. Description was not provided. Boxa, звучит как приглашение в буковый лес |
||||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Вы сегодня крайне метафоричны, попробую и я. =)
Нет, я Вас никуда не приглашаю. Я Вам пояснил, что мне уже не за что Вас ругать. Еще раз, в моем понимании, вся система автоматизации работы во многих странах, и в нашей так же, поставлена раком. Логика и здравый смысл подсказывают, что вроде бы автоматизация выгодна капиталу или должна быть выгодна, для снижения себестоимости продукции и увеличении прибыли, а занимается ей пролетариат, причем по своей инициативе. Понятно, у пролетариата нет денег на заказ программ/инструментов (хотя еще раз, этим работника должен обеспечивать работодатель) и как следствие, пролетарий выпрашивает помощь на форумах. Его пожалеют и помогут, но бенефициантом всей этой истории будет капитал/работодатель и у такой помощи будет побочный эффект - полное обесценивание труда программистов. Единственным выходом из этой ситуации, лично я, вижу передачу не готового продукта, а знаний. Знания и умения автоматизировать свою работу, выполнять ее быстро - увеличивают стоимость труда пролетария и значит бенефициантом в этом случае будет не капитал, а простой работник и уже потом капитал. Побочным эффектом, при этом, будет знание, сколько труда нужно на изучения и написание программ, соответственно труд программистов не будет обесценен. Т.е. при передаче знаний выигрывают простые работяги, а не бизнес и эффективные менеджеры. Вы передали SeRioOuS готовый продукт и совершенно не важно в каком виде, поздно мне Вас ругать. Нет смысла. ЗЫ. "приглашение в буковый лес" - я не вполне понял, если я правильно понимаю, то у народов Европы, буковый лес или буковая роща - святилище или святое место, где живут эльфы и прочие сказочные персонажи, но зачем мне Вас туда приглашать.... |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Единый государственный реестр объектов культурного наследия | 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 |