Рекомендуется преобразовать command в command s
- Все форумы
- Технологический форум
- Машиностроение
- Металлургия
- Химия, нефтехимия и топливная промышленность
- Деревообработка
- Пищевая промышленность
- Животноводство, рыбоводство и растениеводство
- Другие темы
- Общие вопросы
- Промышленность стройматериалов
- Экология
- Охрана труда и техника безопасности
- Биржа труда
- Генеральные планы
- Сооружения транспорта
- Автомобильные дороги
- Железнодорожные пути
- Мостостроение
- Другие темы
- Общие вопросы
- Инженерные изыскания
- Биржа труда
- Архитектурные решения
- Дизайн интерьеров
- Ландшафтное проектирование
- Реконструкция и реставрация зданий
- Градостроительство
- Общие вопросы
- Другие темы
- Светотехника
- Биржа труда
- Основания и фундаменты, механика грунтов
- Конструкции железобетонные
- Конструкции деревянные
- Конструкции металлические
- Обследование и усиление строительных конструкций
- Ограждающие конструкции, кровли
- Общие вопросы
- Другие темы
- Строительная теплотехника
- Защита от шума и вибрации
- Программы ConstructorSoft
- Организация строительства и производства работ
- Биржа труда
- Классификация зданий, помещений и зон
- Пожарная сигнализация
- Общие вопросы
- Огнестойкость строительных конструкций
- Оповещение и эвакуация
- Водяное и пенное пожаротушение
- Газовое, порошковое и аэрозольное пожаротушение
- Дымоудаление
- Другие темы
- Огнеопасные свойства веществ и материалов
- Биржа труда
- Генерация электроэнергии
- Электрические подстанции
- Силовое электрооборудование
- Электроосвещение внутреннее
- Электроосвещение наружное
- Заземление и молниезащита
- Воздушные и кабельные ЛЭП
- Общие вопросы
- Другие темы
- Взрывозащищенное электрооборудование
- Электропривод и электрические машины
- Учёт электроэнергии
- Электропроводки и токопроводы
- Программы Beroes Group
- Релейная защита и автоматика
- Контактные сети
- Электроснабжение объектов
- Биржа труда
- Автоматика и телемеханика
- Локальные сети передачи данных
- Телевидение и радиовещание
- Общие вопросы
- Другие темы
- Телефония и другие системы связи
- Контроллеры и электроника
- Оптоволоконные сети передачи данных
- Видеонаблюдение и СКУД
- Охранная сигнализация
- Биржа труда
- Внутренние водопровод и канализация
- Наружные сети водоснабжения
- Наружные сети канализации
- Насосные станции
- Противопожарное водоснабжение
- Общие вопросы
- Другие темы
- Биржа труда
- Холодоснабжение
- Вентиляция
- Кондиционирование
- Воздухоснабжение
- Аспирация (пылеудаление)
- Общие вопросы
- Другие темы
- Биржа труда
- Тепловые станции
- Теплоснабжение
- Теплоизоляция оборудования и трубопроводов
- Тепломеханические решения котельных
- Отопление
- Устройства газоснабжения
- Общие вопросы
- Другие темы
- Биржа труда
- AutoCAD, AutoCAD LT и СПДС модуль Autodesk
- AutoCAD Civil 3D (Land Desktop), AutoCAD Map 3D и AutoCAD Raster Design
- Revit Architecture и AutoCAD Architecture
- Revit Structure, AutoCAD Structural Detailing и Autodesk Robot Structural
- Revit MEP и AutoCAD MEP
- Autodesk 3ds Max (Design), AutoCAD Freestyle и Autodesk Impression
- Autodesk Design Review, DWG TrueView, Autodesk DWF Writer, AutoCAD WS
- Autodesk Navisworks Products, Autodesk Vault Products
- AutoCAD Electrical
- AutoCAD Mechanical
- Autodesk Inventor
- AutoCAD P&ID, AutoCAD Plant 3D, Autodesk Intent
- Общие вопросы
- Другие программы Autodesk
- Общие вопросы
- Allplan
- GeoniCS
- CREDO
- Другие программы
- ArchiCAD
- DIALux
- MicroSoft Office
- nanoCAD и другое ПО от «Нанософт»
- T-Flex CAD и другое ПО от «Топ Системы»
- Компас и другое ПО от «Аскон»
- Программы Weisskrahe
- Стоимость строительно-монтажных работ
- Стоимость проектных работ
- Стоимость пусконаладочных работ
- Стоимость ремонтных работ
- Стоимость технического обслуживания
- Программное обеспечение для составления смет
- Другие темы
- Биржа труда
- Авторский надзор
- Архивы и делопроизводство
- Другие темы
- Общие вопросы
- Технический надзор
- Управление проектами
- Юридические вопросы
- Свободное общение, шутки, юмор
- Вопросы, замечания и предложения по сайтам
- Вопросы, замечания и предложения по форумам
- www.proektant.by
- Строительные калькуляторы и конструкторы
- Архив файлов
- Технологический
- Генплан и сооружения транспорта
- Архитектурный
- Строительный
- Пожарная безопасность
- Электротехнический
- Автоматизация, связь, сигнализация
- Водоснабжение и канализация
- Вентиляция, кондиционирование и холодоснабжение
- Теплоснабжение и газоснабжение
- Библиотека строительных норм и правил
- Библиотека строительства «Зодчий»
- Библиотека климатического оборудования
- Библиотека кафедры ТТГВ ТОГУ
- Все пользователи
- Кураторы подразделов
- Пользователи по регионам
- Посетившие форумы в течение суток
- Поиск пользователей
- Правила форумов
- Список всех подразделов
- Список всех тем
- Календарь
- Забыли пароль?
- Регистрация
- Помощь
ПОИСК ПО ФОРУМАМ
перед созданием новых тем используйте поиск,
возможно ответ на Ваш вопрос уже есть на форумахvl-cmdf, command, command-s и возвращаемые значения
Раньше command (и command-s тоже) возвращало nil независимо от того, была команда выполнена или отменена. vl-cmdf отличалась тем, что в случае успешного выполнения возвращала t, а если команда была прервана пользователем — nil.
Базируясь на этом, можно было спокойно анализировать — что сделал пользователь при выполнении лиспа, и строить дальнейшее поведение своей программы. Но в 2015 версии «лафа» кончилась: vl-cmdf возвращает t независимо ни от чего. То есть информативность функции потеряна (вопрос обсуждался на форуме adn-cis.
Захотелось мне все же сделать свой вызов команды. Да заодно и сделать выполнение «тихим». Вот что получилось:
( defun _kpblc — cmd — silence ( cmd / err sysvar res lastent )
;|
* Выполнение команды в «скрытом» режиме
* Параметры вызова:
cmd исполняемая команда — строка или список
* Возвращает t в случае успеха выполнения команды или nil в случае ошибки.
* Примеры использования:
(_kpblc-cmd-silence «_.regenall»)
(_kpblc-cmd-silence (list «_.wssave» (getvar «wscurrent») «_y»))
(_kpblc-cmd-silence (list «_.circle» pause pause))
|;
( if ( not ( member ( type cmd ) ( list ‘str ‘ list ) ) )
( princ ( strcat » \n Невозможно выполнить команду » ( vl-princ-to-string cmd ) » : неопознанный тип» ) )
( if ( vl-catch-all-error-p
( setq err ( vl-catch-all-apply
( function
( lambda ( )
( setq sysvar ( vl-remove nil
( mapcar ( function ( lambda ( x / tmp )
( if ( setq tmp ( getvar ( car x ) ) )
( progn ( setvar ( car x ) ( cdr x ) ) ( cons ( car x ) tmp ) )
) ;_ end of if
) ;_ end of lambda
) ;_ end of function
‘ ( ( «sysmon» . 0 ) ( «cmdecho» . 0 ) ( «nomutt» . 1 ) ( «menuecho» . 0 ) )
) ;_ end of mapcar
) ;_ end of vl-remove
lastent ( entlast )
) ;_ end of setq
( if lastent
( setq lastent ( entget lastent ‘ ( «*» ) ) )
) ;_ end of if
( cond ( ( = ( type cmd ) ‘str ) ( vl-cmdf cmd ) )
( ( = ( type cmd ) ‘ list )
( apply ( function and ) ( list ( vl-cmdf ( car cmd ) ) ( apply ( function vl-cmdf ) ( cdr cmd ) ) ) )
)
) ;_ end of cond
( setq res ( cond ( ( and ( not lastent ) ( entlast ) ) t )
( ( not ( entlast ) ) nil )
( t ( not ( equal ( entget ( entlast ) ‘ ( «*» ) ) lastent ) ) )
) ;_ end of cond
) ;_ end of setq
) ;_ end of lambda
) ;_ end of function
) ;_ end of vl-catch-all-apply
) ;_ end of setq
) ;_ end of vl-catch-all-error-p
( progn ( setq res nil )
( princ
( cond ( ( = ( type cmd ) ‘str ) ( strcat » \n Ошибка выполнения команды » cmd ) )
( ( = ( type cmd ) ‘ list )
( strcat » \n Ошибка выполнения последовательности команд »
( strcat ( car cmd )
( apply ( function strcat )
( mapcar ( function ( lambda ( x ) ( strcat » » ( vl-princ-to-string x ) ) ) ) ( cdr cmd ) )
) ;_ end of apply
) ;_ end of strcat
) ;_ end of strcat
)
( t » \n Ошибка выполнения команды: неопознанный тип команды» )
) ;_ end of cond
) ;_ end of princ
) ;_ end of progn
) ;_ end of if
) ;_ end of if
( foreach item sysvar ( setvar ( car item ) ( cdr item ) ) )
res
) ;_ end of defunРекомендуется преобразовать command в command s
- Все форумы
- Технологический форум
- Машиностроение
- Металлургия
- Химия, нефтехимия и топливная промышленность
- Деревообработка
- Пищевая промышленность
- Животноводство, рыбоводство и растениеводство
- Другие темы
- Общие вопросы
- Промышленность стройматериалов
- Экология
- Охрана труда и техника безопасности
- Биржа труда
- Генеральные планы
- Сооружения транспорта
- Автомобильные дороги
- Железнодорожные пути
- Мостостроение
- Другие темы
- Общие вопросы
- Инженерные изыскания
- Биржа труда
- Архитектурные решения
- Дизайн интерьеров
- Ландшафтное проектирование
- Реконструкция и реставрация зданий
- Градостроительство
- Общие вопросы
- Другие темы
- Светотехника
- Биржа труда
- Основания и фундаменты, механика грунтов
- Конструкции железобетонные
- Конструкции деревянные
- Конструкции металлические
- Обследование и усиление строительных конструкций
- Ограждающие конструкции, кровли
- Общие вопросы
- Другие темы
- Строительная теплотехника
- Защита от шума и вибрации
- Программы ConstructorSoft
- Организация строительства и производства работ
- Биржа труда
- Классификация зданий, помещений и зон
- Пожарная сигнализация
- Общие вопросы
- Огнестойкость строительных конструкций
- Оповещение и эвакуация
- Водяное и пенное пожаротушение
- Газовое, порошковое и аэрозольное пожаротушение
- Дымоудаление
- Другие темы
- Огнеопасные свойства веществ и материалов
- Биржа труда
- Генерация электроэнергии
- Электрические подстанции
- Силовое электрооборудование
- Электроосвещение внутреннее
- Электроосвещение наружное
- Заземление и молниезащита
- Воздушные и кабельные ЛЭП
- Общие вопросы
- Другие темы
- Взрывозащищенное электрооборудование
- Электропривод и электрические машины
- Учёт электроэнергии
- Электропроводки и токопроводы
- Программы Beroes Group
- Релейная защита и автоматика
- Контактные сети
- Электроснабжение объектов
- Биржа труда
- Автоматика и телемеханика
- Локальные сети передачи данных
- Телевидение и радиовещание
- Общие вопросы
- Другие темы
- Телефония и другие системы связи
- Контроллеры и электроника
- Оптоволоконные сети передачи данных
- Видеонаблюдение и СКУД
- Охранная сигнализация
- Биржа труда
- Внутренние водопровод и канализация
- Наружные сети водоснабжения
- Наружные сети канализации
- Насосные станции
- Противопожарное водоснабжение
- Общие вопросы
- Другие темы
- Биржа труда
- Холодоснабжение
- Вентиляция
- Кондиционирование
- Воздухоснабжение
- Аспирация (пылеудаление)
- Общие вопросы
- Другие темы
- Биржа труда
- Тепловые станции
- Теплоснабжение
- Теплоизоляция оборудования и трубопроводов
- Тепломеханические решения котельных
- Отопление
- Устройства газоснабжения
- Общие вопросы
- Другие темы
- Биржа труда
- AutoCAD, AutoCAD LT и СПДС модуль Autodesk
- AutoCAD Civil 3D (Land Desktop), AutoCAD Map 3D и AutoCAD Raster Design
- Revit Architecture и AutoCAD Architecture
- Revit Structure, AutoCAD Structural Detailing и Autodesk Robot Structural
- Revit MEP и AutoCAD MEP
- Autodesk 3ds Max (Design), AutoCAD Freestyle и Autodesk Impression
- Autodesk Design Review, DWG TrueView, Autodesk DWF Writer, AutoCAD WS
- Autodesk Navisworks Products, Autodesk Vault Products
- AutoCAD Electrical
- AutoCAD Mechanical
- Autodesk Inventor
- AutoCAD P&ID, AutoCAD Plant 3D, Autodesk Intent
- Общие вопросы
- Другие программы Autodesk
- Общие вопросы
- Allplan
- GeoniCS
- CREDO
- Другие программы
- ArchiCAD
- DIALux
- MicroSoft Office
- nanoCAD и другое ПО от «Нанософт»
- T-Flex CAD и другое ПО от «Топ Системы»
- Компас и другое ПО от «Аскон»
- Программы Weisskrahe
- Стоимость строительно-монтажных работ
- Стоимость проектных работ
- Стоимость пусконаладочных работ
- Стоимость ремонтных работ
- Стоимость технического обслуживания
- Программное обеспечение для составления смет
- Другие темы
- Биржа труда
- Авторский надзор
- Архивы и делопроизводство
- Другие темы
- Общие вопросы
- Технический надзор
- Управление проектами
- Юридические вопросы
- Свободное общение, шутки, юмор
- Вопросы, замечания и предложения по сайтам
- Вопросы, замечания и предложения по форумам
- www.proektant.by
- Строительные калькуляторы и конструкторы
- Архив файлов
- Технологический
- Генплан и сооружения транспорта
- Архитектурный
- Строительный
- Пожарная безопасность
- Электротехнический
- Автоматизация, связь, сигнализация
- Водоснабжение и канализация
- Вентиляция, кондиционирование и холодоснабжение
- Теплоснабжение и газоснабжение
- Библиотека строительных норм и правил
- Библиотека строительства «Зодчий»
- Библиотека климатического оборудования
- Библиотека кафедры ТТГВ ТОГУ
- Все пользователи
- Кураторы подразделов
- Пользователи по регионам
- Посетившие форумы в течение суток
- Поиск пользователей
- Правила форумов
- Список всех подразделов
- Список всех тем
- Календарь
- Забыли пароль?
- Регистрация
- Помощь
ПОИСК ПО ФОРУМАМ
перед созданием новых тем используйте поиск,
возможно ответ на Ваш вопрос уже есть на форумахСравнение функций command-s и command
Уважаемые форумчане не молчите, мне важно Ваше мнение. Опровергайте, подтверждайте, дополняйте.
Собирая информацию по функциям command-s и command прижожу к выводам:
1. command-s доступна в версиях автокада 2014, 2015 и наверное в следущих;
command доступна в версиях от R10 (возможно более ранних), по 2014. При беглой проверке лиспов без проблем отработавших от R12 по 2014 при отсутсвии вложенности command в foreach и мapcar с удивлением обнаружил их рабоспособность в ACADVER = «20.0s (LMS Tech)».
Предполагаю, что в следующих версиях автокада поддержка command будет прекращена полностью.
2. Синтаксис функции command-s: (command-s [cmdname [arguments . ]]),
синтаксис функции command: (command [cmdname [arguments . ]] . [cmdname [arguments . ]]).
По многолетней привычке за включение в command-s нескольких комманд функция коварно мстит за невнимательность. Выполняется только первая команда, остальные молча игнорируются, код без остановки и предупреждений продолжает штатно работать до завешения, результат работы кода не соответствует должному.Просмотров: 7157
- Технологический форум
- Технологический форум