Главная › Форум › Средства разработки Топоматик Robur › Штриховка
- В этой теме 8 ответов, 3 участника, последнее обновление 1 год, 3 месяца назад сделано Гончаров Василий.
-
АвторСообщения
-
07.08.2023 в 10:48 #6250Захаров МаксимУчастник
Добрый день
Помогите создать штриховку, е не могу задать координаты
Public Shared Function FuncDrawHatch(ByVal ActivDocument As Drawing, ByVal acPline As Topomatic.Dwg.Entities.DwgPolyline) As DwgHatch
FuncDrawHatch = Nothing
Try
FuncDrawHatch = New Topomatic.Dwg.Entities.DwgHatch
FuncDrawHatch.Assign(acPline)
FuncDrawHatch.PatternName = «SOLID»
ActivDocument.ActiveSpace.Add(FuncDrawHatch)
Catch ex As Exception
End Try
End Function07.08.2023 в 15:02 #6251Support EngineerУчастникЗдравствуйте, Максим!
Метод Assign() не приведёт к копированию координат полилинии в штриховку. Границы штриховки и контур полилинии имеют совсем разную структуру.Предположим, что у вас уже есть полилиния, как в вашем примере. Тогда добавить штриховку с координатами полилинии можно двумя способами. Примеры приведены на языке C#.
Вариант #1:
// Создаём границу штриховки и наполняем // её координатами имеющейся полилинии (dwgPolyline) PolylineBoundaryPath boundaryPath = new PolylineBoundaryPath(); foreach (var vertex in dwgPolyline) boundaryPath.Add(vertex); // Создаём штриховку, инициализируем свойство PatternName DwgHatch dwgHatch = new DwgHatch { PatternName = "SOLID" }; // В коллекцию границ штриховки добавляем границу // с координатами полилинии dwgHatch.BoundaryPath.Add(boundaryPath); // Добавляем штриховку в чертёж (Drawing) activeDrawing.ActiveSpace.Add(dwgHatch);
Вариант #2:
// Создаём список векторов (Vector2D) var points = new List<Vector2D>(); // Заполняем его координатами полилинии dwgPolyline.ConvertToPosArray(points); // Добавляем штриховку в чертёж минуя создание экземпляр штриховки activeDrawing.ActiveSpace.AddHatch(AcPatternType.PreDefined, "SOLID", points);
09.08.2023 в 11:12 #6253Захаров МаксимУчастникСпасибо, все работает.
У меня вопрос, а если есть в штриховке «дырки» или несколько контуров? Просто последовательно добавить их в штриховку инструкцией dwgHatch.BoundaryPath.Add(boundaryPath)?09.08.2023 в 15:40 #6260Захаров МаксимУчастникА как получить имена всех образцов штриховки?
Вообще у Вас есть графическая схема по IPI. Чтобы хоть понимать что где искать, а не методом «тыка»09.08.2023 в 17:03 #6261Захаров МаксимУчастникУ меня еще вопрос, скажите, площадь моей штриховки 0.00 по свойствам. Надо самостоятельно что ли площадь в штриховку «вбивать», почему автоматом площадь не считается?
10.08.2023 в 12:05 #6263Гончаров ВасилийУчастникДобрый день! Да, Вы можете задать в штриховке «дырки» или несколько контуров через dwgHatch.BoundaryPath.Add. Управление образцом штриховки происходит через свойство Pattern, если штриховка выполнена через стандартные типы линии, описанные в файле acad.lin в каталоге [ProgramData]\Support. Если свойство Pattern не задано, выполняется заливка. Почему не считается площадь штриховки, пока Вам сказать не могу — будем разбираться.
10.08.2023 в 17:06 #6267Захаров МаксимУчастникКстати, площадь 0 выходит даже если я создаю штриховки стандартными методами (Вашими методами). Может конечно это проблема моей сборки, но это так.
Сборка 16.0.28.15 от 23.01.2023 Автомобильные дороги.
И очень большая просьба, вы не могли бы штриховку SOLID сделать полупрозрачной. Или это в принципе невозможно…15.08.2023 в 14:00 #6279Гончаров ВасилийУчастникДобрый день! Проблема с площадью штриховки передана разработчика, это не проблема конкретной сборки. По поводу полупрозрачной штриховки, я уточню и отвечу Вам позднее.
18.08.2023 в 13:58 #6283Гончаров ВасилийУчастникДобрый день! Я уточнил у коллег — прозрачную штриховку сделать технически возможно — постараемся включить эту задачу в план разработки.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.