Удаление объектов меньше заданного размера

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

kosokeks

Участник
Топикстартер
Сообщения
45
Реакции
0
Добого времени суток, господа!

Вопрос: как в дизайне мне удалить некоторые объекты, которые меньше заданного размера? Например всё что меньше 0,1 х 0,1 мм
В Find and replace такого не нашел. Там тока можно задавать кол-во узлов. Может скрипт какой есть?
 

Вложения

  • small-object.gif
    small-object.gif
    45 КБ · Просм.: 1 029

KiRычЪ

Участник
Сообщения
22
Реакции
0
Ответ: Удаление объектов меньше заданного размера

А самому написать? Там писанины тьфу... несколько строчек.
Выбираем объект -> смотрим размеры -> если меньше нужных -> Delete
И все это дело в цикле...
 

KiRычЪ

Участник
Сообщения
22
Реакции
0
Ответ: Удаление объектов меньше заданного размера

WITHOBJECT "CorelDraw.Automation.9"

.SelectAllObjects
.UngroupAll
.SelectPreviousObject 0
ID_Start& = .GetObjectsCDRStaticID()
.SelectObjectOfCDRStaticID ID_Start&
while ID_Start& <> ID&
.GetSize XSize&, YSize&
if (XSize&<1000) and (YSize&<1000) then
.DeleteObject
endif
.SelectNextObject 0
ID& = .GetObjectsCDRStaticID()
wend
END WITHOBJECT


удаляет все объекты, если размеры и по Х, и по Y меньше 0,1 мм
захочешь изменить размеры - исправь цифири 1000 (микроны). 1 мм - 10000 микрон, 0,1 мм - 1000 микрон
 

kosokeks

Участник
Топикстартер
Сообщения
45
Реакции
0
Ответ: Удаление объектов меньше заданного размера

Спасибо, Уважаемый KiRычЪ !
Но в написании скриптов я вообще-то лох. Как мне ЭТО в .gms или во_что_там_надо перевести? :o
 

KiRычЪ

Участник
Сообщения
22
Реакции
0
Ответ: Удаление объектов меньше заданного размера

*.csc (для 9-ки)
а вообще можно сделать намного проще - в самом корале создаешь скрипт и через буфер копируешь текст туда.
 

kosokeks

Участник
Топикстартер
Сообщения
45
Реакции
0
Ответ: Удаление объектов меньше заданного размера

Круто!!!
Всё поехало!
Спасибо.

Но, получается как:
прога прочесывает каждый поочереди объект, пока не попадается удовлетворяющий условию, удаляет его, и всё начинается заново.
У меня в этом примере всего 700 объектов.
Пока всё проскакало, прошло полчаса. Хмм, а когда у меня 10000...

Можно ли сделать алгоритм, чтоб сначала, например, каждый новый найденный объект включался в общее объединение. И всё за один проход. А потом, бах, и всё удаляется! :rolleyes:

С Уважением!
 

KiRычЪ

Участник
Сообщения
22
Реакции
0
Ответ: Удаление объектов меньше заданного размера

можно... все можно...
я этот кусок из какого то своего скрипта выдрал, поэтому он маленько кривоватый.
вот защитю 19-го диплом, протрезвею после всех пьянок и перепишу.
 

kosokeks

Участник
Топикстартер
Сообщения
45
Реакции
0
Ответ: Удаление объектов меньше заданного размера

ok

Буду ждать с нетерпением...
И буду благодарен, если пришлёшь на kosokeks@mail.ru

Удачи в защите!
 

kosokeks

Участник
Топикстартер
Сообщения
45
Реакции
0
Ответ: Удаление объектов меньше заданного размера

KiRычЪ, отзовись!
 
B

beespline

Гость
Ответ: Удаление объектов меньше заданного размера

Скрипт для CorelDraw 11 (SP2) - ObjectFinder.gms

Назначение:

Поиск в документе среди выделенных объектов по размеру (габаритам) в мм.

Особенности:

Вы можете искать объекты которые имеют размеры по ширине и высоте меньше или больше заданных размеров. Вы можете комбинировать условия поиска: искать объекты меньшей высоты и большей ширины или наоборот, а также определять логическое отношение сравнения пар "высота - ширина" оператором AND или OR.

Например: искать объекты высота которых больше 10 мм AND ширина которых меньше 15 мм; высота которых меньше 10 OR ширина меньше 15, и так далее.

Использование:

Выделите в документе нужные объекты для поиска, если вам нужно проверить все объекты в документе - нажмите Ctrl+A. Введите требуемые размеры в поля ширины и высоты в мм. Разделитель дробной части - точка. Выберите метод сравнения для каждого размера: Greater than - Больше чем; Smaller than - Меньше чем. Выберите логический оператор для пары: AND или OR. Нажмите кнопку Search. Если объекты удовлетворяющие условию будут найдены - они останутся выделенными. Вы можете их удалить сами, или вырезать из документа, или сгруппировать и так далее.

Диалоговое окно скрипта запускается в немодальном режиме. Это значит что вы можете переключаться между окном документа и диалогом в процессе поиска.

Вы можете получить данные размера объекта используя в качестве образца любой выделенный объект нажатием кнопки Get Sizes.

Инсталляция:

Скопировать файл objectfinder.gms в папку C:\Program Files\Corel\Corel Graphics 11\Draw\GMS Запустить CorelDRAW 11 (SP2), выполнить команду Tool > Visual Basic > Play...; в диалоге выбрать: ObjectFinder(objectfinder.gms), затем, вверху, выбрать: Main.FindObjectBySize, нажать кнопку Run.

С помощью настройки вы можете назначить данному скрипту клавиатурное сокращение или создать кнопку на любой панели инструментов.

Отказ:

Данный скрипт распространяется как есть. Никакой ответственности за вред нанесенный при использовании данного скрипта автор не несет.

По всем вопросам, комментарии и сообщения о багах: beespline@mail.ru
 

Вложения

  • objectfinder.zip
    10.6 КБ · Просм.: 413
  • objectfinder.gif
    objectfinder.gif
    4.5 КБ · Просм.: 869
Статус
Закрыто для дальнейших ответов.