[CDR X5-X8] как "разъединить все кривые" в один клик?

Статус
Закрыто для дальнейших ответов.

влас похабин

Участник
Топикстартер
Сообщения
4
Реакции
0
а их, этих кривых, Б-г весть сколько
без макроса не осилить..
может встречали что-нибудь похожее?

либо найдется охотник подсобить за мзду - ибо скажу прямо - VBA не самая моя сильная сторона
ожидаю весточку в лс
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Разьединить - это Break Apart в переводе на человеческий? Во всех кривых на всех страницах документа или как? А зачем такое странное надо - все ж рассыпется при этом?
 

влас похабин

Участник
Топикстартер
Сообщения
4
Реакции
0
Объект - Разъединить кривая (Ctrl+K)
у меня меню на русском
операция только на текущей странице документа

зачем нужно? - после многообъектной операции формирование-исключить (много сгруппированных объектов+много сгруппированных объектов+"объект-формирование-исключить") получил большое количество "осколков", значительное количество которых является сложными (объединенными) кривыми. нужно все их разъединить
 

Вложения

  • 2016-10-10_09-51-35.png
    2016-10-10_09-51-35.png
    7.3 КБ · Просм.: 942

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Тогда не пойму что мешает все скомбинировать, а потом разъединить?
Ну не один клик - два, но все ж не макрос!
 

влас похабин

Участник
Топикстартер
Сообщения
4
Реакции
0
в результате огульного объединения (Cntrl+L) и последующего разъединения потеряются уникальные заливки каждого "родительского" объекта, которые передались "осколкам"
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Вот как то так:
Код:
Sub BreakAll()
 ActiveDocument.BeginCommandGroup "Break all"

 Dim Sel As ShapeRange
 Dim I As Integer
  
 If Documents.Count = 0 Then Exit Sub
    
    Set Sel = ActiveSelectionRange
    If Sel.Count < 1 Then Exit Sub
    
    For I = 1 To Sel.Count
       If Sel(I).Type = cdrCurveShape Then
         Sel(I).BreakApart
       End If
    Next I
    ActiveDocument.EndCommandGroup
End Sub
Выделяете все и запускаете макрос
 
  • Спасибо
Реакции: izrukvruki
Статус
Закрыто для дальнейших ответов.