Непонятное поведение полей у Dimension

Автор Тема: Непонятное поведение полей у Dimension  (Прочитано 5903 раз)

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

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

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

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 1
Добрый день!

Столкнулся со следующей проблемой: при попытке задать код поля у объекта Dimension, код задается нормально, но при открытии чертежа изменения не отображаются. Вот код:

Код - C# [Выбрать]
  1. using (var tr = db.TransactionManager.StartOpenCloseTransaction())
  2. {
  3.     var dim = (Dimension)tr.GetObject(dimId, OpenMode.ForWrite);
  4.     if(dim.HasFields)
  5.     {
  6.         var fld = (Field)tr.GetObject(obj.GetField(), OpenMode.ForWrite);
  7.         var code = fld.GetFieldCode(FieldCodeFlags.AddMarkers | FieldCodeFlags.FieldCode);
  8.         code = "TESTING" + code;
  9.         fld.SetFieldCode(code);
  10.         fld.Evaluate();
  11.     }
  12.     tr.Commit();
  13. }
  14.  

Если после этого сохранить чертеж, потом открыть его и получить код поля, то значение будет именно то, что мы задаем. Однако, в AutoCAD Dimension будет иметь прежний вид до тех пор пока не начнешь его редактировать. Войдя в режим редактирования, значение Dimension тут же изменится на то, что мы задавали.

Для объектов MText подобный код работает отлично.

В чем может быть проблема?

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

  • Administrator
  • *****
  • Сообщений: 13877
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Непонятное поведение полей у Dimension
« Ответ #1 : 14-04-2016, 10:49:31 »
Давай полный тестовый проект, пример чертежа с размером и укажи версию AutoCAD. Посмотрю в чем может быть проблема.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 1
Re: Непонятное поведение полей у Dimension
« Ответ #2 : 14-04-2016, 11:16:28 »
Версия AutoCAD 2014

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

  • Administrator
  • *****
  • Сообщений: 13877
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Непонятное поведение полей у Dimension
« Ответ #3 : 14-04-2016, 11:48:28 »
Сейчас нет возможности проверить. Попробуй добавить еще dim.RecomputeDimensionBlock
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Alexx 14-04-2016, 12:31:16

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

  • Administrator
  • *****
  • Сообщений: 13877
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Непонятное поведение полей у Dimension
« Ответ #4 : 14-04-2016, 12:03:49 »
Смог проверить в AutoCAD 2013 - dim.RecomputeDimensionBlock(true); в строке 47 помогает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 76
  • Карма: 1
Re: Непонятное поведение полей у Dimension
« Ответ #5 : 14-04-2016, 12:31:50 »
Александр, спасибо огромное! В очередной раз выручили  :)