Проблема с выделением длинных изогнутых близкорасположенных линий

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

Cyrax

Топикстартер
10 лет на форуме
Сообщения
588
Реакции
4
Имеется 2 компьютера с одним и тем же Corel Draw X3. Раньше на обоих наблюдал следующую картину:
Если несколько длинных изогнутых линий расположены близко друг к другу, то при щелчке на одной из них выделяется другая (хорошо видно в режиме выделения узлов). А нужная линия не выделяется до тех пор, пока не удалишь другую (которая выделяется вместо неё), либо не переместишь её в нередактируемый слой. так и мучался с выделением.
Сейчас обнаружил, что на одном из компьютеров те же самые линии (открыл старый файл, с которым раньше мучался) стали выделяться нормально. Тот же файл на другом компьютере выделяется как и раньше - с косяками (т.е. выделяется не та линия, на которой щёлкаю, а другая, у которой прямоугольная область выделения охватывает точку щелчка).
На обоих компьютерах один и тот же Corel с одними и теми же настройками. Кнопка "Edit Across Layers" нажата на обоих. Проверяю один и тот же файл.

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

А вопрос в чём? Как выделить нужную линию, не взирая на существующие проблемы?

При выделенной неправильной кривой провести указателем над обоими удерживая Shift+Alt. Alt - захватит все объекты которые вы пересекли рамкой выделения. Shift инвертирует выделение - захватит нужную кривую и снимет выделение с ненужной.
При необходимости приблизиться зумом и переключиться в Wireframe режим.
Кстати зачем нередактируемый слой? Почему бы временно не залочить? Порядок расположения кривых вам не важен?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Кстати зачем нередактируемый слой? Почему бы временно не залочить?
Если залочить, то она по-прежнему будет "выделяться" в залоченном виде (вместо той, на которой щёлкнули), т.е прямоугольником с замками. Посему не вариант.

Порядок расположения кривых вам не важен?
Если кривые в одном слое - не важен.
Проблема наблюдается и в случае, когда кривые находятся в разных слоях, и когда в одном слое. Последний вариант - самый паршивый.

При выделенной неправильной кривой провести указателем над обоими удерживая Shift+Alt. Alt - захватит все объекты которые вы пересекли рамкой выделения. Shift инвертирует выделение - захватит нужную кривую и снимет выделение с ненужной.
Тоже не вариант, т.к. близкорасположенных линий у меня от 2 до 10 и при щелчке на одной из них выделиться может любая из соседних, в том числе и расположенная через 2-3 линии. А при движении указателя, удерживая Shift+Alt, выделятся и эти промежуточные 2-3 линии.
Ещё одно неудобство этого варианта: в режиме выделения узлов операция не работает (а выделение и корректировка формы линий как раз и происходит в этом режиме) - придётся постоянно переключаться для редактивания формы линий, а также для просмотра того, какая линия в данный момент выделена.

А вопрос в чём? Как выделить нужную линию, не взирая на существующие проблемы?
1. Отчего такой глюк ?
2. Только ли у меня такое наблюдается ?
3. Можно ли избавиться от этой напасти (выделение не той линии, по которой щёлкаешь)
4. Если нет, то как это можно обойти ?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Сейчас у меня каждый тип линий в отдельном слое и при щелчке на одной из линий выделяется линия из другого слоя.
Если скопировать линии в новый файл и так же разместить по разным слоям - проблема сохраняется. Если же перекинуть их все в один слой, то выделение происходит без проблем - на какой щёлкнул, та и выделяется (но раньше, помню, проблема была и в пределах одного слоя - мучался то как..).
В любом случае, на одном из компьютеров у меня такой проблемы нет вообще, даже когда линии находятся в разных слоях (тот же Corel с теми же настройками).
В общем, бардак какой-то.

P.S. Corel X3 лицензионный на обоих компьютерах.
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Думаю, попробовать макросом подправить выделение.
Повесить на SelectionChange процедурку. Только здесь 2 вопроса:
1. Предоставляет ли Corel возможность определить позицию курсора в файле ?
2. Как в SelectionChange исключить случаи протяжки, а также щелчок при нажатых режимных клавишах ? Есть такая возможность в Corel VBA ?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Как по мне, так гораздо проще заменить весь комп вместо того, чтоб так ожесточенно бороться с мельницей. Безусловно, победа этой мельницы даст вам плюс. Но соизмерим ли он будет с той ценой, которую вы за это заплатите?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Как по мне, так гораздо проще заменить весь комп вместо того, чтоб так ожесточенно бороться с мельницей.
Так работа идёт на обоих компах. Сейчас приходится делить второй комп (где нет таких глюков) в части выполнения сабжевых операций, что по времени очень затратно. Да и гарантии нет никакой, что в один прекрасный момент и на этом компе не возобновятся глюки с выделением (ведь раньше на этом компе тоже были проблемы с выделением).

