Как задать цвет Jig-геометрии?

Автор Тема: Как задать цвет Jig-геометрии?  (Прочитано 1929 раз)

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

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Я использую DrawJig технологию для рисования линии составленной из одинаковых блоков. При этом уже нарисованная линия отображалась белым цветом, а линия в динамике - красным (Рис.1). Все бы хорошо, но я поменял способ создания входящих в линию блоков и у меня почему-то поменялся цвет линии в динамике - стал черным (Рис.2). Я попробовал задать  ее цвет явным образом:
draw.SubEntityTraits.Color = 1;
Не помогло. Других вариантов я не нашел.
Поэтому вопрос: как задать цвет Jig-геометрии?
Заранее благодарен.






Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Как задать цвет Jig-геометрии?
« Ответ #1 : 30-07-2022, 19:16:02 »
А код-то какой-нибудь где?

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Как задать цвет Jig-геометрии?
« Ответ #2 : 30-07-2022, 19:23:06 »
Вот код:
Код - C# [Выбрать]
  1.         protected override bool WorldDraw(Autodesk.AutoCAD.GraphicsInterface.WorldDraw draw)
  2.         {
  3.             Matrix3d curUCSMatrix = cad.DocumentManager.MdiActiveDocument.Editor.CurrentUserCoordinateSystem;
  4.             CoordinateSystem3d curUCS = curUCSMatrix.CoordinateSystem3d;
  5.             Vector3d vRot = m_basePoint[0].GetVectorTo(new Point3d(m_basePoint[0].X, m_basePoint[0].Y, m_basePoint[0].Z + 10));
  6.             int nBlocks = (int)Math.Floor(currentDistance / m_lBlock);
  7.             int n = 1;
  8.             do
  9.             {
  10.                 Point3d jigPt = new Point3d(m_lBlock * (n - 1), 0, 0);
  11.                 BlockReference inMemoryBlockInsert = new BlockReference(jigPt, _blockId);
  12.                 inMemoryBlockInsert.TransformBy(Matrix3d.Rotation(currentAngle, vRot, m_basePoint[0]));
  13.                 draw.SubEntityTraits.Color = 1;
  14.                 draw.Geometry.Draw(inMemoryBlockInsert);
  15.                 inMemoryBlockInsert.Dispose();
  16.                 n++;
  17.             } while (n < nBlocks + 1);
  18.             return true;
  19.         } // WorldDraw()    
  20.  
  21.  

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Как задать цвет Jig-геометрии?
« Ответ #3 : 30-07-2022, 19:30:39 »
Попробуйте
Код - C# [Выбрать]
  1. inMemoryBlockInsert.ColorIndex = 1
По крайней мере с кривыми это работает.

И еще вопрос - какое свойство цвета у объектов внутри блока? Должно быть ByBlock как я понимаю

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

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: Как задать цвет Jig-геометрии?
« Ответ #4 : 30-07-2022, 20:09:26 »
Попробуйте
Код - C# [Выбрать]

    inMemoryBlockInsert.ColorIndex = 1

По крайней мере с кривыми это работает.
Ничего не изменилось.

И еще вопрос - какое свойство цвета у объектов внутри блока? Должно быть ByBlock как я понимаю
Нет, ByLayer.