[CDR X5-X8] Как удалить сторону прямоугольника

  • Автор темы Автор темы bitmind
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

bitmind

Участник
Топикстартер
Сообщения
9
Реакции
0
Собственно, надо что-то типа такого
4545.jpg

пытаюсь реализовать таким образом:
Код:
Dim OrigSelection As ShapeRange
    Set OrigSelection = ActiveSelectionRange
     
        Dim Mysegments(20) As Segment
     
        For Each element In OrigSelection(1).Curve.segments
     
            Set Mysegments(element.AbsoluteIndex) = element
        Next

теперь мне нужно удалить из массива сегмент правой стороны (это по-идее я осилю)
но вот применить этот измененный массив обратно к шейпу у меня никак не получается.

подскажите, как лучше реализовать (скорее всего как-то можно проще же полюбому'))'
всем заранее спасибо
 
Удаляем самый правый из имеющихся вертикальных сегментов.
Код:
Sub del_right_seg()
  Dim seg As Segment
  Dim n As Node
  x1 = -10000
  i = -1
  ActiveDocument.BeginCommandGroup "Delete right segment"
  For Each seg In ActiveShape.Curve.Segments
    If seg.StartNode.PositionX = seg.EndNode.PositionX Then  ' seg is vertical
      If x > x1 Then
        x1 = x
        i = seg.Index
      End If
    End If
  Next seg
  If i <> -1 Then
    ActiveShape.Curve.Segments(i).EndNode.BreakApart
    ActiveShape.Curve.Segments(i).SubPath.LastSegment.EndNode.Delete
  End If
  ActiveDocument.EndCommandGroup
End Sub
 
круто, спасибо!
к этому времени уже догадался про
Код:
ActiveShape.Curve.Segments(i).EndNode.BreakApart
    ActiveShape.Curve.Segments(i).SubPath.LastSegment.EndNode.Delete
а вот за логику нахождения крайней стороны отдельное спасибо:)
 
Статус
Закрыто для дальнейших ответов.