|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 16.04.2016
Сообщений: 107
|
На https://forums.autodesk.com/t5/visua...r/td-p/9626606 нашел код для определения s/n флэшки:
Код:
Допустим есть список (setq lst (list -1754099887 175646485 927914207)), в котором перечислены серийные номера нескольких флэшек. Как определить, что флэшка (её серийный номер) попадает в этот список? Попытался сделать так: Код:
Что-то я с member напутал. ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402
|
А вот если код отформатировать, станет понятно, где скобки не на своих местах. Уж молчу про то, чтобы прогнать базовую функцию и узнать, чего она вообще возвращает. ))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 28.03.2025 в 14:57. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Функция member - самый простой способ определить вхождения одной величины в список.
Никому не известную величину в списке невозможно найти. Вообще никак Тем не менее, тема форума "Научите лиспу..." 1 Функция UsbDriveSerialNumber возвращает nil если в компьютер не воткнуто флешек, а если воткнуты - то список вида: (("D:" 1924838121)("H:" 191335465456)("F:" 456798431)) Количество элементов списка зависит от количества воткнутых в компьютер флешек 2 Берешь нужные флешки, втыкаешь в компьютер и запускаешь (UsbDriveSerialNumber) 3 Смотришь на номера и записываешь их в блокнот 4 Пишешь что-то вроде такого: Код:
|
|||
![]() |
|
||||
Регистрация: 16.04.2016
Сообщений: 107
|
Спасибо!
Пункты 1-3 мне были понятны и вопросов не возникало: Цитата:
а именно: Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402
|
А провернуть entget не судьба? )
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Изменяю строку 18, но не получается
В 4 строке выбираютя, а в 18 проверяются, убрать проверку? Последний раз редактировалось Ingpro, 05.04.2025 в 08:08. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Если ты используешь в ssget фильтры, то в наборе будут только объекты удовлетворяющие фильтру - других не будет. Это даже видно при выделении объектов
И присоединяюсь к Текст мультивыноски не в 1-й группе находится И лучше все-таки не (exit) использовать |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402
|
Да вашу ж за ногу! Разницу между MLEADER и MULTILEADER вообще видно или нет? 18 строка не нужна, у тебя проблема в фильтре ssget! Там кто править будет - Пушкин?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Доброго!
Имею динамический блок с атрибутами. Требуется маркировать этот блок при помощи мультивыноски (Multileader). Скрипт должен создавать мультивыноску, содержащую два поля, ссылающихся на блок: Первое поле — значение атрибута блока Второе — его длина (один из динамических параметров). Скрипт прекрасно работает, если ссылаться только на одно из этих полей — либо атрибут, либо длину. Однако, если попытаться объединить оба поля в один текст, мультивыноска создается, но остаётся пустой. Ниже приведены три команды. Они идентичны, за исключением одной закомментированной строки в test1 и test2. test1 и test2 работают корректно. test3 рисует мультивыноску, но текст в ней отсутствует. Я прилагаю файл .dwg, в котором показан результат выполнения каждой из команд. Надеюсь, кто-нибудь сможет объяснить вечному чайнику, почему test3 не работает ![]() Код:
__________________
Блог Последний раз редактировалось Red Nova, 10.04.2025 в 15:33. |
||||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
1 Ты не приложил функции (get-all-atts) и (Get-ObjectID-x86-x64)
2 Я нашел их в интернете, но test2 не запускается. Возможно ты не последний вариант программы выложил. Насколько можно судить (get-all-atts) возвращает список из точечных пар (ИМЯ_АТРИБУТА . ЗНАЧЕНИЕ) В строке 43 ты пытаешься скормить ей вот это (caddr (assoc "TYPE" attlst)) - результат caddr указанной точечной пары не существует - будет ошибка. Даже больше - для такой пары есть только car и cdr 3 Функция (Get-ObjectID-x86-x64) принимает в качестве аргумента только указатель на объект - ENAME или VLA-OBJECT Тебе нужно получить объект АТРИБУТ и уже его передавать в (Get-ObjectID-x86-x64) |
|||
![]() |
|
||||
Спасибо за ответы!
name02 Цитата:
koMon Работает! Но требует regen, а для большого файла это тормозить будет. Хотелось бы без regen
__________________
Блог Последний раз редактировалось Red Nova, 10.04.2025 в 15:49. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,402
|
Можешь попробовать (entupd (entlast))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Не работает
![]() Также как и не работает (command ".updatefield" (entlast) "")
__________________
Блог |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |