|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Посмотри по ссылке в комментарии
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 28.10.2008
Сообщений: 26
|
Добрый день!
Можно ли в код из поста №5 добавить возможность извлечения и вставки в другие ячейки таблицы значения мультивыноски и атрибутов блоков? Причем одним циклом: после выбора таблицы указываю один блок, второй блок, мультивыноску и полилинию, и каждый раз указываю ячейки, куда вставлять данные. Это все нужно для создания кабельного журнала, т.е. первый атрибут - устройство, откуда идет кабель, второй - куда идет, мультивыноска - номер кабеля и длина полилинии - собственно длина кабеля. |
|||
|
||||
Регистрация: 17.01.2014
Сообщений: 97
|
Здравствуйте. Необходим лисп проставляющий длину линии, и при этом, одновременно, происходило бы выравнивание текста параллельно и по центру линии, с реактором (т.е при растягивании линии расположение текста относительно линии должно оставаться прежним). Вот тут уже были попытки сделать подобное, но там выводится поле, а нужен простой текст, чтобы при изменении длины линии, её изначальное значение, проставленное как текст, не менялось бы. Уважаемы знатоки LISP, помогите с решением данной проблемы.
|
|||
|
||||
Регистрация: 09.01.2013
Сообщений: 127
|
Что я сделал не так? Acad 2016x64
некорректно идентифицируется ID объекта. это связано с версией ACADa& Код:
Последний раз редактировалось Зодчий1989, 13.02.2019 в 10:25. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Это связано с ограничениями LISP: он не умеет оперировать с 64-разрядными целыми. Самое простое решение - это преобразовать объект в ename, вывести его в строку, отфильтровать то, что идет после символа ":", и преобразовать остаток в десятичную систему из 16-ричной. Функции соответствующие на этом форуме, насколько я помню, были.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,053
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Сергей812, там информация немного устарела. Спасибо, подправлю сегодня (по крайней мере на это надеюсь)
Только что добавил статейку: http://autolisp.ru/2019/02/14/objectid-for-fields/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 14.02.2019 в 07:51. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Зодчий1989, Попробуй в строке 60 вместо vla-get-objectid использовать функцию Get-ObjectID-x86-x64
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 09.01.2013
Сообщений: 127
|
, Идеально работает. Может пригодится кому нибудь.
Программа извлекает свойство (указывается в строке 61 ">%).Area \\f \"%lu2%pr2%ct8[1e-006]\">%}") из полилинии и вставляет в пространство листа "полем" ACADa. Код:
|
|||