Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Алексей (IdeaSoft) от 13-10-2020, 11:03:31

Название: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:03:31
Как на LISP будет команда _ai_selall
Делаю так:

Код - Auto/Visual Lisp [Выбрать]
  1. (command "_select" "all")
  2. ; и так тоже
  3. (command "_ai_selall")

и не получается

Как правильно то?

Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:10:12
Алексей (IdeaSoft),
Код - Auto/Visual Lisp [Выбрать]
  1. (command "_select" "_all" "")
Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:12:11
Или:
Код - Auto/Visual Lisp [Выбрать]
  1. (C:ai_selall)
Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:13:54
Или:
Код - Auto/Visual Lisp [Выбрать]
  1. (sssetfirst nil (ssget "_X"))
Название: Re: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:15:12
Спасибо!
Первый вариант почему-то в AutoCAD 2020 не работает, а вот второй
это -вот (C:ai_selall) заработал.

Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:17:05
Первый вариант почему-то в AutoCAD 2020 не работает
Работает. Он выполняет выбор всего, но не подсвечивает выбранное.
Название: Re: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:18:29
Первый вариант почему-то в AutoCAD 2020 не работает
Работает. Он выполняет выбор всего, но не подсвечивает выбранное.
А понял - это даже лучше. Ресурсы на рисование ручек не нужно тратить.
Но ручки все равно более 32 тыс элементов не поставить.
Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:21:36
А понял - это даже лучше. Ресурсы на рисование ручек не нужно тратить.
Всё упирается в то, что ты собираешься делать с этим набором. В случае _SELECT _All при вызове команды, которой нужно передать набор объектов, следует вместо набора указать "_P" (Previous - предыдущий)
Название: Re: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:27:01
У меня 400 маленьких файлов, каждый размером от 70К до 200К
Когда я подключаю 400 внешних ссылок AutoCAD тяжело работать с таким количеством
Если все ссылки внедрить в один, то умножаются слои и также растет таблица блоков.
И поэтому я хочу слить все эти файлы в один. Запустив программку
Как-то так:

Код - Auto/Visual Lisp [Выбрать]
  1. (command "_select" "_all" "") ; выбрать все
  2. (command "_copyclip")         ; скопировать
  3. (command "_close")            ; закрыть файл
  4. (command "_pasteorig")        ; вставить с исходными координатами


Название: Re: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:30:20
Сомнения берут меня в том что я замечал, 
когда вручную копируешь и потом команда
"вставить с исх. координатами"
не всегда доступна.
Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:33:15
Сомнения берут меня в том что я замечал, 
когда вручную копируешь и потом команда
"вставить с исх. координатами"
не всегда доступна.

Использовать буфер обмена для таких манипуляций - это самое последнее дело. Есть команда _Insert и даже открывать чертеж, из которого вставляешь, не нужно.
Название: Re: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:34:45
Есть команда _Insert
А _insert вставит не как блок?
Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:38:09
А _insert вставит не как блок?
Можно и как блок и как расчлененный блок.
Название: Re: Команда выбрать все
Отправлено: Алексей (IdeaSoft) от 13-10-2020, 11:40:34
А какой синтаксис?
как-то так?

Код - Auto/Visual Lisp [Выбрать]
  1. (command "_insert" "путь к файлу")

Или еще какие аргументы нужно передать?
Название: Re: Команда выбрать все
Отправлено: Александр Ривилис от 13-10-2020, 11:48:01
А какой синтаксис?
Введи в командной строке AutoCAD:
_-INSERTи посмотри последовательно что он у тебя спрашивает. Если перед именем файла стоит звездочка, то при вставке происходит расчленение блока.