|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP'ик бы...
Engineer
New-York
Регистрация: 05.09.2003
Сообщений: 10,288
|
||
Просмотров: 17147
|
|
||||
Сообщений: n/a
|
Зачем lisp :idea:
Есть текстовый редактор MtmdEdit! Он это делает! См. http://www.alx.ncn.ru Запускается командой _te Автор не я. Но я его знаю ![]() |
|||
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
Может это и не совсем то.
Этот "Лиспик" позволяет выбрать объекты, отсортировывает из них текст (пока только однострочный), а потом выстраивает его в колонку по вертикали, присваивая строкам одинаковый стиль и высоту, беря за образец самую верхнюю строку. У верхней строки стиль должен быть с высотой 0. Код:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Pilot> не пойму как это работает
1. Что значит "позволяет выбрать об-екты и отсортировывает из них текст" Какие объекты? 2. При попытке указать текст после нажатия Enter удаляет все строки кроме верхней и говорит при этом что bad argument Эдуард> Strok2.lsp выравнивает строки по выбранной оси но не создает правильный промежуток между строками. Кроме того, странно работает команда undo |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Вот сделал на скорую руку. Сначала указывем расстояние "разноса" строк, потом щелкаем по ним сверху вниз. Если выравниванеи было разное то дальше оно становиться по первой указанной строке. Безусловно это надо доработать, чтобы можно было выбирать рамкой или по одной строке и после нажатия [Enter] все делалось само. Ну уж извиняйте... Потом доработаем с учетом пожеланий и "защиту от дурака" сделаем.
Код:
|
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Раскопал небольшой Лиспик, которым как то пользовался. Распределяет текстовые примитивы равномерно между первым (наибольшее значение Y) и последним (наименьшее Y). Можно изменить одну функцию для отслеживания X. Текущая ПСК не учитывается.
Код:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Ребята, проверьте лисп VK У меня он загружается одноразово. И сразу же запрашивает строки текста. Для вторичного вызова надо опять загружать. Выравнивает строки текста между первой и последней равномерно, это мне нравится. Если получaется слишком тесно или широко можно подвинуть первую или последнюю строку и повторить операцию. Одновременно выравнивает их начала по линии между первой и последней строкой, что на мой взгляд вряд ли нужно. По лиспу от Fantomas'a пока ничего не скажу, завел личную переписку. Проверьте его кто-нибудь, pls.
|
|||
![]() |
|
||||
строительство Регистрация: 16.01.2004
Петербург
Сообщений: 165
![]() |
С лиспом VK вроде все нормально.
Однако он оформлен не как команда и к имени функции нужно обращаться в скобках (trovno) Для того , чтобы он не выполнялся сразу после загрузки уберите в файле последнюю строку -(trovno) |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
>Vova
Этот лисп я писал когда то что называется на скорую руку и использовал всего несколько раз... Надо было распределить равномерно вдоль линии. Ну не пригодился он больше ![]() Вам, нужно сдвигать тексты только по Y, а по X и Z оставлять как есть? Тогда миииинимальнейшая доработка: добавте одну строку, чтоб получилось так (setq ins (mapcar '+ (mapcar '* q (list n n n)) spt)) (setq ins (list (cadr (assoc 10 dat)) (cadr ins) (cadddr (assoc 10 dat)))) (if (and .... Последнюю строку можно выкинуть, как говорит Эдуард, а в первой имя функции начать с C: (defun c:trovno (/.... тогда можно делать вызов с командной строки как вызов обычной команды, без скобок. PS: А такой автоматический запуск (вызов функции в последней строке программы) мне кажется очень удобным для "одноразовых" функций, которые используются очень-очень редко. Раскопал файлик, перетащил его прям из проводника в окно АКАДа - функция без дополнительных запросов начнет выполняться. ![]() |
|||
![]() |
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
Цитата:
Вроде теперь заработало. В чем была ошибка я так и не понял. Код:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Считается классикой создавать блок в слое 0 и цветом.. послою. Или по-блоку (для продвинутых). Но это, вероятно, правильно, если блочки небольшие. Они могут вставлятся в разные слои и брать их свойства. Но, бывает, блок создается из многих объектов, даже из всего чертежа, и не предназначен вставляться в определенный слой и брать его свойства. В этом блоке все разноцветное и разных типов/весов линии. И вот, допустим, получаю такой блок от смежников и мне надо его перекрасить в нейтральный цвет, но оставить нетронутыми слои (не превращать в 0) и их цвета, и типы линий. Больше того, чтобы была возможность выборочно перекрашивать объекты в блоке. То есть одним тычком окрасил весь блок в нужный цвет, а затем бы последовал вопрос: СЭР, не хотите ли что-нибудь еще? После радостного YES гарсон выносит палитру цветов, я выбираю нужный и тычу куда надо. И при этом тычок добирается до самого внутреннего блока, если он вложенный.
Нужны-ли кому, кроме меня, такие фантазии? |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Код:
*Корректировка по замечанию №1. *Корректировка блокировки ошибки №2. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Ну и если лениво, так может и не перенапрягаться? ![]() |
|||
![]() |
|
||||
>Alaspher
>Лентяй Поясните мне пожалуйста, зачем в этом коде нужен обработчик заблокированных или замороженных слоев? Вы же работаете с описанием блоков, те. вам не страшны замороженные слои и при изменении цвета всех элементов блока, они все перекрасятся, не зависимо от состояния слоев! Ведь состояние слоев, это атрибуты вставок блоков, но не описаний... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Не совсем. Попробуй сделать так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Код от Alaspher
работает хорошо, но есть один существенный недостаток: не делается Undo. Можно ли исправить? Коду от Лентяя я предложил блок из всего чертежа, и он стал его регенерировать минут 5. Ничего не покрасил. Тогда я сделал рядом маленький блок и ткнул в него. И опять весь чертеж стал регенерироваться много раз. Вынес маленький блок на отдельный чертеж, На этот раз регенерации не было, но не покрасилось |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
> Vova : странно. По коду метки есть.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 23.11.2006
California
Сообщений: 4,750
|
Цитата:
Перекраска меня очень интересует, но глобальная , А могут эти коды красить обьекты из ADT? |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Спасибо Alaspher за очень хороший лисп. РЕГЕН работает. Но, как всегда, хочется улучшить.Функция BLCC перекрашивает блок одним махом, оставляя без изменения слои и их цвета и веса и типы линий. Функция ENCC может покрасить отдельные элементы блока, включая вложенные. Было бы просто замечательно, если бы программа спросила: что хочешь красить, весь блок или вложенный блок тычком на его элемент, и исполняла желание. Или весь блок сначала перекрасить, а затем уже подкрашивать либо элементы, либо вложенный блок. Правда, могут быть многочисленные вложения, и задача может не иметь решения. Но хотя-бы она сделала это с блоками второго уровня.
ЗЫ: лисп был-бы незаменим для тех, кто делает подосновы из чужих чертежей |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Кто помнит, здесь пробегал лисп, который может поменять начало и конец отрезка. Дело в том, что имеются типы линий с буквами, и надо чтобы они не были вверх ногами. А рисовать иногда приходиться с неправильного конца, а потом переворачивать
|
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Вытаскивал из ruCAD в отсутствии Автокада, поэтому мог какую-нибудь функции и выпустить. Не хватит - добавлю. Код старый, предложения по улучшению приветствуются. Код:
После загрузки вызывать команду REVPOLY любым способом. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Был бы полезен такой лиспик:
кликнув на рамку впорт-а в пространстве листа, получить его контур в пространстве модели. И чтобы он оказался в непечатаемом слое, скажем, с именем X-VPORT-GUIDE То есть отражение контура. Неброский цвет, скажем, н-р 30 будет неплох. "Х" в имени слоя это приставка, у каждой конторы может быть своя. И чтобы можно было работать и с полигональными, а может и с круглыми в-портами |
|||
![]() |
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013
|
Не помню откуда
Код:
Код:
Этот с круглыми работает Код:
Последний раз редактировалось Nike, 18.10.2017 в 19:32. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Попробовал 3 лиспа от Nike
VPL не работает с дуговыми элементами рамки вид. экрана, а только с полигональными и прямоуг. Зато может последовательно проецировать в пространство модели несколько разных вид. экранов за одно взятие команды. ------------------ VPO Работает как с прямыми так и с дуговыми элементами вид. экранов. По-очередно. ---------------- VP-outline Видимо, лисп создан для спец. случаев: после клика на вид. экран оставляет его открытым. Не работает с дугами Таким образом, для себя выбираю два первых Nike, пребольшое спасибо ![]() |
|||
![]() |
|
||||
расчёты Регистрация: 04.07.2009
Воронеж
Сообщений: 922
|
Offtop: а в каких случаях в работе этот контур нужен? Что с ним потом делаете?
__________________
"Сделай первый шаг - и ты поймёшь, что не всё так страшно." (Сенека, древнеримский философ). |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
У нас на работе есть подобный лисп, но он работает только с прямоугольными экранами. Но зато он переводит полученную в модели рамку экрана в особый непечатаемый слой который можно не удалять. Могут ли наши умельцы подправить VPL и VPO чтобы контур попал во вновь образованный непечатный слой, как я просил в н-р 36? |
|||
![]() |