| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Что такое vla-RecomputeTableBlock?

Что такое vla-RecomputeTableBlock?

Ответ
Поиск в этой теме
Непрочитано 04.10.2016, 10:39 #1
Что такое vla-RecomputeTableBlock?
Profan
 
Москва
Регистрация: 25.12.2005
Сообщений: 13,627

Есть программа формирования таблицы, в которой используются функция vla-put-regeneratetablesuppressed
Код:
[Выделить все]
.... начало кода, определение таблицы tbl
(vla-put-regeneratetablesuppressed tbl :vlax-true) 
.... формирование строк таблицы
(vla-put-regeneratetablesuppressed tbl :vlax-false)
.... Конец кода
В некоторой ситуации таблица получается пустой. Но если применить вот такое сочетание
Код:
[Выделить все]
.... начало кода, определение таблицы tbl
(vla-put-regeneratetablesuppressed tbl :vlax-true) 
.... формирование строк таблицы
(vla-RecomputeTableBlock tbl :vlax-true)
(vla-put-regeneratetablesuppressed tbl :vlax-false)
.... Конец кода
то таблица формируется нормально. Что это за функция vla-RecomputeTableBlock?

Последний раз редактировалось Profan, 04.10.2016 в 11:54.
Просмотров: 3323
 
Непрочитано 04.10.2016, 12:54
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Судя по описанию, принудительное обновление таблицы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.10.2016, 14:30
#3
frostmourn


 
Регистрация: 23.04.2015
Сообщений: 163


"This function updates the table block record that the Table object references to match changes made to the Table object since the most recent update of the table block record" Из справки.
frostmourn вне форума  
 
Автор темы   Непрочитано 04.10.2016, 16:35
#4
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да видел я всякие английские и даже китайские описания. Хотелось получить вразумительное описание на русском.
Profan вне форума  
 
Непрочитано 04.10.2016, 17:42
#5
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,091


Цитата:
Сообщение от Profan Посмотреть сообщение
Хотелось получить вразумительное описание на русском.
То, что мы видим на чертеже в качестве таблицы - это по сути блок с именем типа *T100500, недоступный для редактирования обычными средствами. Это было хорошо видно при сохранении чертежей с таблицами в версии 2000 и открытии в Акаде 2000/2002. Таблицей в привычном понимании этот блок становится в версиях начиная с 2005 в связке со словарем и arx-приложением.
функции типа vla-SetCellValue работают со словарем таблицы.
vla-RecomputeTableBlock принудительно обновляет блок и приводит его в соответствие со словарем, если это не было сделано по событию редактирования. А т.к. перед этим была отключена возможность обновления таблицы (vla-put-regeneratetablesuppressed tbl :vlax-true), то и событие обновления не возникало. Включение возможности обновления не потянуло за собой факта обновления и не выдало событие обновления, и таблица выглядела не так, как была сформирована.
...как-то так...
kp+ вне форума  
 
Непрочитано 04.10.2016, 17:43
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


у уважаемого Полещука написано просто:
Цитата:
7.2.264. RecomputeTableBlock <режим>- обновление таблицы
режим: true - принудительное, false - обновление по необходимости
а дальше уже мои мысли: видимо, в целях оптимизации по умолчанию стоит режим обновления по необходимости. И если не включить принудительное обновление
Цитата:
(vla-RecomputeTableBlock tbl :vlax-true)
то периодически происходит где то накладка по фоновой обработке - объект таблицы закрывается раньше, чем занесены данные в нее или еще какое то "соревнование".
Сергей812 вне форума  
 
Автор темы   Непрочитано 04.10.2016, 17:54
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Спасибо, чуть-чуть понятнее стало.
Profan вне форума  
 
Непрочитано 04.10.2016, 22:06
#8
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от kp+ Посмотреть сообщение
а дальше уже мои мысли: видимо, в целях оптимизации по умолчанию стоит режим обновления по необходимости. И если не включить принудительное обновление
Цитата:
(vla-RecomputeTableBlock tbl :vlax-true)
то периодически происходит где то накладка по фоновой обработке - объект таблицы закрывается раньше, чем занесены данные в нее или еще какое то "соревнование".
Не совсем так. Если :vlax-true - то обновление в любом случае, а если :vlax-false, то только если что-то в таблице менялось (например, стиль, содержимое ячеек, и т.д.)
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Что такое vla-RecomputeTableBlock?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Подслой" - есть ли такое? Малюк AutoCAD 26 07.09.2019 18:15
Сварка. Допустимо ли такое наращивание длины листа? Сергей Юрьевич Металлические конструкции 35 29.12.2012 02:33
У кого-нибудь было такое, что "пожарники" при приемке здания заставляли сдирать/менять покрытие пола ? (Где в Питере?) drill_man Разное 7 31.08.2012 01:59
Что такое PROXY-объекты Mazai Программирование 3 11.05.2012 15:44
Что такое источник освещения Л.Л. и Л.Н. MegaIZIK Архитектура 1 12.10.2011 15:55