|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
alex8888, если правильно понял Твой вопрос, то
Код:
__________________
cadtools |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
TararykovDG,
спасибо, именно то что нужно. А если немного по другому, можно ли обойтись вообще без составления списка? Например, имею переменные, а,б,в,г и тд, в которые записаны строковые значения из полей диалогового окна (на DCL). Хочу эти значения получить числами, при этом без разницы, введены ли они с разделителем - запятой или точкой и записать их в те же переменные. Как я говорил, по отдельности труда не составляет использовать конструкцию типа (distof (vl-string-subst "." "," x) 2). Как работать со списком теперь тоже понятно. Но из списка снова нужно восстанавливать эти переменные, той же nth. Есть другие алгоритмы решения задачи? |
|||
|
||||
alex8888,
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
alex8888, все-таки я не до конца правильно понял что было нужно и хотя VVA уже написал как надо, вот еще вариант, хотя те же "..." только сбоку
Код:
__________________
cadtools |
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
TararykovDG,
а это как раз то, что пытался изобразить я, но никак не врубался, куда же "ваучер засунуть" (гусары-молчать!). Оказывается, просто надо было докопаться до (eval x), остальное, вроде бы как и правильно начинал делать. Еще раз спасибо. |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Еще обрати внимание, что используется set x..., а не setq x ... . Иначе работать не будет, так как функция setq x ... присваивает некоторое значение переменной x, а set x ... присваивает значение символу, на который ссылается x, в нашем случает x поочередно ссылается на переменные a b c d и как раз им уже и присваиваются значения полученные выражением (distof (vl-string-subst "." "," (eval x)) 2)
__________________
cadtools |
|||
|
||||
Цитата:
Я бы проверял значение ещё при его вводе в диалоге Код:
__________________
Почему все вдруг становятся умными, когда уже не надо? Последний раз редактировалось Disney, 13.04.2011 в 13:18. |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Такую (или любую другую) проверку лучше прятать в библиотечную функцию, чтобы не писать в каждой конкретной программе. Эта функция должна блокировать какой-то при "tile" при неверных параметрах ввода. Сообщение об ошибке должно быть как можно более информативным. Можно и в alert вывести (что проще), а можно и в специальный элемент самого диалога. Вот пример такой функции Код:
|
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
До "суровой" проверки руки пока не дошли, по простому, считаем, что вводится число, хотя и уже без разницы в виде с "," или "." Если будет не число, то программа не сработает - покажет ошибку, хотя и неизвестно где конкретно.
А вот action_tile в виде библиотечной функции что то не получается создать - есть ли тут какие-то подводные камни и подвохи? В качестве примера попытка создать модуль на основе кода 1408: Код:
Код:
Код:
|
|||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
1. открыть описание блока в текущем файле и внести изменения
2. открыть описание блока в файле-библиотеке, внести изменения и сохранить. Вообще-то можно было бы сделать совсем по-хитрому: внести изменения в библиотечный файл, а потом при импорте проверять соответствия элементов имеющегося блока и библиотечного блока. При необходимости заменить состав. Только долго это и не всегда корректно работает... P.S. Хотя, если использовать ToolPalettes, то там есть возможность повторного импорта указанного блока (с возможностью переопределения), насколько мне помнится.
__________________
(/= RegDate StartReadDate) |
|||
|
||||
"MIP_LIB_DYN" - имя dwg файла библиотеки
"MIP_WELL_DYN_P" - имя блока в библиотеке Frigate, В этой ф-ции используется команда _-insert, отсюда нюансы: 1. В текущем чертеже не должно быть блока и именем, совпадающем с именем файла библиотеки. Если такой блок есть, нужно дать ему новое имя. 2. Если хочешь обновить сам блок, так же дай ему новое имя. Тогда после insert вставится обновленный блок
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Disney, перечитал справку, книгу Полещука по нескольку раз в указанных местах и так ничего не понял, на что ты советовал обратить внимание, извини.
По action_tile наверное, что выражение надо писать в кавычках вот так: Код:
quote для обработки выражения без вычисления. Ну а теперь как связать все воедино? Получается, что в action_tile мы передаем Лисп-выражение в виде строки. Но почему нельзя передать вместо нее вызов функции с той же строкой внутри? Или надо как то по другому записать? Если не лень, можешь разжевать поподробнее ? |
|||
|
||||
Цитата:
Я честно наверно минут 30 пытался ответить не разжёвывая, так, намёками, чтоб сам разбирался, но ни фига не получилось. Вот так будет работать, разбирайся: Код:
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
А зачем 58? Не проще ли сделать один аргумент, но списком? http://autolisp.ru/2009/10/21/lisp-overloading/
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Лиспер, да я в курсе, и тема недавно подобная была.
Конкретный пример, есть у меня в диалоге 4 edit_box, допустимые значения:
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |