Artistic Media, Break apart и удаление "опорных" линий

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

denisgrim

Участник
Топикстартер
Сообщения
1 171
Реакции
1
После рисования кистями из Artistic Media, чтобы сделать weld мазков, приходится сначала делать для мазков команду Break apart, а потом удалять отделившиеся опорные линии. При большом количестве мазков задача становится почти нереальной. Object manager немного облегчает работу по удалению опорных линий, но...
Есть ли какое-нибудь решение этой проблемы? С помощью Find пытался искать, но тоже не выходит :(
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Может устроит:

Выделить необходимые мазки
CTRL+K
Effects/Create Boundary

Оболочку можно выдернуть как объект.
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

MetroidZ сказал(а):
Увы, но внутренние области оказываются проигнорированы :(

Неужели никто до сих пор макрос не написал на эту тему? :/
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

вот прикидка для Х3:
Код:
Sub ArtBrushBreakAndClean()
   Dim sr As ShapeRange, srSel As ShapeRange
   If ActiveShape Is Nothing Then Exit Sub
   Set sr = ActiveSelectionRange.BreakApartEx
   Set srSel = sr.Shapes.FindShapes(, cdrGroupShape, False)
   sr.RemoveRange srSel
   sr.Delete
   srSel.CreateSelection
End Sub

вставить в VBAEditor (AltF11) в, например, projects -> GlobalMacros - CorelMacros и сделать как обычно кнопку для макроса
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Насколько я помню, опорные линии всегда одной толщины и цвета. Ктото выкладывал здесь макрос, назывался помоему sameColorSelect. Работает как в люстре select->same->stroke color. Вобщем ctrl+k всем объектам и выделить одну опорную линию, запустить макрос, чтобы выделил все обводки данного цвета и delete их.
Один минус-если на странице присуствуют другие объекты данного, макрос их тоже выделит.


P.S. Поскольку ничего не понимаю в VBA, возможно все эти функции описаны в коде wOxxOm'а.
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Toh_A сказал(а):
Насколько я помню, опорные линии всегда одной толщины и цвета. Ктото выкладывал здесь макрос, назывался помоему sameColorSelect. Работает как в люстре select->same->stroke color. Вобщем ctrl+k всем объектам и выделить одну опорную линию, запустить макрос, чтобы выделил все обводки данного цвета и delete их.
сначала попытайтесь убрать такую же обводку у отделившихся мазков :)))
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Странно, так вот не работает
Код:
If s.Type = cdrArtisticMediaGroupShape Then
Set srTemp = s.BreakApartEx
End If
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

wOxxOm сказал(а):
вот прикидка для Х3:...
вставить в VBAEditor (AltF11) в, например, projects -> GlobalMacros - CorelMacros и сделать как обычно кнопку для макроса
у меня ничего не получилось :(
Сделайте мне, пожалуйста, файлик gms или как там его?.. :(
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Имя в кустомайзинге: ThisMacroStorage.ArtBrushBreakAndClean

Для создания кнопки можно использовать макрос MacroInstaller http://recent.tekcities.com/ru.html#wx_MacroInstaller
 

Вложения

Ответ: Artistic Media, Break apart и удаление "опорных" линий

wOxxOm сказал(а):
Имя в кустомайзинге: ThisMacroStorage.ArtBrushBreakAndClean
Ошибочка, однако! Макрос действительно сепарирует мазок и удаляет опорную линию... но вместе с этим удаляется и мазок ;)
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

поосторожнее, у меня-то работает! вышлите файлик до breakapart
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Проверил макрос ещё раз - не работает :(
Корел у меня 13.0.0.667
файл прилагается.
 

Вложения

Ответ: Artistic Media, Break apart и удаление "опорных" линий

А так?
Код:
Sub WeldArtBrush()
Dim sh As Shape, shR As New ShapeRange
If ActiveSelection.Shapes.Count = 0 Then Exit Sub
For Each sh In ActiveSelection.Shapes.FindShapes(Type:=cdrArtisticMediaGroupShape)
    shR.Add sh
Next sh
ActiveDocument.RemoveFromSelection: shR.AddToSelection: Set shR = ActiveSelectionRange.BreakApartEx
For Each sh In shR.Shapes.FindShapes(Type:=cdrCurveShape)
    If sh.Curve.Closed = False Then sh.Delete Else If s Then Set sh1 = sh.Weld(sh1) Else Set sh1 = sh
    s = True
Next sh
End Sub
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

сначала скрипт споткнулся на строке For Each sh In ActiveSelection.Shapes.FindShapes(Type:=cdrArtisti cMediaGroupShape)
а потом он споткнулся вот тут:
If sh.Curve.Closed = False Then sh.Delete Else If s Then Set sh1 = sh.Weld(sh1)
в первом случае я просто убрал лишний пробел, а вот во втором случае моя мозга бессильна.
(пожалуйста, делайте сразу gms - я со скрипом ориентируюсь в скриптах :(
 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Лови...
 

Вложения

Ответ: Artistic Media, Break apart и удаление "опорных" линий

Уррааа!!!! Работает!!!
dizzy, спасибо огромное! Такую функцию вообще следовало бы вывести отдельной кнопкой на панель Artistic Media - и куда смотрят в Кореле?
А сейчас я осознал, что теперь кореловские кисти больше не вызывают у меня негативных эмоций :) Жизнь удалась! :)

Не по теме:
А теперь можно немного помечтать ;)
Мне кажется, что уже вполне настал тот день, когда следует собрать несколько наиболее полезных макросов в одну кучку и сделать инсталляционный пакет, самостоятельно выводящий красивые кнопочки на соответствующие панели в Кореле. Очень многие люди не пользуются даже встроенным CalendarWizard, в силу того, что не знают как его найти. А если создать некий Extended toolkit for CorelDRAW, то это будет фурором (за который не жалко будет и денежку отдать).

 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

denisgrim сказал(а):

Не по теме:
А теперь можно немного помечтать ;)...

Не по теме:
Мечтать можно и нужно! И важно мечтать не втихаря, как многие, а в открытую. Тогда велики шансы, что кто-нить добрый вроде меня их реализует.

Однако в этом случае не все так гладко как хотелось бы. Инсталяторы многие практикуют, однако кнопочки на панельки они не выводят. А те что выводят, сбрасывают на дефаулт все прежние установки, что тоже не есть гуд. В коробе я пытался задумать что-то вроде самоустанавливающегося макроса, но есть подозренья что не на всех машинах эта идея пошла на ура. Иными словами, чем сложнее выкрутасы, тем больше всплывает всяких нюансов...

...пока писал пришла в голову идея, авось и прокатит:)

 
Ответ: Artistic Media, Break apart и удаление "опорных" линий

Очень все правильно говорите, хоть и не по этому топику :-) У меня уже более года сотня макросов навешано на кнопки (на клавиатурные тоже) и по менюшкам, очень существенно расширяющие (под мои задачи, правда) базовый Draw. Без этих расширений для меня обычная установка Draw - как Lite версия, работать в которой после "нормальной" (расширенной) нереально, неудобно, невозможно.
 
Статус
Закрыто для дальнейших ответов.