Рекомендуется преобразовать command в command s
Перейти к содержимому

Рекомендуется преобразовать command в command s

  • автор:

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

beliit.com

  • Все форумы
    • Технологический форум
      • Машиностроение
      • Металлургия
      • Химия, нефтехимия и топливная промышленность
      • Деревообработка
      • Пищевая промышленность
      • Животноводство, рыбоводство и растениеводство
      • Другие темы
      • Общие вопросы
      • Промышленность стройматериалов
      • Экология
      • Охрана труда и техника безопасности
      • Биржа труда
      • Генеральные планы
      • Сооружения транспорта
      • Автомобильные дороги
      • Железнодорожные пути
      • Мостостроение
      • Другие темы
      • Общие вопросы
      • Инженерные изыскания
      • Биржа труда
      • Архитектурные решения
      • Дизайн интерьеров
      • Ландшафтное проектирование
      • Реконструкция и реставрация зданий
      • Градостроительство
      • Общие вопросы
      • Другие темы
      • Светотехника
      • Биржа труда
      • Основания и фундаменты, механика грунтов
      • Конструкции железобетонные
      • Конструкции деревянные
      • Конструкции металлические
      • Обследование и усиление строительных конструкций
      • Ограждающие конструкции, кровли
      • Общие вопросы
      • Другие темы
      • Строительная теплотехника
      • Защита от шума и вибрации
      • Программы 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 в command s

        beliit.com

        • Все форумы
          • Технологический форум
            • Машиностроение
            • Металлургия
            • Химия, нефтехимия и топливная промышленность
            • Деревообработка
            • Пищевая промышленность
            • Животноводство, рыбоводство и растениеводство
            • Другие темы
            • Общие вопросы
            • Промышленность стройматериалов
            • Экология
            • Охрана труда и техника безопасности
            • Биржа труда
            • Генеральные планы
            • Сооружения транспорта
            • Автомобильные дороги
            • Железнодорожные пути
            • Мостостроение
            • Другие темы
            • Общие вопросы
            • Инженерные изыскания
            • Биржа труда
            • Архитектурные решения
            • Дизайн интерьеров
            • Ландшафтное проектирование
            • Реконструкция и реставрация зданий
            • Градостроительство
            • Общие вопросы
            • Другие темы
            • Светотехника
            • Биржа труда
            • Основания и фундаменты, механика грунтов
            • Конструкции железобетонные
            • Конструкции деревянные
            • Конструкции металлические
            • Обследование и усиление строительных конструкций
            • Ограждающие конструкции, кровли
            • Общие вопросы
            • Другие темы
            • Строительная теплотехника
            • Защита от шума и вибрации
            • Программы 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 нескольких комманд функция коварно мстит за невнимательность. Выполняется только первая команда, остальные молча игнорируются, код без остановки и предупреждений продолжает штатно работать до завешения, результат работы кода не соответствует должному.

              Просмотров: 7159

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *