|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Всем ку!
Подскажите плиз со следующей задачей. Требуется запросить ввод у пользователя. Ввести разрешено либо число/букву (и числа и буквы могут быть и двузначными), либо список из нескольких чисел/букв разделенных запятой и/или пробелом Затем введенное нужно перевести в список из strings. Пример 1 Вводим: F, 1, 2, LW Получаем: ("F" "1" "2" "LW") Пример 2 Вводим: 20 a Получаем: ("20" "a") Пример 3 Вводим: R1 Получаем: ("R1") Могу начать так: (getstring T "\nyour prompt:") и получить string типа։ "F, 1, 2, LW" Как можно дальше раздробить "F, 1, 2, LW" на список? ----- добавлено через ~3 ч. ----- Нашел вариант у Lee Mac-а․ Не совсем то, но подстроиться можно.
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ну дык... Либо initget + getkword, либо создавать диалог и выбирать в нем.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Спасибо, учту
__________________
Блог |
||||
|
||||
ОПС Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128
|
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Нашел мастер-класс 2014-ого от А. Кулика. Там есть пример с командой _purge
Вроде идея описанная в статье понятно, но почти сразу начинается головная боль. Во-первых он (приведенные код) не работает (может опечатка в PDF) _o - мне автокад называется неверным ключом... Во-вторых, не понимаю, зачем вводить другие ключи если мы уже указали _a - т.е удалять все объекты. Вот код чтоб было понятнее. Не вижу разницы в работе этого (за исключением ошибки с _o) Код:
Код:
Готов пойти по всем ссылкам куда пошлете и читать книги =), чем в принципе и занимаюсь в последние дни. Просто такие странности в чужом коде в самом начале пути ставят в тупик, начинает казаться, что вообще ничего не понимаю. И еще маленькие вопросы, в диалоговом окне purge есть галочка "удалять вложенные объекты" - как ее командно активировать? Я правильно понимаю, что ключи к любой команде можно посмотреть только вызвав ее через - и дальше искать заглавные буквы или есть какие-то "списки"? Последний раз редактировалось Immortal_6666, 14.02.2017 в 19:22. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Immortal_6666, почему-то в последнее время нигде не могу найти список английских команд с опциями, раньше точно были они в онлайн-справке к AutoCAD 2010 - теперь там лишь какие-то скудные описания. Поскольку последнее время почти отошел от командных методов, давно не приходилось искать. Если кто ткнет в ссылку, буду признателен.
Скажу точно, что опция "_r" чистит зарегистрированные приложения, которые не чистит опция "_a". Про остальные опции из кода выше сказать не могу, т. к. неясно, какая из букв кажлой опции - заглавная, но видимо, они также не чистятся при выборе "всего". Если скинешь полный список опций этой команды, будет яснее. Черточка означает вызов команды в бездиалоговом режиме (в режиме командной строки), если таковой для команды имеется. Это как раз для программной работы, без чертечки выскочит окно. Точка - это гарантированный вызов родной автокадовской команды, если вдруг она переопределена пользователем на свое усмотрение. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
А насчет черточки - я понимаю, что она делает, но в коде без нее тоже никаких окон нет. Я использую режим с черточкой, чтобы предварительно "подсмотреть" ключи команд перед написанием макроса. Но не понимаю, зачем ее включили в данный код - с ней в командной строке выводится целый том войны и мира, без нее лисп работает "тихо", но тоже работает и без диалоговых окон. Ключи описаны в файле (он в открытом доступе лежит, думаю, автор не будет против, что я приложу его сюда), данный пример - страницы 5,6. Главный вопрос, наверное, как догадаться, что purge с ключом "все" чистит на самом деле не все и что нужно вызывать ключи _r и другие? Последний раз редактировалось Immortal_6666, 14.02.2017 в 20:01. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
На тот момент, если не ошибаюсь, у меня было несколько файлов, в которых очистка "всего" не удаляла ни пустые тексты, ни нулевую геометрию, ни т.н. "Связанные данные" (они же AcDgnLS). Почему так получалось - не помню, но для гарантии и перестраховки дополнительно ввел соответствующие ключи.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Я, например, часто как раз предпочитаю проконтролировать, что удалилось. Например, когда потёр ненужные блоки с чертежа, проверить: а удалились ли они из базы или я стёр не все? Цитата:
----- добавлено через 56 сек. ----- Вот Алексей уже сам и ответил. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Он не упразднен, он появился только в 2015 версии, если не ошибаюсь.
P.S. Вообще говоря, уже достаточно давно предпочитаю обходиться некомандными методами Контроля больше
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
http://adn-cis.org/forum/index.php?topic=709.0
http://adn-cis.org/forum/index.php?topic=2617 "Что это такое и откуда берется" - на русском информации мало: https://www.google.ru/webhp?hl=ru&sa...%D0%B2+autocad По моим ощущениям, это последствия перегона данных из Microstation (кажется) в dwg.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Спасибо, Алексей, понял. Это DGN. У gomer'a в CleanDWG есть очистка от типов линий DGN. И она отрабатывает в 2011-м с результатом "Стили линий dgn не найдены". А вот опции "_O" в purge нет. Мне пока не приходилось с ними встречаться в чертежах.
|
|||
|
||||
Регистрация: 23.09.2016
Сообщений: 4
|
Добрый день!!
Подскажите, пожалуйста, как быть. В чертеже создаю блок. Начинаю "вскрывать" его - выдает ошибку. Если этот блок скопировать, то скопированный блок будет так же выдавать ошибку. Но, если применить тот же код для исходного блока, то все работает. Прикладываю код - он чисто для проверки. Блок тоже в прищепке. Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Что ты хочешь получить? В каком месте ошибка? Какая ошибка?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 23.09.2016
Сообщений: 4
|
Доброе утро!
Ошибка: неверный тип аргумента: lentityp nil. - выскакивает в 13 ой строке. Код - часть приложения, которое собирает блоки в кучку по списку с графической базы данных - просто убрал все лишнее. Может что не то у меня с автокадом? На предприятии несколько версий, везде лицензия и везде похожая ситуация периодически возникает. Ошибка выпадает только в последнем созданном в этом чертеже блоке. И, что самое странное, когда просто копируешь этот блок рядышком - все начинает работать. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Тебе что от блока надо? На данный момент ты просто получаешь (зачем?) ename-указатели на элементы набора. Если не удается обработать последний примитив (а так и должно быть - ведь следом за ним вообще ничего нет), оно тебе вываливает ошибку.
Тебе сконвертировать набор в список примитивов надо, что ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 23.09.2016
Сообщений: 4
|
Давай сначала. Допустим, я ищу в блоке определенную надпись. Для того чтобы до нее добраться - я должен проковырять весь блок. Здесь все упростил, чтобы "обкатать" на простом примере. Обычно все работает, но в этом случае код не проходит весь цикл ни разу - вылетает ошибка. Судя по тому что возникают вопросы - у тебя все работает и в конце вылетает окошко "все ок". Стало быть дело либо в моем автокаде, либо в моем компе.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Опять путаница между описанием блока и вхождением блока. https://www.google.ru/search?q=%D1%8...fIH8WS6ASpw5Ag
----- добавлено через 13 сек. ----- Хоть статью пиши, ей-богу! ----- добавлено через ~33 мин. ----- В качестве первых набросков: http://autolisp.ru/2017/02/18/blockdef-and-blockref/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 17.02.2017
Сообщений: 9
|
Всем доброго времени суток!
Совсем недавно начал пробовать писать что то в лиспе, поэтому не совсем представляю себе его возможности. Кто в курсе, скажите, есть ли возможность написать такого типа программу: Есть огромная база чертежей *.DWG. Каждый чертеж имеет название в формате aaaaaa.bbbbbbb*.dwg где : аааааа - номер машины bbbbbbb - номер чертежа * - любые символы(или их нет) чертежи разложены по папкам с путем ...\аааааа*\... где : аааааа - номер машины * - любые символы. Есть файл спецификации, в котором, помимо прочего, есть, в виде текста, номера чертежей. Вот так это выглядит: То есть, например чертеж 543011.2801043(с картинки) будет иметь такой путь: ...\543011*\543011.2801043*.dwg Есть ли у лиспа такие возможности, что бы при клике на номер чертежа в спецификации, данный чертеж открывался в новом окне? |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |