Перейти к содержанию

ToolPalette. Вставка инструмента при помощи Lisp


Рекомендуемые сообщения

Собственно вопрос в заголовке темы.

Существует ли возможность вставить с палитры инструмент программным способом? Желательно Lisp.

Если существует, то как?

Ссылка на сообщение
Поделиться на другие сайты

почему именно "с палитры"? по факту ведь в самой палитре не хранится то что нужно ,а только ссылка на блок/скрипт/инструмент.

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Ivanco сказал:

по факту ведь в самой палитре не хранится то что нужно ,а только ссылка на блок/скрипт/инструмент.

Согласен, но как например вставить текст на определенный слой и вернуться на текущий?

Или полилинию..

Лиспы от ле мак в нано не работают..

А палитра реальный шанс для дилетанта вроде меня не углубляясь в код реакторы и прочее получить результат малой кровью..

добавлено через 1 минуту

На самом деле в палитре может храниться не ссылка, а полноценный лисп или еще чего

добавлено через 9 минут

Тут погуглил.. автокад вроде так не умеет..

Если нано сможет, со временем получит еще более явное  конкурентное преимущество..

Ну или добавить возможность раскидывать примитивы по слоям,  в зависимости от  условий

Изменено пользователем doctorraz
Ссылка на сообщение
Поделиться на другие сайты

Это совершенно кривой способ, имхо.

И даже при таком, прямо сказать, неудобном способе что мешает последовательно вызвать команду вставки текста, а потом команду установки слоя?

Все это можно прямо в одном вызове (command... сделать.

 

Но значительно предпочтительнее использовать что-нибудь типа (entmake... .

Можно без всяких переключений слоев создавать объекты непосредственно на определенных слоях (даже замороженных!) и с другими необходимыми свойствами (тип линии, толщина, цвет). Одной командой.

Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, doctorraz сказал:

Тут погуглил.. автокад вроде так не умеет..

Если нано сможет, со временем получит еще более явное  конкурентное преимущество..

затея мягко сказать сомнительная на мой взгляд.
палитры они на то и палитры чтобы пользователь на них нажимал, а вызывалась нужная команда/набор/скрипт и т.д.
т.е. это просто удобная компоновка ИМЕЮЩИХСЯ инструментов.
если не работает какой то lisp, не понятно чем тут может помочь клик по палитре.
Варианты решения скорее такие:

  • понять почему lisp не работает и попробовать найти обходной путь.
    также можно создать заявку в клубе разработчиков на доработку Lisp Api
  • использовать Lisp-command (как указали выше)
  • пробовать SCR сценарии (пакетное выполнение команд)
  • использовать другое API (на .NET можно условно "все" сделать, но надо умения/время).
     
Ссылка на сообщение
Поделиться на другие сайты

Согласен, что алгоритм кривоват.

Может кто-то использует более прямое решение для раскидывания примитивов по слоям и поделится им?

По мне это идеально  http://lee-mac.com/layerdirector.html

Но в нано даже не подгружает этот лисп

Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, EdwardSt сказал:

И даже при таком, прямо сказать, неудобном способе что мешает последовательно вызвать команду вставки текста, а потом команду установки слоя?

При вставке с палитры сразу вставляем на заданный слой, оставаясь в текущем.

Если слоя нет он будет создан с нужными свойствами.

Делать все из лиспа.. это надо проверить есть ли слой, если нет создать...

Для автокад таких лиспов немало. Но в нано ни один не работает. Моих знаний в лиспе сильно недостаточно для их адаптации .

Поэтому пытаюсь решить задачу имеющимися у меня инструментами

Ссылка на сообщение
Поделиться на другие сайты

Ну и насчет вставки из ком стррки..

Объекты из базы СПДС именно так и вставляю, значительно быстрее чем во вкладке бродить по дереву.

Имха для палитр тоже должно быть удобно. Ввел команду вставил, а не перебираешь вкладки

Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, doctorraz сказал:

ри вставке с палитры сразу вставляем на заданный слой, оставаясь в текущем.

Если слоя нет он будет создан с нужными свойствами.

Практически то же самое делает и вышеприведенная функция (entmake...

Если нет слоя, то он создастся. Правда с параметрами по умолчанию.

Но если изменить параметры слоя, то при вставке объекта из палитры они уже меняться не будут.

Т.е., поведение будет в функции и при вставке из палитры идентичным.

 

В любом случае, предлагаемое решение не отменяет мощнейший функционал палитр.

Просто иногда использование функции  может оказаться значительно проще, т.к. позволит добавить еще чего-нибудь, например, дополнительный расчет каких-то координат, перед вставкой элемента.

2 часа назад, doctorraz сказал:

Может кто-то использует более прямое решение для раскидывания примитивов по слоям и поделится им?

 

А для такой операции эта функция - то, что доктор прописал! 

Например,

(entmake (list '(0 . "LINE") '(10 0 0 0) '(11 1 0 0) '(8 . "2")))

создаст отрезок с координатами (0,0,0)-(1,0,0) на слое "2" (которого у меня не было) с параметрами по умолчанию (вес, цвет и т.п.)

Если мне нужен цвет, например, красный, то в аргумент нужно добавить группу '(62 . 1). Ну и дальше по аналогии.

 

Я бы посоветовал поподробнее изучить функцию (entget и связанные с ней. 

А дальше вспоминаем необходимые DXF-коды и уподобляемся творцу).

Я всегда считал, что раритетную функцию (command лучше оставить, но при использовании семейства функций (ent... необходимость в ней в действительности практически пропала.

Ссылка на сообщение
Поделиться на другие сайты
В 12.03.2021 в 11:58, doctorraz сказал:

Если существует, то как?

а ларчик просто открывался...:wub:

(vl-cmdf "tool:Инструмент")

Всем спасибо за помощь,

с entmake  я обязательно разберусь... попозже,

некогда мне пилу точить, мне пилить надо

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...