04/09/2013
Использование открытой облегченной полилинии в качестве границы штриховки в VBA
Вопрос:
Как можно использовать открытую облегченную полилинию (LWPOLYLINE) в качестве границы при создании штриховки? Можно ли так же использовать метод AddVertex для добавления вершин к облегченной полилинии?
Решение:
Следующий код содержит функцию, которая создаёт открытую облегченную полилинию (используя метод AddVertex), хотя начальная и конечная точки совпадают. Эта полилиния затем используется в качестве внешней границы штриховки.
Код - VBA: [Выделить]
- Option Base 0
- Sub TestLWPline ()
- 'создаём массив для двух точек
- Dim Pt(0 To 3) As Double
- Pt(0) = 0#: Pt(1) = 0#: Pt(2) = 0#: Pt(3) = 10#
- 'создаём LWPOLYLINE содержащую две вершины
- Dim LWpline As Object
- Set LWpline = ThisDrawing.ModelSpace.AddLightWeightPolyline(Pt)
- 'добавляем дополнительные точки
- Pt(0) = 10#: Pt(1) = 10#
- LWpline.AddVertex 2, Pt
- 'Добавим начальную точку к полилинии снова, так чтобы
- 'начальная и конечная точки совпадали, но при этом
- 'свойство Closed оставалось ложным
- Pt(0) = 0#: Pt(1) = 0#
- LWpline.AddVertex 3, Pt
- 'Проверим, что действительно свойство Closed ложно
- Dim bClosed As Boolean
- bClosed = LWpline.closed
- 'добавим штриховку к пространству модели
- Dim MyHatch As Object
- Set MyHatch = ThisDrawing.ModelSpace.AddHatch _
- (acHatchPatternTypePreDefined,"ANSI31", True)
- 'Создадим и добавим внешний контур
- Dim outerLoop As Variant
- Dim outerLoopArray(0) As Object
- Set outerLoopArray(0) = LWpline
- outerLoop = outerLoopArray
- MyHatch.AppendOuterLoop (outerLoop)
- End Sub
Обсуждение: http://adn-cis.org/forum/index.php?topic=198
Опубликовано 04.09.2013