|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
"Тормозит" ActivX. Как ускорить
Учусь
Санкт-Петербург
Регистрация: 19.04.2007
Сообщений: 624
|
||
Просмотров: 5003
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
См. свойство RegenerateTableSuppressed
----- добавлено через ~1 мин. ----- И код написан, как бы сказать... Неоптимально. Мне так кажется
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
Цитата:
![]() Проблема возникает если приходится менять ширину столбца, если заведомо выставить её по максимуму... Да RegenerateTableSuppressed - знал бы раньше... http://knowledge.autodesk.com/suppor...F3869-htm.html |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
object.SetCellStyle nRow, nCol, szCellStyle
http://entercad.ru/acadauto.en/ |
|||
![]() |
|
||||
Учусь Регистрация: 19.04.2007
Санкт-Петербург
Сообщений: 624
|
trir, огромное спасибо, но это изменение свойства Cell Style - свойство ячейки, а мне необходимо изменить свойство ряда. Объясняю зачем это мне надо - автокад с 12 (если не раньше) позволяет "сжимать" таблицу, т.е. она графически превращается в 2, 3, 4 (сколько надо) при этом "шапка" у всех дублируется, но "шапкой" будет считаться только те ряды у которых Row Style = Title... Изменение же типа ячейки ни чем не поможет...
|
|||
![]() |
|
||||
Что-то вспоминается мне, что вроде бы программно нельзя задать стиль строке, есть ощущение, что проблема уже всплывала то ли тут, то ли на ADN-CIS.
Если на лиспе кодите, рекомендую рассмотреть вариант использования готовых шаблонов таблиц в отдельном файле и вставлять их в чертеж программно. Это проще и надежней, чем пытаться настраивать программно. Хотя, могут быть и другие мнения...
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Учусь Регистрация: 19.04.2007
Санкт-Петербург
Сообщений: 624
|
Do$, можно и в ручную настроить, благо не так много таблиц за раз обрабатывать надо. Готовый шаблон - это мысль, надо будет ее обсосать. Может, что и придумаю...
В любом случае спасибо, а то я столько времени ухлопал пока искал, а так все ясно - нет, значит НЕТ. ![]() |
|||
![]() |
|
||||
Цитата:
Строка 402 Получается, что с помощью NET это можно сделать в последних версиях AutoCAD. С помощью лиспа - нет.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 375
|
Доброго времени суток. Пишу из соседней !закрытой! темы http://forum.dwg.ru/showthread.php?t=115743 . Т.к. закрыли ее видимо из-за наличия этой ветки. Хотя не ясно, как по заголовку этой темы я должен был узнать, что здесь освещается именно мой вопрос. Но не об этом.
К сожалению obj.RegenerateTableSuppressed меня не спас. Заполнение действительно происходит быстрее, но когда дело доходит до назначения стиля ячейке, автокад все равно очень задумывается и даже в мониторе ресурсов windows отображается что он "не отвечает". Подскажите пожалуйста, можно ли на VBA назначать стили не по 1 ячейке, а сразу целым диапазонам? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Сначала гасишь регенерацию таблицы, потом меняешь regenmode, потом модифицируешь таблицу и все возвращаешь обратно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 375
|
Большое спасибо, этого еще не советовали! На первый взгляд кажется что это именно то, что нужно
![]() Попробовал. Сделал так: Код:
Код:
При этом таблица в 25 строк, заполняется примерно 45 сек. При том что я временно выкинул большую часть нужных мне столбцов, и практически все форматирование. Опять же повторюсь, что в ексель все записывает мгновенно. А может быть 45 сек на 25 строк это хороший результат и мне стоит успокоиться? Может нужно использовать не SetText, а SetValue или SetFormula? Это может помочь? Последний раз редактировалось Кулик Алексей aka kpblc, 03.10.2014 в 18:06. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Я не вижу в коде, где идет снятие регенерации таблицы
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
art_rrc, В коде всё с точностью до наоборот. До обработки таблицы нужно запретить её регенерацию, т.е.:
Код:
Код:
Suppress - подавить (т.е. RegenerateTableSuppressed - регенерация таблицы подавлена)
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 375
|
Буду уже в понедельник дальше экспериментировать. Ваши советы очень полезны! Спасибо!
Добавлено: Подправил код, теперь он выглядит так: Код:
1) Вставка/удаление строк - 0.1 сек. 2) Только заполнение ячеек - 8 сек. 3) Только форматирование ячеек (точнее только задание стиля ячейкам, остальное отключил) - 5 сек. 4) Заполнение+форматирование - 26 сек (хотя вроде 8+5=13 должно быть). Неужели все равно я что-то делаю не так? Кажется, уже все варианты перепробывал, результата нет. Еще появилось ощущение, что я просто хожу по кругу и задаю глупые вопросы... Уже и программы то почти не осталось, все выключено, обрезано, выкинуто, осталась только сплошная война с таблицами... ![]() Последний раз редактировалось art_rrc, 06.10.2014 в 11:59. |
|||
![]() |
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 375
|
Еще раз всем спасибо за советы! Вы мне очень помогли добиться более адекватной скорости работы. На днях закончил первый вариант програмки составления спецификаций. Тема конечно не нова, но я постарался сделать нечто новое (по крайней мере в автокаде такого еще не видел). Все почему-то вокруг екселя бубнами машут...
![]() И еще подскажите пожалуйста, чем нибудь отличаются: Table.SetText i,j,"" от Table.DeleteCellContent i,j или Table.SetText i,j,"=1+1" от Table.SerFormula i,j,X,"=1+1" И что это за парамерт такой x - nContent as Long??? Спасибо! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ускорить вход/выход из режима редактирования блока | EgorS | AutoCAD | 10 | 18.10.2016 11:36 |
Подскажите Civil 3d 2010 как ускорить работу его | Didar | Вертикальные решения на базе AutoCAD | 13 | 16.07.2013 09:01 |
Как ускорить работу в СПДС? | Сетевой | Прочее. Программное обеспечение | 4 | 28.11.2011 10:17 |
ArchiCAD. Как ускорить рендеринг? | stoper | ArchiCAD | 2 | 04.05.2010 14:02 |