Автокад лисп присвоить точке отметку из ближайшего текста
Это пожалуй один из самых интересных Лиспов, который облегчит жизнь изыскателю, камеральщику да и проектировщику при работе скажем в CREDO или какой другой программе, которая понимает 3D dxf. Дак, что же такого интересного делает он?
Координата Z точки из подписи отметки
Получили Вы скажем от заказчика съемку, ну или раздобыли не важно каким образом топографические планы в формате AutoCAD, а планы эти как правило плоские (2D dxf), т.е. нет координаты Z точек рельефа. Задумались Вы, эх была бы третья координата у точки, сделал бы импорт dxf например в CREDO, нажал бы кнопку создать рельеф в слое, и проектировал бы вертикальную планировку или продольный профиль без проблем, а так сидеть сейчас пикать каждую точку.
Вот тут нам на помощь и придет этот самый Lisp. Только представьте, он способен вытащить данные из элемента ТЕКСТ или МТЕКСТ (значение подписи отметки) с рядом стоящей точкой, и поместить эти данные в высотную отметку (координата Z) и Ваш dxf превратиться из плоского в 3D, а дальше закидываем в программу где будем проектировать, немного подкорректировав наша ЦММ готова.
Перевод плоского dxf плана рельефа в 3D. Установка Лисп
1. Качаем архив с lisp для координаты Z точки рельефа из подписи отметки в AutoCAD здесь.
2. Распаковываем архив и сохраняем файл в папочку где хранятся все наши приложения, а если такой еще нет например в D:\MyLisp.
3. Запускаем AutoCAD и устанавливаем Lisp стандартным способом. Если не знаем как, читаем здесь.
4. Ну все Лиспом можно пользоваться, набираем в командной строке Ztxt , выбираем точки с подписями (работает предварительный выбор).
5. Ну и на последок для вывода команды с кнопки, создаем ее стандартным способом и в поле макрос пишем следующее:
^C^C(if (null C:Ztxt)(load "Ztxt"));Ztxt;
Полезно. Если не знаем как создать свою кнопку читаем здесь.
Примечание:
1. Перед запуском Лисп убедитесь, что точки и подписи имеют нулевую координату Z. Если они различны, выберите объекты используя быстрый выбор, и установите нулевое значение координаты Z. Это необходимо сделать, т.к. алгоритм работы приложения такой, что для высоты точки берутся данные из ближней подписи отметки.
2. Если точки рельефа представлены в виде блоков, необходимо заменить их на элемент ТОЧКА, воспользовавшись Lisp для замены выбранных объектов на образец. Для этого необходимо выбрать блоки соответствующие точкам рельефа через быстрый выбор, и заменить на объект ТОЧКА. Более подробно про Лисп замены объектов читаем здесь.
Z координата точки из подписи отметки в Автокаде. Видеоурок
Премьера уже скоро…
Видео посвящено тому, как назначить координату Z точкам из подписи отметок в Автокаде для дальнейшего построения рельефа в CREDO, Robur, IndorCAD и т.д. при проектировании дорог и генпланов.
Господа, дорый день! Помнится, вроде натыкался я на програмку, которая позваляла делать следующее, напрмер стоит у нас пикет, который представляет из себя точку и надпись отметки (текст), так вот эти объекты без отметки уровня высоты, как то вроде было возможно взять текст из графы содержания и перенести в отметку z, именно находящейся рядом точки. Вот сейчас понадобилось мне данное действие, а программку найти не могу, но точно помню что где то про неё читал, кто нить может помочь в нахождении? Заранее спасибо!
Как правило точки наблюдения это блоки.Если что не так, рамкой их выбрал и они сидят на своей высоте. А у вас как определить принадлежность текста точке. Или вы будете кликать ТЕКСТ, ТОЧКА. 1000 точек, 2000 кликов?
Нет, просто высоты у точки нет! Нету координаты z ты это понимаешь? Есть пикет, у него нету координаты z у точки, есть только подпись высоты к этой точке текстовым файлом, мне нада, чтобы скажем, допустим, точка находится на расстоянии от текста в 20 см, утилита проверяет таке точки, и содержание текста переводит в координату z точки
Кажется работает. Проверяет расстояние от POINT до точки вставки текста. Если меньше 20 см то меняет Z точки в соответствии с текстом. Это расстояние можно изменить в строке (setq max_dist 0.2)
Запустил проверил - не работает, просит выбрать объекты выбираю и всё, операция прекращается? Как ты проверял? Может на каком слое определённом лежать должно? И ещё сразу вопрос, можно ли дописать в файлик, чтобы ещё запрашивалась дистанция а то не всегда 20 см, бывает и 40 и 45.
Замени (setq max_dist 0.2)
на (setq max_dist (getreal "Distance? "))
Беда в том, что при съемке могут натыкать столько пикетов, что сам не разберешься, не то что программа. Так что не обойтись без того, чтобы не тыкать текст - точка, и так 10000 раз.
Всё прогрессивное человечество работает с блоками. Того, кто придумал точки с текстом нужно подвесить за одно место.
А что было бы если были бы блоки?
Эх, всё равно программа не запускается (((((
Есть пикет, у него нету координаты z у точки, есть только подпись высоты к этой точке текстовым файлом, мне нада, чтобы скажем, допустим, точка находится на расстоянии от текста в 20 см, утилита проверяет таке точки, и содержание текста переводит в координату z точки
Подпись не может быть текстовым файлом. А вот текст может быть каким угодно - однострочным, многострочным, атрибутом, блоком с атрибутом.
Что значит "допустим"? И на расстоянии в каком направлении - вправо? Влево? Вверх? Вниз? По диагонали? Считать от точки вставки текста или от габарита прямоугольника, описанного вокруг текста? А если в указанных пределах несколько точек? А текст в каком формате нарисован: +0,656? Или, может, +0.656? Или 0,656? Или 0.656? А какое выравнивание текста (только влево или есть варианты)? А все объекты находятся в мировой системе координат или "перевернуты" как бог на душу положил?
Всё правильно. Я предположил что имеется ввиду расстояние от POINT до точки вставки текста. Он даже сейчас не может этого сказать. Если скажем один пикет на 10 метров, так можно задать расстояние 1 метр, 2 метра
Да вот ещё для любителей кликать, на 10000 кликов. Текст, точка.
> WeMaN
Программа работает. Но, странно как-то. Когда увеличиваешь очень близко текст с точкой (на экране только они), то работает.
А, если выбираешь весь чертеж, то нет.
В принципе, устраивало бы. А что если точек очень много?
С плюсом и минусом работает. Даже с запятой, только отбрасывает дробную часть. Может там не TEXT или не POINT?
о, а у меня текст с точкой, может поэтаму не работает?
> WeMaN
Все работает, если выбирать по одному тексту с точкой.
> WeMaN
Набери в командной строке:
и ткни сначала в точку, а потом в соседний текст. Результаты вставь сюда. Тогда будет ясно что там у тебя.
> Игорь Богаченко
> WeMaN
Пробуйте этот вариант
Координатой Z выбранной точки считается БЛИЖАЙШИЙ текст
Команда:ZTXT
> VVA
Спасибо, заработало, всё отлично, как раз то, что было нужно.
Спасибо всем тем кто помогал, за помощь!
Чем лучше блоки? В атрибутах задаются текущий номер, отметка, код. По коду они соединяются и по коду же вставляются условные знаки. Половина конторской работы выполняется автоматически.
> VVA
Програмка Ztxt пришлась сегодня к месту, прислали с участка точки на 0.0 и тексты с Z координатами. Геологи спросили, что делать? Пришлось показать легкое движение руки.
Но! Чуток бы ее доделать.
1. Как обычно забываем о том что WCS может быть UCS (вертикальная, например).
2. Неплохо было-бы сказать пользователю, что ему надо выбирать точки для назначения Z координаты по ближайшим текстам.
3. Как я понял выбираются все тексты в чертеже, а зачем? На мой взгляд, пусть уж пользователь сам выбирает точки и тексты. А то мало-ли.
4. И в конце можно привести еще и статистику о работе программы, сколько точек было выбрано и изменено (в идеале в скобках пределы измененных Z координат для контроля).
5. Стоит еще подумать и над тем, что и тексты перемещать на эти же высоты (уж на 0.0 их всегда легко посадить, даже без программ).
Парни, довольно срочно нужно изменить все отметки съемки на одну и ту же величину (отметки просто в виде текста), есть ли уже готовое решение?
Пока не будет образца, решения будут "не те". Отметка - это что? Блок с атрибутом? Просто атрибут? Однострочный текст? Многострочный текст? Поле? Еще-какая-то-фигня?
---
Добавлено: в этом "неизвестно что" отметка с префиксами / суффиксами? Без? С какой точностью после запятой надо добавлять?
Блин, когда научатся вопросы задавать.
--- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
--- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
То есть я себе представляю это так - я выделяю весь текст, который нужно изменить, программуля меня спрашивает величину прироста - и я не теряю 1.5 дня на тупое механическое перебивание 1.5 тысяч отметок =)
Отметка выглядит, к примеру как "15.32". Точность до второго знака.
ЗЫ: Что за преффиксы и суффиксы? =)
Код не будет обрабатывать строки вида "16,65" (с запятой в качестве разделителя); "а123" (нечисловые). Ну, короче, "коленочный код".
__________________ --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
Спасибо за помощь. Но ничего не происходит! Просит выбрать объекты - выбираю несколько текстовых строк. Допустим, нужно увеличить отметку на 0.08 (8 сантиметров) - ввожу 0.08, Enter - ничего. Текст не меняется. В чем баг?
Блин, то есть мне нужно получить из текста ЧИСЛО, прибавить к нему другое число и засунуть назад в текст. =)
Хм. А что в образце мне показать? 2 числа? И какие они будут после прибавления к ним определенной величины? =)
Образец "до" и "после" выполнения команды plus с заданием величины смещения = 6.65
Код немного модифицировал для корректной обработки отрицательных значений:
--- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
Нашел такие баги - при получении в итоге ровной суммы (к примеру 16.00) получаем в результате просто "16". А результат необходим именно как "16.00". Отбрасывание нулей не нужно! Приходится забивать ручками ".00". И еще - не производятся никакие операции с числами, у которых на конце 0. То есть имеем отметку 13.10 - она видимо не переводится в число, не знаю почему. Поможете, господа хорошие?
__________________ --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
Какая точность имеется в виду? luprec? Если есть возможность - пример с указанием версии AutoCAD'a (чтоб мне тут не гадать)
__________________ --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
Точность, которая выставляется через меню Формат>Единицы(Units). АКАД 2008 русский. Конкретный пример: надо числа 177.26; 177.10; 177.00 увеличить на 10. Ввожу "_PLUS", на приглашение ком. строки выбираю эти три текста, ENTER, "сколько добавлять" пишу 10, и изменяется только один из них, тот, в котором целых цифр(не нулей) после запятой столько, на сколько установлена точность. Т.е. если установлена "0.00", то посчитается только 177.26, если "0.0", то только 177.10
Подскажите пожалуйста, что надо добавить в лисп, чтоб увеличенные лиспом тексты меняли цвет при изменении значения. Ну чтоб определять, какие из текстов уже обработаны, а какие - нет. По совету VVA с пробовал вставить в лисп
. Добился только одного из двух результатов: либо считает прирост отметок, либо меняет цвет, к обоим прийти не вышло
Всем спасибо, но малость не то.. у меня не точки а много много полилиний, причем мелко и тесно..и высоты прописать текстом а потом задать по ним высоты-он меня будет материть на каждой линий уточняя, а который из текстов нужный..щас я примерно так и делаю, выводит страшно..
Подскажите плагин для Акада 2012 LT для массовой замены одного условного знака на другой. Знаю, что для полной версии акада12 есть такой, а вот для LT поговоривают что нет
Борис, спасибо, повтыкаю) в принципе работаю с такого же аццкой лиспосборкой, может тут есть именно то что надо)
Марат, Для меня geo_calk замечательная программа. Только работает она в Window. На маке ищу не компелированный вариант.)
BearDyugin, благодарю! Есть куда потратить "спасибо" от сбербанка
Я в принципе не понимаю, почему, Вы или
ваши руководители не могут себе позволить купить nanoCAD Геоника, где все эти бесплатные лиспы реализованны !
Зы, я сторонник геоникса, где вся эта хрень есть, э. BearDyugin как можно продавать при всем уважении велосипеды меняя в чужом лиспе пару строчек ?
Larisa Larochka ответила Виталию
Виталий, вот 2 кода, один мой, второй Lee Mac, открой блокнотом и сравни их. Если ты найдёшь хоть "пару строчек" одинакового кода, я публично обещаю, заплатить тебе денег (5 000 р.)
После этого, ещё раз внимательно посмотри ролик к моему лиспу и ролики по твоей ссылки у Lee Mac, и постарайся заметить, что при кажущейся схожести, они абсолютно разные по функционалу.
Виталий, а если открыть словарь английского, можно догадаться почему у них названия похожи:
align - выравнивать
text - текст
to - по
poly - (скорее всего сокращение от полилиния)
curve - кривая
Larisa Larochka
Larisa Larochka ответила Светлане
Светлана, Дело не в названии,а в принципе работы.Копнула тему, а там этих LISP пишут все кому не лень.Весь мир сидит на Lee Mac, лучше не придумали еще.
Larisa, безусловно Lee Mac самый популярный и известный lisp писатель. Он внёс огромнейший вклад в популяризации Lisp. И я ему очень благодарен, он всегда делится своим опытом, и помогает советом.
Но вернёмся к нашей(геодезической задачи) развернуть отметки на топосъёмке параллельно линейного объекта. У Lee хорошие функции, но они работают только с выбором текстов поштучно, а если у тебя трасса 10 км и этих тестов тысячи? Да хотя бы 20 текстов, кликать каждый или выделить всё разом.
Я ни когда не стану писать велосипед, это для вас может быть откровением существования большого числа lisp программистов и куча готовых решений, но мы(программисты) находимся в этой тусовке и знаем как друг друга так и о имеющихся решениях.
Читайте также: