Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: AntonZo от 21-11-2020, 11:55:11

Название: Как корректно на C# поменять угол штриховки
Отправлено: AntonZo от 21-11-2020, 11:55:11
Здравствуйте, уважаемые форумчане! Подскажите пожалуйста где посмотреть пример кода на C# для AutoCad 2016 с изменением угла штриховки. Смотрел примеры на форуме и в официальной документации, например здесь: https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-68CAD757-1857-4250-B92B-430318E5C110
Не нашел где показано как менять угол.
Думаю несмотря на то что это примеры для AutoCad 2020, принцип тот же. В моей программе в зависимости от названия  породы применяется различная штриховка. Изменить название и масштаб получается, а вот с углом какие то проблемы. Где то, что то делаю не правильно.
Фрагмент кода:
Код - C# [Выбрать]
  1. Hatch oHatch = new Hatch();
  2. Vector3d normal = new Vector3d(0.0, 0.0, 1.0);
  3. oHatch.Normal = normal;
  4. oHatch.Elevation = 0.0;                
  5.  
  6.     switch (PORODA)
  7.                     {
  8.                         case "пеcчаник":
  9.                             db.Clayer = acLyrTbl["Песчаник"];
  10.                             oHatch.PatternScale = 0.9;
  11.                             oHatch.SetHatchPattern(HatchPatternType.PreDefined, "DOTS"); break;
  12.  
  13.                         case "уголь":
  14.                             db.Clayer = acLyrTbl["Уголь"];
  15.                             oHatch.PatternScale = 0.21;                            
  16.                             oHatch.PatternAngle = 0.79;//эта строка вызывает ошибку при выполнении
  17.                             oHatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31"); break;
  18.                         default: break;
  19.                     }
  20.  
  21.  btr.AppendEntity(oHatch);
  22.  Tx.AddNewlyCreatedDBObject(oHatch, true);
  23.  oHatch.Associative = true;
  24.  oHatch.AppendLoop((int)HatchLoopTypes.Default, ObjIds);
  25.  oHatch.EvaluateHatch(true);
Название: Re: Как корректно на C# поменять угол штриховки
Отправлено: Дмитрий Загорулькин от 21-11-2020, 12:26:26
Попробуйте поменять местами строчки 16 и 17.
И тут посмотрите: https://forums.autodesk.com/t5/net/create-hatch-valid-values-for-patternangle/td-p/6660044
Название: Re: Как корректно на C# поменять угол штриховки
Отправлено: AntonZo от 21-11-2020, 12:38:42

(https://i.postimg.cc/F1FhJq30/1.png) (https://postimg.cc/F1FhJq30)
Если меняю, студия считает этот код недостижимым.
Название: Re: Как корректно на C# поменять угол штриховки
Отправлено: AntonZo от 21-11-2020, 12:55:45
 :)Все заработало спасибо, Когда менял строки утащил на верх оператор break;, поэтому студия ругалась.
Название: Re: Как корректно на C# поменять угол штриховки
Отправлено: Дмитрий Загорулькин от 21-11-2020, 13:06:26
Когда менял строки утащил на верх оператор break;
Ага! Вот потому-то и не надо два оператора (или как их там? выражения?) в одной строке ставить! :)