|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
А вот это - неправильный подход. Рекомендую. Прочитай за вечер первую главу (она всего 35 страниц) - поймёшь, что сильно ошибаешься. Настоятельно рекомендую.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Первая статья Solo Autocad
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
![]() Код:
|
|||
![]() |
|
||||
Вот, пример того, как можно получить идентификаторы объектов, содержащих текст, соответствующий указанному нами регулярному выражению (маске - если кому-то так понятней).
Код:
Это код на выборку. При желании можно добавить и замену (так же на основе регексов). Методу GetPrimitives можно задавать любые правила фильтрации - при этом не придётся переписывать код.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 21.10.2010 в 22:22. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Аналог attin/attout, но для текстов. Без особых проверок.
Соответственно 2 команды: textout и textin
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
В общем то регулярные выражения присутствуют и в лиспе. Может быть не такие мощные как в С, но все же
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
ну так в рамках указанной задачи этого бы вполне хватило (во всяком случае для выборки).
Здесь ряд хороших статей про регулярные выражения и их использование в повседневной жизни на примере использования PowerShell (современная альтернатива cmd.exe, более мощная и удобная). Offtop: Это ежели найдутся любознательные.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 21.10.2010 в 23:04. |
||||
![]() |
|
||||
Цитата:
Цитата:
![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 10.06.2010
Сообщений: 5
|
Доброго времени суток всем форумчанам!
Большое спасибо всем за отклики.. я не думала, что за 1 день будет СТОЛЬКО ответов!!! (хотя некоторые разговоры были междусобойными.. но это в принципе не важно) Обязательно попробую все предложенные варианты и если совсем ничего не получиться придется конкретизировать проблему и делать конкретный заказ... Я сама в лиспе не много тоже писала, поэтому если получится могу переделать некоторые части программ. Заранее всем спасибо! |
|||
![]() |
|
||||
Странно, мне казалось, что я ясно указал верное направление решения...
Аке, здесь выкладываю готовое решение (любой поиск с любой заменой текстового контента), озвученное видео, демонстрирующее, как это работает, исходники и откомпилированная библиотека. Offtop: п.с. Если уж и это будет непонятным - я умываю руки.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Андрей.
Барышня в первом своем посте представила пример, где необходимо вклинить определенный номер в общую кучу, так чтобы все номера, которые больше (ориентируясь по крайней правой группе цифр), увеличили свое значение на 1. Как пользуясь вашим плагином это осуществить? В нем как минимум отсутствует средство запроса у пользователя номера, от которого требуется вести пересчет. Ну и обратная задача, когда удалено несколько номеров. Причем, не обязательно подряд идущих. Требуется пересчитать в сторону уменьшения часть оставшихся, чтобы заполнить образовавшуюся "дыру" (дыры). p.s. По поводу лиспа. Лично я считаю, что все, что можно написать на лиспе, надо писать на лиспе из соображений минимальных затрат на сопровождение (а то и вовсе их отсутствия). Поставленная задача, на мой взгляд, вполне лиспу по силам. Для junio77 и всех, кому интересна данная тема. Во вложении представлен архив, содержащий лисп-файл программы и txt-файл справки для прикладной функции recount, как раз предназначенной для решения широкого круга задач перенумерации. В этом же лисп-файле содержится функция командной строки NUMRECOUNT. Её цель - продемонстрировать использование прикладной функции пересчета на примере однострочных текстов. Воссоздайте в AutoCAD пример из стартового топика данной темы и попробуйте. Должного тестирования, разумеется, не было, поэтому если возникают ошибки, сообщайте. Если вопросы -спрашивайте.
__________________
...в шее моей жилы железные, и лоб мой - медный... Последний раз редактировалось Pastor, 24.10.2010 в 18:36. |
|||
![]() |
|
||||
Проделанная работа впечатляет!
![]() Как время будет, попробую проанализировать... На первый взгляд - работает хорошо! Не совсем пока понятно, для чего указываются опции учета и неучета префиксов и суффиксов... Функцию c:numrecount, конечно, нужно дополнять возможностью отмены, обработкой ошибок ввода. Без этого запускать ее на реальных рабочих чертежах опасаюсь ![]() Если ничего критичного не обнаружится, можно будет доработать маленько и применять. |
||||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Цитата:
Если на чертеже есть группа деталей д1, д2, ...д100, а ещё есть группа а1, а2, ... а32, то персчет в первой группе гарантированно не затронет вторую группу, если установлена опция учета префикса. И гарантированно затронет, если опция не установлена. То же самое и с суффиксом. Функция C:NUMRECOUNT исключительно демонстрационная. Можно написать похожую для атрибутов блоков, мультивыносок и всего, из чего можно выделять (и изменять) текст. Важно, что при этом функцию recount не требуется переделывать. Это такая прикладная функция перенумерции широкого спектра действия.
__________________
...в шее моей жилы железные, и лоб мой - медный... Последний раз редактировалось Pastor, 25.10.2010 в 12:22. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
это только кличка Регистрация: 22.10.2006
Москва
Сообщений: 252
|
Как ни странно это прозвучит, но я в автокаде не работаю и не программирую уже года три. То, что здесь представлено - это скорее программирование около автокада. Я свой талант зарыл (и забыл где).
![]() Вам, возможно, помогут здешние корифеи автолиспа! При условии, что задача не очень громоздкая. Плюс, вам нужно максимально подробно сформулировать её и обязательно дать примеры ваших блоков с атрибутами. p.s. Есть еще готовое решение от gomer: http://dwg.ru/dnl/3716. Гляньте, вдруг это то, что вам нужно.
__________________
...в шее моей жилы железные, и лоб мой - медный... Последний раз редактировалось Pastor, 14.12.2010 в 15:56. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Разорвать объекты в точках пересечения. BreakObjects. | VVA | Готовые программы | 110 | 25.02.2022 07:33 |
Как удобней копировать объекты | VVN | AutoCAD | 15 | 20.10.2016 01:24 |
Как определить стоимость проектных работ, если не известна стоимость строительства? | dextron3 | Поиск литературы, чертежей, моделей и прочих материалов | 37 | 27.08.2014 18:32 |
пропали объекты с разных слоёв | chili-9 | AutoCAD | 14 | 19.11.2009 17:14 |
Невидимые объекты | Vova | AutoCAD | 9 | 15.09.2004 17:24 |