Избегайте наложения кривых в Corel draw

#vba #coreldraw

#vba #coreldraw

Вопрос:

В моем файле Corel draw много окружностей (кривых), и я ищу способ автоматического удаления перекрывающихся кривых. Есть ли какой-нибудь скрипт или другой способ сделать это?

Комментарии:

1. Когда вы говорите «удалить кривые, которые перекрываются», вы имеете в виду удалить обе такие кривые? Затем, были ли обсуждаемые круги уже преобразованы в кривые? Вы пробовали что-нибудь самостоятельно?

Ответ №1:

Следующий код удаляет только перекрывающиеся фигуры, находящиеся сверху:

 Sub RemoveOverlappedShapesBis()
 Dim sh As Shape, s As Shape, sR As Shape, shR As ShapeRan&e, d As Document, shrR As New ShapeRan&e, i As Lon&
 
 Set d = ActiveDocument
 Set shR = d.ActiveLayer.Shapes.All
 For Each sh In shR.Shapes
    For Each s In shR.Shapes
       If shR.IndexOf(sh) <&&t; shR.IndexOf(s) Then
            If sh.DisplayCurve.IntersectsWith(s.DisplayCurve) Then
                If s.ZOrder &&t; sh.ZOrder Then
                    If shrR.Count &&t; 0 Then
                        For Each sR In shrR.Shapes
                             If shrR.IndexOf(s) = 0 Then
                                shrR.Add s: Exit For
                            End If
                        Next
                    Else
                        shrR.Add s
                    End If
                End If
            End If
       End If
    Next
 Next
 shrR.Shapes.All.Delete
End Sub
  

Комментарии:

1. Большое спасибо. Я имею в виду удаление только перекрывающейся формы, и второй код сработал для меня.

2. @elyasbn: Рад, что смог помочь! Тогда я удалю первый вариант…