Принимая во внимание отсутствие "штатных" советов по решению проблемы, можно сделать вывод, что это глюк Corel'а. Посему, пока вижу программный вариант выделения линий:
Повесить на SelectionChange процедурку. Только здесь 2 вопроса:
1. Предоставляет ли Corel возможность определить позицию курсора в файле ?
2. Как в SelectionChange исключить случаи протяжки, а также щелчок при нажатых режимных клавишах ? Есть такая возможность в Corel VBA ?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Только здесь 2 вопроса:
1. Предоставляет ли Corel возможность определить позицию курсора в файле ?
2. Как в SelectionChange исключить случаи протяжки, а также щелчок при нажатых режимных клавишах ? Есть такая возможность в Corel VBA ?
По-моему, все это решаемо через VBA. Хотя, вы примерчик бы кинули сюда, а то как то рассуждаем об отвлеченных материях.
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

оже не вариант, т.к. близкорасположенных линий у меня от 2 до 10 и при щелчке на одной из них выделиться может любая из соседних, в том числе и расположенная через 2-3 линии. А при движении указателя, удерживая Shift+Alt, выделятся и эти промежуточные 2-3 линии.
Ещё одно неудобство этого варианта: в режиме выделения узлов операция не работает (а выделение и корректировка формы линий как раз и происходит в этом режиме) - придётся постоянно переключаться для редактивания формы линий, а также для просмотра того, какая линия в данный момент выделена.
Сабжевый косяк с выделением имеет место и при выполнении данной операции (протяжка с Shift+Alt в случае выделения не той линии):
при выделении протяжкой выделяются не только те линии, которые охвачены прямоугольником, но и одна из тех, прямоугольная область которой включает нашу протяжку.
В приведённом ниже примере при щелчке на красной или чёрной линии выделяется зелёная. Если далее охватить прямоугольником только чёрную линию, удерживая Shift+Alt, то выделится не только чёрная, но и красная линия (аналогичная ситуация: при отсутствующей зелёной линии при щелке по чёрной выделяется красная).

Вот пример.
Здесь 3 линии: при щелчке на красной или чёрной линии выделяется зелёная. Если удалить зелёную, то вместо чёрной выделяется красная. Так у меня происходит на одном из компьютеров. На другом с некоторых пор стало всё нормально: выделяется та линия, по которой щёлкаем. На обоих компах - CDX3.
 

Вложения

Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

По-моему, все это решаемо через VBA.
По поводу решаемости у меня возникают сомнения: почему woxxom при написании макроса wx.selectInside, который выделяет об_екты, попавшие внутрь фигуры,
_
wx.selectInside 2008 март,1: usage: select a lot of small shapes, run the macro, click some big shape (not in Wireframe view)- all the objects inside the big one will be selected.

, не реализовал его путём отрисовки мышкой области выделения, как это происходит в режиме выделения узлов ?

В последнем случае необходимо фиксировать позицию курсора, да и все математические вычисления пересекаемости или охвата придётся программировать вручную (могу предположить, что если эти операции будут выполняться не нативным кодом, а VBA-макросом, то выполняться они будут ооочень долго)...
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

У меня с при щелкании с Altом выделяется нужная линия. Все равно проблему не понимаю.
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

У меня с при щелкании с Altом выделяется нужная линия. Все равно проблему не понимаю.
_MBK_, без Alt'а у Вас линии выделяются корректно ?
И какой у Вас Corel ?

Да, Alt работает, но только в режиме селекта. А необходимо преключаться между линиями в режиме выделения узлов.
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Без альта, естественно, выделяется верхняя (зеленая). Ну все равно не понимаю, выделяете с альтом красную и переключаетесь в редактирование узлов. В чем проблема?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Без альта, естественно, выделяется верхняя (зеленая).
В норме так не должно быть.

Ну все равно не понимаю, выделяете с альтом красную и переключаетесь в редактирование узлов.
Придётся выбрать режим селекта, выделить линию альтом, далее снова переключиться в режим узлов. Т.е. на каждое выделение - 2 операции переключения режимов.
Выделять разные линии приходится каждые 5 секунд. В итоге на переключение режимов уйдёт половина общего времени и, соответственно, производительность уменьшится вдвое.

Как заставить Corel выделять ту кривую, по которой щёлкаем ?
Если нет, то как обойти проблему без переключения режимов ?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Ну теперь уж я вас совсем не понимаю... Лишних два щелчка мышью - проблема? А как вы себе тот же вариант с макросом представляете? Каждый раз макрос запускать когда линию выделять надо? Так это еще дольше будет. Или макрос каким-то образом в интерфейс корела встраиваться должен чтоб все нажатия и движение мыши отрабатывать?
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Каждый раз макрос запускать когда линию выделять надо? Так это еще дольше будет.
Макрос будет запускаться автоматически при возникновении события "SelectionChange", в частности, при каждом щелчке мыши
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Может просто эту галочку временно отключить? У меня она, например) всегда выключена - мне так удобнее
 

Вложения

  • opt.jpg
    opt.jpg
    67.5 КБ · Просм.: 793
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

Да, я тоже хотел написать это :)
Может на одном компе она включена, а на другом нет.
 
Ответ: Проблема с выделением длинных изогнутых близкорасположенных линий

И вправду, из-за неё:
"Считать об_екты заполненными" (Treat all objects as filled)
:y)
 
Статус
Закрыто для дальнейших ответов.