8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
1 | |
Поиск координат узлов кривых в Corel Draw 1224.06.2014, 10:24. Показов 9391. Ответов 40
Метки нет (Все метки)
Здравствуйте. В результатах поиска нужной информации не нашел и решил создать новую тему. Надеюсь, что сделаю всё правильно и не повторюсь.
Ситуация следующая. Есть кривая с большим и произвольно изменяющимся количеством узлов. Нужно узнать координаты первого и последнего узла, чтобы записать их в переменные для осуществления с ними дальнейших действий. На VBA я новичок. Добавлено через 23 часа 23 минуты Никто с Corel не пересекался? Можно не обязательно с 12-м, там VBA вроде не сильно меняется от версии к версии. Или нужна дополнительная информация?
0
|
24.06.2014, 10:24 | |
Ответы с готовыми решениями:
40
Corel draw x6 Вылетает Corel Draw X5. Corel DRAW 12 не работает Задачи в Corel DRAW |
24.06.2014, 11:05 | 2 | |||||
С Corel, в смысле его VBA-надстроек, никто не пересекался (там вообще мало кто знает о макросах).
Есть пример для Word — возможно, там адресация узлов (с помощью VBA) аналогична:
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
24.06.2014, 11:12 [ТС] | 3 |
Немного не то. Сейчас скину кусочек кода с пояснениями.
0
|
24.06.2014, 11:32 | 4 |
Попробуйте. Но диалог будет продуктивен лишь с имеющим Corel.
Предлагаю сформулировать задачу без привязки к конкретному ВБА-приложению. Выше код неработающий; теперь нашёл готовый проект (там, по F6, типичная работа с узловыми линиями):
1
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
||||||
24.06.2014, 11:40 [ТС] | 5 | |||||
За пример спасибо, изучу. Просто обновление идёт с задержкой.
0
|
24.06.2014, 11:49 | 6 | |||||
Действительно! 0 просмотров для раскидай.doc! И это через 15 минут после просмотра:
По вашему примеру видно, что коды не взаимозаменяемы; вот вордовский синтаксис:
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
24.06.2014, 13:15 [ТС] | 7 |
Эти параметры указываются после End With. А файл я скачал.
Добавлено через 1 час 23 минуты Может подскажете какой-нибудь форум, где можно найти помощь по данной теме?
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
24.06.2014, 14:29 [ТС] | 9 |
Тогда буду пытаться сам. Если найду решение - напишу.
Добавлено через 17 минут Хотя уже вторую неделю вожусь. Добавлено через 8 минут И сформулировал задачу в общей формулировке, без привязки к VBA-приложению. Надо озвучивать?
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
25.06.2014, 10:04 [ТС] | 11 |
В общем случае задачу можно сформулировать следующим образом:
из внешнего источника (к примеру, файл с тем же расширением, но созданный в другом софте) была загружена группа узловых кривых произвольной формы и состоящая из произвольного количества узлов. Количество узлов в каждой кривой различно и уникально. Известно, что координаты последнего узла одной кривой совпадают с координатами первого узла следующей за ней. Но часть кривых при загрузке сместилась в произвольном направлении на произвольную величину. Надо найти эти кривые и поставить их на место. Чуть позже приложу рисунок, чтобы было нагляднее. Добавлено через 15 минут Поясняющие рисунки:
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
25.06.2014, 13:51 [ТС] | 13 |
Так и делается) Только этих кривых бывает очень много (за 100) и таких файлов тоже около 100... Времени уходит... Хотелось бы как-нибудь всё это автоматизировать, чтобы можно было тратить на такие вещи его поменьше.
0
|
25.06.2014, 14:28 | 14 |
Для 100 кривых 100! положений (размещений из 100 по 100).
Боюсь, человек всё же обгонит (обычную) ЭВМ в этом пазле. Но если придумать сходящийся алгоритм (а не полный перебор)... что-то типа задачи курьера. В институте я её так и не решил.
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
25.06.2014, 14:52 [ТС] | 15 |
100 - просто для примера, не очень много, но и не мало. А так... В одном файле - 20, в другом - 257, в третьем - 5 и т.д. Обгонит... Далеко не факт. Макросом должно выйти быстрее. Полный перебор тут и не нужен, там кроме кривых ещё много чего, но как отсечь кривые от всего остального я знаю и уже написал.
Добавлено через 8 минут Я планировал через координаты действовать. Если координаты нужных узлов отличаются, то вычисляется разница, на которую задается сдвиг кривой. Кривые-то идут друг за другом, в том числе и по номерам. На рисунке синие 1 и 3, а красная - 2.
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
29.06.2014, 17:41 [ТС] | 17 |
Согласен, в общем случае - ничего сложного. Но тут справедлива поговорка: "гладко было на бумаге, да забыли про овраги". В моём случае "овраг" - необходимость узнать координату нужного узла. Остальное, до и после этого момента, и в самом деле просто. Три цикла и одно ветвление, если не ошибаюсь.
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
||||||
20.08.2014, 10:06 [ТС] | 18 | |||||
Вроде бы разобрался. Правда не до конца, но кусочек кода решил выложить - может кто подскажет, как его оптимизировать да и вообще полезно, наверное, будет.
Только теперь это надо ещё и распространить на произвольное число кривых.
0
|
Заблокирован
|
|
20.08.2014, 10:20 | 19 |
shm2013, если бы Вы с самого начала приложили бы не картинку, а файл *.cdr - возможно уже имели бы решение...
Добавлено через 5 минут Попробуйте там спросить - https://www.cyberforum.ru/coreldraw/ Не исключено, что там есть спецы в VBA или в каком другом языке макропрограммирования для Corel...
0
|
8 / 6 / 2
Регистрация: 23.06.2014
Сообщений: 51
|
|
20.08.2014, 10:21 [ТС] | 20 |
С этим есть весьма существенные проблемы, решить которые, увы, нельзя.
0
|
20.08.2014, 10:21 | |
20.08.2014, 10:21 | |
Помогаю со студенческими работами здесь
20
Corel Draw где скачать Узнать версию Corel Draw Кодировка шрифта в Corel Draw X8 Различие Corel Draw и Photoshop Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |