|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
28.06.2019, 15:15 | #1 | |
Возможно ли полем получить ID таблицы?
Инженер-проектировщик
Санкт-Петербург
Регистрация: 07.07.2016
Сообщений: 723
|
||
Просмотров: 4173
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Штатных средств нет. А зачем вообще ID-то видеть?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
Упрощенный пример:
В блоке 10-20 полей настроенных на разные ячейки таблицы (одна строка таблицы). Номер строки таблицы указан в одном из атрибутов этого блока. Блок копируется, меняется номер строки и все поля ссылаются на другую строку. Таких блоков может быть много раскопировано. Если таблица создается заново или блоки нужно скопировать в другой файл, все поля в блоке нужно перенастраивать на новую таблицу. Вот и появилась мысль забивать ID таблицы в атрибут этого же блока. |
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
Программный уровень хорош (в определенных объемах используется), но нужно иметь возможность вносить корректировки с любого компьютера, где установлен только автокад.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
в авральном режиме и перебивания десятков полей в блоках чревато теми же ошибками...) Ну штатных возможностей действительно нет для модифицируемых полей:
такого варианта использования разработчикам Аутодеска, наверно, даже в голову не приходило) |
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
Цитата:
Сейчас в пределах одной фиксированной таблицы это работает. ----- добавлено через ~1 мин. ----- это реализовано |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
Не знаю, чего там реализовано (очередное лечение по фотографии). Но "нормальные" поля сохраняют связи при закрытии/открытии чертежа:
т.е. "внутри" все-таки с хэндлом работают, а не с ObjectId. |
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
не спорю. но ID меняется же.
Создается поле ячейки таблицы, например, %<\AcExpr (Table(%<\_ObjId 3088424335632>%).T10) \f "%lu2%pr2">% (или как оно отображается в окне формулы Table(3088424335632).T10) Так вот вместо значения "10" после T вставляется поле, ссылающееся на атрибут этого блока, в который уже прописывается номер нужной строки. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
Естественно, меняется. Хэндл - это ключ в БД чертежа (и он не может самопроизвольно меняться, иначе просто нарушится целостность БД). А ObjectId генерируется каждый раз заново при открытии чертежа / создании новых объектов. Поэтому даже программно ObjectId не используют для постоянной идентификации объекта, только в пределах открытой сессии документа. Но по хэндлу программно всегда можно получить актуальный ObjectId. Поэтому если не 100% стандартными средствами - то можно исхитриться...
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
|
|||
|
||||
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323
|
|
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В ячейке одной таблицы есть текст, как сделать чтоб этот текст отображался в ячейки другой таблицы? | Basily | AutoCAD | 2 | 05.02.2017 16:46 |
Считывание значение ячейки таблицы в виде Field в AutoLISP | tokhot | LISP | 9 | 08.01.2017 17:54 |
Возможно ли в отчете таблицы СПДС управлять высотой строки (или ее скрытием)? | AlexV | ПО от CSoft | 3 | 08.07.2016 11:37 |
Как получить (возможно ли) распределенную нагрузку от сосредоточенной силы- цилиндра для пресса | Mykrai | Машиностроение | 16 | 10.02.2016 08:03 |
Возможно ли в автокаде часть таблицы сделать не печатной? | Emma | AutoCAD | 2 | 16.10.2015 09:43 |