[CDR 2017-2020] Макрос для поиска одинаковых объектов по размеру

fjord

Участник
Топикстартер
Сообщения
21
Реакции
0
Здравствуйте, есть задача обработки чертежей (PDF сделанных, вероятно, в какой-то архитектурной программе) и импортированных в CorelDraw для дальнейшего использования в рекламе. Для этого их надо очистить от множества мелких штрихов, коротких линий.

Вопрос: существует ли макрос для CorelDraw 2020, который может находить и выделять все линии исходя из их длины?

Стандартный поиск Find and Replace / From selection выделяет все линии данного типа, основываясь на цвете, толщине и количестве узлов, а вот параметра "длина" там нет.
 

lmn1

15 лет на форуме
Сообщения
464
Реакции
187
Посмотрите "Панель макросов от Деревяшкина". Здесь на форуме.
Или как вариант: открыть pdf в Иллюстраторе, а там - плагин Astute FindReplace.
 
  • Спасибо
Реакции: fjord

fjord

Участник
Топикстартер
Сообщения
21
Реакции
0
Посмотрите "Панель макросов от Деревяшкина". Здесь на форуме.
Или как вариант: открыть pdf в Иллюстраторе, а там - плагин Astute FindReplace.
Cпасибо за ответ. Быстро просмотрев описание функций "Панель макросов от Деревяшкина" не удалось найти подобной функции, но возможно она как-то по-другому обозначена/названа.

А пока удалось найти макрос "SelectSame", там есть опция Size (Select all similar), макрос даже запустился в версии 2020, но вылетает с ошибкой и невозможно понять, подходит макрос под эту задачу или нет. К сожалению, в макросах (да и в "программировании" вообще) ничего не понимаю, поэтому описание ошибки (приложен скриншот) для меня тёмный лес...
select_same.png
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
32 852
Реакции
10 726
Попробуйте убрать фрагмент кода, на который ругается (напротив него справа стоит текст комментария)
 
  • Спасибо
Реакции: fjord

dastin

Некромант-любитель
12 лет на форуме
Сообщения
1 935
Реакции
1 851
множества мелких штрихов, коротких линий
ЛайфХак от 'Shelby Moore'
Ищет объекты - в т.ч. в группах ( но не в PoweClip) размером 1,5смх15,5см
Код:
Sub DeleteSmallShapes()
    Dim srSelection As ShapeRange, s As Shape
 
    'Break apart the active selection
    Set srSelection = ActiveSelectionRange.BreakApartEx
 
    'Delete all shapes that are smaller than 1.5cm
    srSelection.Shapes.FindShapes(Query:="@width < {1.5cm} and @height < {1.5cm}").Delete
 
    'Combine back to a single shape
    Set s = srSelection.Combine
    'Select the combined shape
    s.CreateSelection
End Sub
Размер - на ваше усмотрение - корректируйте

как варианты - поиск по площади или только по длине
Код:
'Delete by Area
srSelection.Shapes.FindShapes(Query:="@com.DisplayCurve.Area < {1cm^0}").Delete

'Delete by Length
srSelection.Shapes.FindShapes(Query:="@com.DisplayCurve.Length < {1.5cm^0}").Delete
 
Последнее редактирование:
  • Спасибо
Реакции: fjord

dastin

Некромант-любитель
12 лет на форуме
Сообщения
1 935
Реакции
1 851
ЛЯ запала .. ;]] поправил
 

fjord

Участник
Топикстартер
Сообщения
21
Реакции
0
Спасибо всем ответившим, будем экспериментировать :)
 

lmn1

15 лет на форуме
Сообщения
464
Реакции
187
У меня нет сейчас возможности проверить панель от Деревяшкина. Но скриншот выглядит похоже на то, что вам требуется.
1694982047736.png
 

lmn1

15 лет на форуме
Сообщения
464
Реакции
187
Попробовал панель Деревяшкина. Ищет!
Голубая кривая - образец размера. Будем искать кривые больше или меньше этого образца.
Выделяем все объекты, среди которых ищем. Потом с Шифтом выделяем голубой объект-образец.
В панели выбираем "больше" или "меньще" и затем - "выделить".
Для наглядности после поиска покрасил найденные объекты. Те. что больше образца - в красный, те, что меньше - в желтый.

 
Последнее редактирование:
  • Спасибо
