|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Дима_
Попробую разобраться. (append newlst tmp) Из хелпа Цитата:
(setq newlst (append newlst tmp)) Назначаем newlst только что полученный склеенный список. (if (parsing tmp) (setq newlst (append newlst tmp))) Не пойму что значит (parsing tmp). Из хелпа Цитата:
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Короче подразумеваеться функция которая проверят все вышеперечисленные условия к параметру и в зависимости от результат возращает T или nil, ну а дальше применяешь ее к всему списку либо как я написал - либо по КРЫС'овски.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Дима_
Можно полный пример, я так не пойму? Принцип ясен, а с исполнение туманно. Вот функция от крыса, которая преобразует выноски в список. Прицепи к ней пожалуйста какой–нибудь фильтр из мною упомянутых. Код:
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Код:
(list lst) (filtr lst) (vfiltr lst) обращаю внимание что функции НЕ ИЗМЕНЯЮТ списки а возращают отфильтрованные, то есть для замены понадобиться: (setq lst (filtr lst))
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Дима_
Вроде как начал понимать. Функция (setq lst (filtr lst)) будет применять к каждому парному элементу списка lst фильтр parsing, который проверяет удовлетворяет ли пара различным условием. Соединив твой лисп с Лиспом от крыса получил вот что. (Проверил, работает) Код:
Подскажи пожалуйста как быть со вторым и третьим пунктами? Цитата:
__________________
Блог Последний раз редактировалось Red Nova, 25.09.2008 в 12:30. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Значит так. Ставишь выноски со своими текстами (всеми, которые надо использовать в дальнейшем), получаешь с нее строки и результат на форум (код используй в #404. Хотя номер поста, конечно, вгоняет в дрожь )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
kpblc
Я так понял, что ты хочешь чтобы я привел пример списка, который надо фильтровать. Если так то вот. Но я использую лисп не с #404 а с # 408, там уже отфильтрованы выноски одна из строк которых не содержит информацию. (("1" "Дверь") ("1" "-10х100x100") ("1\"" "-10х100x250") ("1'" "-10х100x200") ("10" "2x40x40, L=1000") ("11" "2x40x40, ΣL=10000") ("12" "Тр. 89х3.5") ("13" "75х5") ("14" "Уголок 75х5") ("15" "20") ("16" "Двутавр 20") ("17" "12") ("18" "Швеллер 12") ("19" "12 Ас1, ΣL=10000") ("1a" "-10х100x600") ("1АС" "Швеллер") ("2" "Окно") ("2" "Лист -10х100x100") ("20" "20 А500c") ("21" "8 20 А500c") ("3" "Фл. 300х8") ("4" "Фланец 300х8") ("5" "Лист ромб -10х100x300") ("6" "Лист чечевица -10х100x300") ("7" "-4х50, L=1000") ("8" "Полоса -4х50, L=1000") ("9" "Полоса -4х50, ΣL=10000") ("a" "-10х100x500") ("a1" "-10х100x300") ("a2" "-10х100x400") ("АС" "Двутавр") ("Торец" "фрезеровать")) Здесь на месте крякозябр спец. символы СПДС для профилей, на всякий случай выкладываю и корректный список в формате dwg (без крякозябр). Думаю шрифты СПДС в наличие у формумчан есть. В прикрепленном файле есть также пояснение что надо удалить, а что оставить. Цитата:
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
С 3 условием все просто составляешь список (spisok) возможных начал и
Код:
(check3 (cadr tmp) spisok) Со вторым пунктом распиши условия поясней, чего можно чего нельзя. P.S. Вобще алгоритм проверки не очень правильный, т.к. проверяет весь spisok, а достаточно до совпадения, то есть что то типа (while (and ..., но чтоб тебя не путать оставил проверку всего списка.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Дима_
Не понял что ты имел в виду говоря Цитата:
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
> #410: Лови:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
kpblc, Спсибо, но пока удаляет и то что не надо удалять, вот что осталось
(("21" "8 20 А500c") ("20" "20 А500c") ("19" "12 Ас1, ΣL=10000") ("17" "12") ("15" "20") ("12" "Тр. 89х3.5") ("11" "2x40x40, ΣL=10000") ("10" "2x40x40, L=1000") ("4" "Фланец 300х8") ("3" "Фл. 300х8"))
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Тогда надо образец. Я проверял на 12 выносках, работало вроде корректно...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Пытался сделать как Дима_ говорит, лисп перестал работать.
Что я сделал не так? (последние изменения отмечены красным) Код:
__________________
Блог Последний раз редактировалось Red Nova, 27.09.2008 в 13:01. |
||||
|
||||
kpblc,
Вот образец
__________________
Блог |
||||
|
||||
Дима_
Попробую еще раз объяснить про пункт 2, Верхняя строка выноски должна содержать номер позиции, говоря номер подразумеваем цифру, букву (одну), цифру + букву. То есть номера могут быть такие. 1, 2, 3, 4, 5, 6, 7, 8, 9 a, b, c, d, e, f, g а, б, в, г, д, е 1a, 1b, 1c, 1d, 1e, 1f, 1g 1а, 1б, 1в, 1г, 1д, 1е Допускается использовать все вышеупомянутое вместе со знаками ‘ и “ Не допускается чтобы в номере одновременно были две буквы. То есть строки “1ас” “ad5” не подходят.
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
P.S. Вобще у тебя все функции объявляються внутри функции тест - не правильно это - не должно быть вложенных defun'ов: то есть не (defun f1... (defun f2...) ) а последовательно: (defun f1...) (defun f2...)
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 25.09.2008 в 22:27. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |