Скачет таблица

Автор Тема: Скачет таблица  (Прочитано 3429 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн RevitTormentorАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Скачет таблица
« : 21-01-2018, 01:17:06 »
Доброй ночи. Ни у кого не было, что таблица сделанная программно жёстко привязана к координатам её установки? В ручном режиме выделяю таблицу и пытаюсь её перенести, она переносится, когда мышку отпускаю визуально таблица возвращается на место, а ручки остаются там куда я хотел перенести таблицу.

Если кто сталкивался - как решили?
Спасибо


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скачет таблица
« Ответ #1 : 21-01-2018, 01:18:19 »
Вообще-то интересно глянуть на эту таблицу (dwg-файл) и уточнить версию AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн RevitTormentorАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Скачет таблица
« Ответ #2 : 21-01-2018, 09:10:44 »
Autocad 2017x64
Вечером файл постараюсь выложить. Но после сохранения и открытия снова, таблицы ставятся на свои места и данного эффекта уже нет. Т.е. в файле который будет здесь уже ничего не будет. Думаю, что Или транзакцию не там закрываю/открываю. Блокирую документ не там или вообще не надо его блокировать. Или не там задаю установку позиции для таблицы. Может это надо делать после добавления
Код - C# [Выбрать]
  1.                    table1Id = currentSpace.AppendEntity(tableGroup);
  2.                     tr.AddNewlyCreatedDBObject(tableGroup, true);
Проверить сейчас не могу.
Так как после сохранения и повторного открытия всё нормально - думаю что что-то с транзакциями или добавлением таблицы в базу.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скачет таблица
« Ответ #3 : 21-01-2018, 11:10:37 »
А есть возможность тот же код проверить в 2016 версии? И ещё такой момент - после регенерации чертежа таблица встаёт на правильное место?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скачет таблица
« Ответ #4 : 21-01-2018, 22:56:41 »
Но после сохранения и открытия снова, таблицы ставятся на свои места и данного эффекта уже нет.
Ну тогда и смысла в файле нет. Возможно действительно проблема в транзакции. Точне в том, что он незакрыта.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скачет таблица
« Ответ #5 : 21-01-2018, 23:24:08 »
Есть подозрение, что это действительно проблема версии. У меня тоже что-то похожее с таблицами было в 2017 версии

Отмечено как Решение Александр Ривилис 22-01-2018, 00:26:43

Оффлайн RevitTormentorАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Скачет таблица
« Ответ #6 : 21-01-2018, 23:53:45 »
Только начал файл готовить чтобы скинуть и тут случайно поменял две строчки в коде местами. :)
Код - C# [Выбрать]
  1.              
  2. tableGroup.Position = pntInsert;
  3. tableGroup.GenerateLayout();
  4.  
Моя оплошность. Было так
Код - C# [Выбрать]
  1.        
  2. tableGroup.GenerateLayout();    
  3. tableGroup.Position = pntInsert;
  4.  
Сначала проверил транзакции - все были закрыты. Потом _regen _regen3(вроде команда). Оказалось - порядок следования в коде.
Спасибо за ответы.


Немного подкорректирую. У меня было две проблемы - одна это таблица сбивалась. И вторая она возвращалась на место. Если у кого-то возникнет и то и то, то обязательно добавить надо опциональный параметр
Код - C# [Выбрать]
  1. tableGroup.SuppressRegenerateTable(false); //<-- optional
написано что опционально, однако у меня он повлиял очень сильно.

« Последнее редактирование: 22-01-2018, 19:38:23 от RevitTormentor »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скачет таблица
« Ответ #7 : 21-01-2018, 23:55:58 »
Тут как бы с одной стороны очевидно, а с другой стороны интересный момент. Отлично, что самостоятельно нашел решение!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скачет таблица
« Ответ #8 : 22-01-2018, 12:19:50 »
Off-Topic: показать
tableGroup - неудачное название для переменной, в которой содержится таблица. Интуитивно воспринимается как "группа таблиц". Если подразумевается, что это таблица для группы, то лучше как-то так: groupTable или tableForGroup

Оффлайн RevitTormentorАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Скачет таблица
« Ответ #9 : 22-01-2018, 13:47:54 »
tableGroup - неудачное название для переменной, в которой содержится таблица. Интуитивно воспринимается как "группа таблиц". Если подразумевается, что это таблица для группы, то лучше как-то так: groupTable или tableForGroup

В моём случае это таблица на основе сгруппированных данных. Как то привык, может не прав.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скачет таблица
« Ответ #10 : 22-01-2018, 13:54:29 »
У меня с английским довольно плохо, но если есть какие-то сомнения - гугл помогает :)
https://translate.google.ru/#en/ru/table%20group
В данном случае, название переменной сбивает с толку и не отражает того, что в ней содержится. Это может осложнить работу с кодом, когда пройдёт какое-то время. Или если кто-то другой будет его разбирать.
В моём случае это таблица на основе сгруппированных данных.
groupedDataTable или tableOfGroupedData