Реакции: fjord

fjord

Участник
Топикстартер
Сообщения
21
Реакции
0
Попробовал панель Деревяшкина. Ищет!
Голубая кривая - образец размера. Будем искать кривые больше или меньше этого образца.
Выделяем все объекты, среди которых ищем. Потом с Шифтом выделяем голубой объект-образец.
В панели выбираем "больше" или "меньще" и затем - "выделить".
Для наглядности после поиска покрасил найденные объекты. Те. что больше образца - в красный, те, что меньше - в желтый.

Посмотреть вложение 160848
Cупер, спасибо! Надо разобраться как приобрести эту панель - там вроде только через обращение к автору по e-mail :)
 

fjord

Участник
Топикстартер
Сообщения
21
Реакции
0
Ещё удалось найти макрос "Jeff's select Same 3" на Macromonster, скачали, он там не в виде файла GMS а в виде EXE - скачали версию JH_SelectSame_2020.exe , запустили, Windows 11 гордо объявил что предотвратил запуск потенциально опасной программы, но там есть опция в пункте "Детали", "Всё равно запустить". Запустили, поставили все галочки, пошла установка, "Установка прошла успешно" и... нигде этого макроса не появилось :) Искали и в самом CorelDraw, и в файловом менеджере, и просто через поиск по всему компьютеру :) Пробовали несколько раз и каждый раз говорит что установился, но на самом деле нет :)
 

lmn1

15 лет на форуме
Сообщения
464
Реакции
187
Распакуйте JH_SelectSame_2020.exe. Там будет JH_SelectSame.gms.
Закиньте его в c:\Program Files\Corel\CorelDRAW Graphics Suite 20**\Draw\GMS\
Перегрузите Корел и ищите JH_SelectSame в панели макросов.
Но этот макрос ищет только объекты того же размера, но не меньшего.
 
  • Спасибо
Реакции: fjord

fjord

Участник
Топикстартер
Сообщения
21
Реакции
0
Распакуйте JH_SelectSame_2020.exe. Там будет JH_SelectSame.gms.
Закиньте его в c:\Program Files\Corel\CorelDRAW Graphics Suite 20**\Draw\GMS\
Перегрузите Корел и ищите JH_SelectSame в панели макросов.
Но этот макрос ищет только объекты того же размера, но не меньшего.
У Вас CorelDraw 2020 и макрос работает? Распаковали, получился GMS весом 84 Кб, поместили в папку, запустили, открылся НО выдаёт ошибку:
 

Вложения

  • jh_select_same_3.jpg
    jh_select_same_3.jpg
    46.7 КБ · Просм.: 18

lmn1

15 лет на форуме
Сообщения
464
Реакции
187
Корел 2022. Макрос работает. Вот этот. Он не из JH_SelectSame_2020.exe, а из JH_SelectSame_ver3_X5-2019.exe. Но все равно работает.
 

Вложения

  • JH_SelectSame.zip
    30.3 КБ · Просм.: 13
  • Спасибо
Реакции: fjord

lmn1

15 лет на форуме
Сообщения
464
Реакции
187
А вот gms из JH_SelectSame_2020.exe у меня тоже не работает с такой же ошибкой.
 

DukereD

макрософил
Сообщения
371
Реакции
82
У меня нет сейчас возможности проверить панель от Деревяшкина. Но скриншот выглядит похоже на то, что вам требуется.
Посмотреть вложение 160842
ой какая старая версия )
я тут на днях обновил. там крутой сканер.
Cупер, спасибо! Надо разобраться как приобрести эту панель - там вроде только через обращение к автору по e-mail :)
ну и да. по размеру образа ищет больше меньше или равно.
так же есть функция удаления (выбора) дублей объекта с учетом "зазора" т.е. дубли плюс минус могут отличаться или совсем не отличаться. и могут как накладываться друг на друга так и быть в разных местах. там много вариантов действия :)

тестовую версию можно скачать тут на форуме в ресурсах.
 
  • Спасибо
Реакции: fjord