|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Команда получается из функции добавлением в начало функции символов "C:" (по русски можно сказать что это намек, что данная функция это команда)
После символа "/" указываются "внутренние переменные функции, которые впрочем можно не описывать. Поэтому функцию FHS можно упростить: Код:
И в итоге программа ничего не выдает на выходе |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Цитата:
Цитата:
Значит в текущем файле не найдены штриховки.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.01.2020
Сообщений: 186
|
Конструкция defun определяет функцию, в данном примере это функция FHS. Чтобы вызвать функцию, загруженную в автокад надо набрать в командной строке (FHS).
Если имя функции начинается с C: (например C:FHS) - то автокад уже воспринимает эту функцию как свою внутреннюю команду, и для вызова ее достаточно набрать все что написано после C: - т.е. просто FHS или же все название функции в круглых скобках (C:FHS). |
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Понятно, добавил C: и после fhs функция выдала список штриховок. Вызов (fhs) не знал. Спасибо буду знать!
Не понимаю как несколько раз вызванная строка (setq l (cons h l)) создает список? Почему она каждый раз дополняет список, а не записывает его заново? Модифицировал функцию: Код:
Причем StyleName это "список символов", а HatchCol это список названий штриховок. Что там надо исправить? Последний раз редактировалось МишаИнженер, 07.12.2022 в 13:08. |
|||
|
||||
Регистрация: 10.01.2020
Сообщений: 186
|
Ты бы хоть писал где ошибка происходит, в какой строке... Если про 121 - то ошибка в (t (member StyleName HatchCol)) - lisp ищет функцию именем t. А тебе похоже нужно сравнение с истиной. И предвкушая будущее - не надо писать конструкт вида (if (= t (member StyleName HatchCol)) или (if (not (null (member StyleName HatchCol)))) - можно просто (if (member StyleName HatchCol) (setq l (cons h l)) - присваивает переменной l значение пары, в которую записывает имеющееся значение переменной l |
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Я назначаю точку останова в AutoLisp, программа останавливается, я проверяю значения переменных, но потом все зависает. Приходится все останавливать и запускать все заново.
Насчет команды member мне кажется надо создать список из 1 аргумента. Но как это сделать? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
так пошаговая отладка до строчки кода, на которой все зависнет/вылетит с ошибкой. Затем точка остановки на предыдущие строки и снова пошагово, контролируя при этом переменные. На любом языке так локализуются ошибки времени исполнения, если сразу не увидел причину.
|
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Да надо сравнение с истиной
Цитата:
а получается ("знач1" "знач2" "знач3") Непонятно! |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 470
|
Вообще говоря, если второй элемент не атом, т.е. если /b/ - список,
то (cons a b) просто добавляет первый элемент /а/ в начало списка. И, как правило, в этом функционале (cons … ) и используют.
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 10.01.2020
Сообщений: 186
|
https://help.autodesk.com/view/ACD/2...E-F070F0A7CB2B
добавь в закладки! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Offtop: Мне интересно, насколько у народа хватит терпения объяснять, что справку все же не стоит игнорировать...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Интересная идея и функция вроде подходит. Спасибо!
Исправил код Код:
Не могу найти справку на функцию Т. Как правильно её использовать и что это за функция (это функция из функций сравнения)? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Это что за бред зеленой лошади?
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Offtop: это просто лисп ТС "не зашел".. или его сразу "воспринимаешь", или опыт с "обычными" языками программирования вступает в постоянный конфликт с подходом к программированию в лиспе. Учитывая явное нежелание ТС хоть как-то систематизировать знания - это, похоже, надолго)
|
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Если функция member возвратит номер позиции (не nil) значит это значение при конвертировании в булевский тип должно быть ИСТИНА, а функция T сравнивает аргумент с истиной. Если аргумент ИСТИНА, тогда функция T должна вернуть значение ИСТИНА.
Но почему функция Т не хочет выполняться? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,852
|
Для ради приколу посмотри в справке примеры использования if в лиспе. В VBA ты тоже пишешь:
If value=1 Then True Else False End If ? ----- добавлено через ~2 мин. ----- Пара недель ненапряжного чтения и пара десятков собствнных экспериментов (только нормальных, а не простого копипастинга кода без малейшего понимания что куда и зачем) будут значительно более эффективны. Offtop: Но ТС, как тот комсомолец, без трудностей не может, похоже.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Т - это вроде логическая константа, а не функция. А if воспринимает nil как ложь - это вам любая справка скажет, если туда заглянете)
----- добавлено через ~2 мин. ----- Offtop: люди в свое время изучали языки программирования методом тыка, конечно.. но это уже лет этак 20+ неактуально в связи с появлением инета) |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |