[CDR X5-X8] Object Replacer script

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

darmidonec

Участник
Топикстартер
Сообщения
2
Реакции
0
Собственно столкнулся с проблемой нужно заменить несколько тысяч элементов на другие кривые или фигуры, нашел данный script для 8 корела... Object Replacer script в программных делах не соображаю, но насколько я понял script под x7 не оптимизирован, да вообще у него другое расширение, а не gms.
Собственно есть ли аналог, или может кто то посоветует более автоматизированный способ замены?
или может у кого завалялась 8 версия корела '%)'
 

lev

Модератор
20 лет на форуме
Сообщения
2 143
Реакции
2 066
Я пользуюсь примерно таким макросом:
Код:
Sub ObjectReplacer()
    Dim s As Shape, p As ShapeRange, ss As ShapeRange, ref
    ActiveDocument.BeginCommandGroup "ObjectReplacer"
    Optimization = True
    EventsEnabled = False
    ActiveDocument.SaveSettings
    ActiveDocument.PreserveSelection = False
    ref = ActiveDocument.ReferencePoint
    ActiveDocument.ReferencePoint = cdrCenter
    Set ss = ActiveSelection.Shapes.All
    Set p = ActiveLayer.PasteEx
    ppx# = p.PositionX
    ppy# = p.PositionY
    For Each s In ss    'ActiveDocument.Selection.Shapes
        'p.SizeHeight = s.SizeHeight
        'p.SizeWidth = s.SizeWidth
        p.Duplicate(s.PositionX - ppx, s.PositionY - ppy).OrderBackOf s
    Next
    p.Delete
    ss.Delete
    ActiveDocument.ReferencePoint = ref
    ActiveDocument.PreserveSelection = True
    ActiveDocument.RestoreSettings
    EventsEnabled = True
    Optimization = False
    ActiveDocument.EndCommandGroup
    ActiveWindow.Refresh
    Application.Refresh
End Sub
Макрос меняет выделенные объекты на заранее скопированный объект. Можно сделать вариант не с копированием, а с кликом объекта для замены.
Если раскомментируете пару строк, то новый объект будет брать размер заменяемого, можете сделать копию макроса с раскомментированными строками, ещё чего-то нафантазировать.

PS. Найденный Вами скрипт будет работать во всех версиях Корела с 7 по Х6, надо только отредактировать строку CorelDRAW.Automation.8 заменив цифру на номер версии. Для версий с "Х" вместо "Х" ставите единичку. Сам скрипт будет работать гораздо быстрее если заменить многократную вставку на дублирование объекта, как в макросе выше. Начиная с X7 поддержка CorelSCRIPT была вырезана из программы.
 
Последнее редактирование:
  • Спасибо
Реакции: darmidonec

darmidonec

Участник
Топикстартер
Сообщения
2
Реакции
0
Спасибо, вашим кодом не получилось воспользоватся так как даже не представляю куда его вставлять ;]] но вот совет насчет скрипта что я нашел и запустить на ранних версиях поменяв циферку помог... а посему большое спасибо 'thank'
 

pin25

Участник
Сообщения
4
Реакции
0
Спасибо тебе добрый человек'OoO' Воспользовалась твоим макросом'thank'
 
Статус
Закрыто для дальнейших ответов.