Последние сообщения

Последние сообщения

Страницы: 1 ... 4 5 [6] 7 8 ... 10
51
Можно попробовать сменить состояние видимости на начальное, добавить атрибуты и вернуть то, которое было, возможно разнести на разные транзакции.
52
Выложите пример, двух состояний блока. Естакой вот с такими атрибутами, есть такой же но тут вот так и выдеы только эти атрибуты.
53
По пробовать возвращать свойство Visible  и проверять его.
не очень понял. В какой момент и у кого свойство visible проверять?

Тут фишка именно при создании нового вхождения блока (blockReferenct) нужно "восстановить" атрибуты. Но у моего определения блока некоторые атрибуты видны для определенного состояния видимости, а некоторые не видны. По факту же получается, что когда я создаю новые вхождения атрибутов для вхождения блока, у меня видимость атрибутов всегда соответствует только первому состоянию видимости в определении блока, а не текущему состоянию видимости вхождения блока.
Возможно код, указанный выше, не верный.
54
По пробовать возвращать свойство Visible  и проверять его.
55
Всем здравствуйте!
Есть блок. В нём заданы атрибуты. Эти атрибуты могут быть видны или не видны для разных состояний видимости.

Я создаю экземпляры атрибутов для нового экземпляра блока:
       
Код - C# [Выбрать]
  1.                      if (blockDef.HasAttributeDefinitions)
  2.                         {
  3.                             foreach (ObjectId id in blockDef)
  4.                             {
  5.                                 DBObject obj = trans.GetObject(id, OpenMode.ForRead);
  6.  
  7.                                 if (obj is AttributeDefinition attDef)
  8.                                 {
  9.                                     if (attDef.Tag == "Авария" || attDef.Tag == "Состояние") continue;
  10.                                     AttributeReference attRef = new AttributeReference();
  11.                                     attRef.SetAttributeFromBlock(attDef, blockRef.BlockTransform);
  12.                                     attRef.Position = attDef.Position.TransformBy(blockRef.BlockTransform);
  13.                                     attRef.SetDatabaseDefaults(targetDb);
  14.                                     blockRef.SetDatabaseDefaults(targetDb);
  15.                                     blockRef.AttributeCollection.AppendAttribute(attRef);
  16.                                     trans.AddNewlyCreatedDBObject(attRef, true);
  17.                                 }
  18.                             }
  19.                         }
Однако, получается, что те атрибуты, которые были не видны в самом первом состоянии видимости у определения блока, тут будут так же не видны.
Если перед созданием экземпляров атрибутов выставить состояние видимости блоку, это никак не повлияет на видимость атрибутов.

Есть ли изящный способ узнать, виден ли аттрибут или любой другой объект динамического блока для разных состояний видимости?
56
AutoLisp / VisualLISP и DCL / Re: блок из полилиний
« Последний ответ от altver 05-04-2025, 23:08:13 »
Спасибо!
57
AutoLisp / VisualLISP и DCL / Re: блок из полилиний
« Последний ответ от Александр Ривилис 04-04-2025, 00:39:59 »
Что я не так делаю???
Всё ты так делаешь. Так и задумано. Не каждая полилиния при разном масштабировании по X и Y может остаться полилинией. Представь себе полилинию с дуговыми сегментами. Дуга при таком масштабировании перестает быть дугой, а становится эллиптической дугой и не может быть сегментом полилинии.
58
AutoLisp / VisualLISP и DCL / блок из полилиний
« Последний ответ от altver 04-04-2025, 00:35:22 »
Добый день, господа!
Создал простой блок из полилиний, установил в чертеж, взорвал, получил полилинии, все отлично,
однако стоит изменить scale factor блока по Х и/или по У, то после взрыва блока взрываются и полилинии...
ПОЧЕМУ???
Что я не так делаю???
59
AutoLisp / VisualLISP и DCL / Re: свойства штрховки
« Последний ответ от altver 04-04-2025, 00:28:01 »
отлично!
 спасибо!
Страницы: 1 ... 4 5 [6] 7 8 ... 10