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

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

Страницы: 1 ... 8 9 [10]
91
По пробовать возвращать свойство Visible  и проверять его.
не очень понял. В какой момент и у кого свойство visible проверять?

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

Я создаю экземпляры атрибутов для нового экземпляра блока:
       
Код - 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.                         }
Однако, получается, что те атрибуты, которые были не видны в самом первом состоянии видимости у определения блока, тут будут так же не видны.
Если перед созданием экземпляров атрибутов выставить состояние видимости блоку, это никак не повлияет на видимость атрибутов.

Есть ли изящный способ узнать, виден ли аттрибут или любой другой объект динамического блока для разных состояний видимости?
94
AutoLisp / VisualLISP и DCL / Re: блок из полилиний
« Последний ответ от altver 05-04-2025, 23:08:13 »
Спасибо!
95
AutoLisp / VisualLISP и DCL / Re: блок из полилиний
« Последний ответ от Александр Ривилис 04-04-2025, 00:39:59 »
Что я не так делаю???
Всё ты так делаешь. Так и задумано. Не каждая полилиния при разном масштабировании по X и Y может остаться полилинией. Представь себе полилинию с дуговыми сегментами. Дуга при таком масштабировании перестает быть дугой, а становится эллиптической дугой и не может быть сегментом полилинии.
96
AutoLisp / VisualLISP и DCL / блок из полилиний
« Последний ответ от altver 04-04-2025, 00:35:22 »
Добый день, господа!
Создал простой блок из полилиний, установил в чертеж, взорвал, получил полилинии, все отлично,
однако стоит изменить scale factor блока по Х и/или по У, то после взрыва блока взрываются и полилинии...
ПОЧЕМУ???
Что я не так делаю???
97
AutoLisp / VisualLISP и DCL / Re: свойства штрховки
« Последний ответ от altver 04-04-2025, 00:28:01 »
отлично!
 спасибо!
99
VBA / Re: Что есть acDisplayDCS?
« Последний ответ от pavka_97 03-04-2025, 13:35:22 »
The Display Coordinate System (DCS) is the coordinate system into which objects are transformed before they are displayed. If not in perspective mode, the DCS is equivalent to the eye coordinate system. If perspective mode is active, the perspective transform must be performed on the eye coordinates to get display coordinates. The perspective transform gives the effect of geometry getting smaller the farther away it is from the camera.
100
VBA / Re: Что есть acDisplayDCS?
« Последний ответ от Gr.Om 03-04-2025, 08:26:19 »
Благодарю хоть за какой-то ответ!)
То, что это экранная СК, как бы из названия уже понятно. Но под экраном можно подразумевать все, что угодно. Экран текущего ВЭ, окно приложения, экран рабочего стола, аппаратный экран. Переключаемся в бумагу активируем/не активируем MSpace, и там снова экран может быть всем, чем угодно).
Доступ по официальным ссылкам мне, как агрессору, заблокирован. Можете скопипастить, что там написано?))
Сталкиваюсь с вопросом периодически на протяжении многих лет, когда пытаюсь задать для ВЭ конкретную точку модели через .target. В только что созданном чистом layout оно еще как-то работает методом проб и ошибок. В уже существующем ВЭ не могу ничего сделать. Центр ВЭ при разных комбинациях кода прыгает куда угодно, только не в нужную точку. Код не привожу, т.к. уже забыл в какой комбинации был ближе всего к цели. В большинстве примеров показана двойная трансформация acWorld>acDisplayDCS>acDisplayDCS>acPaperSpaceDCS. И еще нужно в определенные моменты переключаться в модель и обратно ???. Без понимания acDisplayDCS это так и останется танцами с бубном.
Страницы: 1 ... 8 9 [10]