|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.07.2020, 16:08 | #1 | |
LISP. Извлечение ObjID указанного объекта в буфер обмена
Регистрация: 15.04.2019
Сообщений: 58
|
||
Просмотров: 3150
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,053
|
|
|||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
Цитата:
Создаю в блокноте файл, в который закидываю код: Код:
Далее создаю кнопку. В макросе у неё пишу: (Get-ObjectID-x86-x64) Подгружаю лисп - "успешно загружен" Далее тыкаю в кнопку - и получаю сообщение: Command: (Get-ObjectID-x86-x64) ; error: too few arguments Но хуже того: даже если мне удастся заставить этот код в лиспе работать и получать ObjId (я ещё даже не знаю, где он отобразится, поскольку в коде лиспа ведь нет никаких printc, то пришить к этому коду кусок лиспа для отправки ObjId в клипборд - будет для меня явно выше всяких возможностей. Поскольку, как мы с вами один раз уже выяснили, языкам я не обучен. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,053
|
Цитата:
Код:
|
|||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
Большое спасибо! Не заметил я слона))) Теперь заработало)
Дальше "приклеил" к нему код из copyToClipboard от VVA, поставив вызов по его же инструкции - и ID стал отправляться в клипборд..... Код:
Методом научного тыка, подставляя (princ *что-нибудь*) в разные строки кода и пытаясь наугад понять, какую же переменную следует указывать в звёздочках - ничего у меня не вышло. Пробовал даже под Код:
Код:
А ещё эти программы работают только в одной среде: если нужно взять ID у объекта, размещённого в пространстве модели, то надо находиться в пространстве модели. Через вьюпорт ткнуть на объект в модельном пространстве не получается. Есть какой-нибудь метод это подправить? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,053
|
потому что это был побочный эффект - если не погасить вывод пустым (princ) в функции, то в комстроке будет выведено последнее посчитанное/полученное значение.
Цитата:
|
|||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
И ещё один вопрос.
Форма макроса, который перед подгрузкой лиспа проверяет наличие команды - мне известна: Код:
Код:
Надо задать имя команды для этой функции? Подскажите, пожалуйста, как, потому как, не зная никакого синтаксиса, я точно это сделать не смогу (в скобках потеряюсь) Или можно обойтись без назначения команды? Тогда как? ----- добавлено через ~12 мин. ----- Спасибо. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
modest-bp, для этих функций надо создать команду-оболочку:
Код:
----- добавлено через ~4 мин. ----- Если лисп сохранить с именем "ID2CLP.lsp", макрос на кнопку будет таким: Код:
Да, и предлагаю сменить название темы. Поскольку макросом общепринято в Автокаде называется именно код кнопки, макрокоманда, а тут макросом не обошлось, то это уже лисп - в данном контексте прижившееся название кода на этом языке. Думаю, правильным будет что-то подобное: LISP. Извлечение ObjID указанного объекта в буфер обмена. Хотя, после того, как раздел "Программирование" разделили на подразделы и, поскольку тема добавлена в подразделе "LISP", может, префикс LISP._ уже и не нужен. На мой взгляд удобно: когда видишь в "Горячем" в названии темы префикс, сразу понимаешь, о каком языке речь. Хотелось бы знать мнение администрации на сей счет. Но "макрос" - точно будет сбивать с толку. Последний раз редактировалось skkkk, 21.07.2020 в 10:21. |
|||
|
||||
Регистрация: 15.04.2019
Сообщений: 58
|
ОГРОМНОЕ спасибо! Всё работает! Всё работает, как надо!
Цитата:
Да, Сергей812, наверное, расстроится, что мне дали рыбку, а не удочку. Но и за его удочку я тоже благодарен: не ровен час, почитаю учебник. Просто моя работа - не программирование, а проектирование. Поэтому на освоение ещё одной профессии (пусть и её азов) - времени никогда не находится (тут и по своему профилю всегда есть масса того, что надо почитать). А Вы таким подробным комментированием кода дали возможность понять на конкретном примере, что как работает, да ещё и открыли мне возможность потом творчески дорабатывать этот код под свои нужды, а не засорять форум своими профановскими темами. Ещё раз спасибо от всей души! Поскольку этой командой предстоит пользоваться очень часто - буду Вас часто вспоминать самыми добрыми словами! Согласен. На будущее буду иметь в виду (но я действительно надеялся, что можно будет обойтись макросом). А сейчас поменять тему уже, похоже, не в моих силах (по крайней мере, я не нашёл, как это делается) |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SPDS макрос на кнопку масштаб нужна помощь | dextron3 | ПО от CSoft | 18 | 20.05.2019 13:37 |
Как избавиться от искажения объекта после перемещения объекта. | boroda205 | AutoCAD | 2 | 21.09.2018 15:44 |
Помогите дополнить макрос простановки уклона | MrBrown | Программирование | 2 | 14.04.2015 13:50 |
Помогите сделать макрос на циклический перебор: орто/поляр.отсл./выкл все | VAV | AutoCAD | 4 | 23.01.2015 12:38 |