7 - 2002

Обработка в AutoCAD сканированной геоподосновы

Александр Россоловский

Ошибки сканирования

Проверка корректности сканированной подосновы

Расширенное редактирование подосновы

   Обеспечение точности ввода при расширенном редактировании

   Общие принципы корректировки дефектов сканирования подосновы

   Компенсация прямоугольных искажений

   Компенсация ромбических искажений

   Компенсация параллелограммных искажений

   Другие виды искажений подосновы

Ошибки сканирования

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

В начало В начало

Проверка корректности сканированной подосновы

Искажения подосновы выражаются в неравенстве величин шагов сетки в обоих направлениях и во взаимной неперпендикулярности направлений рядов ее узлов. Для проверки первого условия корректности подосновы, то есть равенства расстояний между ближайшими узлами в обоих направлениях, следует создать круг с центром в одном из узлов сетки, проходящий через один из ближайших узлов. Круг создается командой _circle без опций, доступной в главном меню по адресу Draw→Circle→Center, Radius [Рисование→Круг→Центр, радиус]. Удовлетворительной является ситуация, когда ближайший узел другого направления кажется лежащим на контуре круга либо когда смещение по визуальной оценке пренебрежительно мало. Для проверки второго условия корректности подосновы, то есть взаимной перпендикулярности рядов ее сетки, необходимо, создав выровненную по узлам ее ряда пользовательскую систему координат, в позиции одного из узлов создать вертикальную прямую. О создании выровненной системы координат уже говорилось в предыдущей публикации.

Горизонтальная прямая создается командой _xline с опцией _hor. Команда доступна в главном меню по адресу Draw→Construction line [Рисование→Прямая]. Не забудьте после завершения процедуры проверки восстановить исходную систему координат. Ситуация считается удовлетворительной, если смещение наиболее удаленного узла ряда визуально незаметно или пренебрежительно мало.

Если подоснова удовлетворяет обоим условиям, то вам останется только исправить масштаб и ориентацию подосновы, как было описано ранее, и можно приступать к работе над генпланом. Если нет — дефекты сканирования придется исправлять.

В начало В начало

Расширенное редактирование подосновы

Обеспечение точности ввода при расширенном редактировании

При работе с искаженной в процессе сканирования подосновой необходимо совместить ряды объектов привязки с рядами крестов сетки подосновы, а затем уже решать, пренебречь ли искажениями в силу их незначительности или заняться их корректировкой, используя уже более сложные процедуры.

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

Линейный массив, как и двухмерный, создается командой _array, однако число шагов его вдоль одного из направлений принимается равным единице. В этом случае расстояние между узлами массива запрашивается только для того направления, вдоль которого создается цепочка копий объекта или набора объектов. Число шагов массива задается равным числу шагов сетки подосновы в соответствующем направлении. Нелишне напомнить еще раз, что направление развития массива в процессе создания определяется текущей системой координат, настройка которой, а также последующее восстановление исходной были описаны выше.

При корректировке подосновы целесообразно, чтобы совмещенные с ней узлы привязки изменялись вместе с ней, оставаясь совмещенными с крестами геодезической сетки. Для этого следует связать их между собой таким образом, чтобы при выборе одного объекта выбирались и остальные, подлежащие корректировке вместе с этим объектом.

Одним из способов связать объекты является объединение их в группу. Для создания группы следует вызвать команду _group из командной строки. При обращении к данной команде вызывается диалоговое окно Object Grouping [Группы объектов], в котором новой группе присваивается уникальное имя посредством ввода в поле Group Name [Имя группы] и из среды которого производится выход в поле чертежа для выбора включаемых в нее объектов по нажатию на кнопку New [Новая]. Создание группы завершается нажатием на кнопку OK. В группу следует включить само изображение и все узлы привязки, созданные поверх него. Проделав это единожды, вам не придется больше заботиться о том, чтобы не забыть включить в набор для редактирования какой-нибудь объект.

Другой способ объединения примитивов — создание из них блока. Проще всего создать блок, скопировав выбранные объекты в буфер обмена с указанием базовой точки и вставив содержимое буфера в качестве блока в ту же точку после удаления исходных объектов. Для копирования набора примитивов в буфер с сохранением информации о базовой точке служит команда _copybase, доступная в главном меню по адресу Edit→Copy with Base Point [Правка→Копировать с базовой точкой].

Удаляются объекты командой _erase, доступной в главном меню по адресам Edit →Clear [Правка→Стереть] или Modify→Erase [Редакт→Стереть]. Чтобы не выбирать объекты дважды, лучше выбрать их до копирования в буфер, так как после этого набор остается активным и к нему можно применить команду удаления. Для вставки содержимого буфера обмена единым блоком служит команда _pasteblock по адресу Edit→Paste as Block [Правка→Вставить как блок]. Для того чтобы вставить объекты в ту же самую точку, из которой они были взяты, на запрос команды об указании точки вставки нужно ввести символ @ и нажать клавишу Enter.

В начало В начало

Общие принципы корректировки дефектов сканирования подосновы

Если подоснова по результатам проверки оказалась неидеальной, над ней придется как следует поработать. Вам потребуется применить к подоснове, равно как и к связанным с ней объектам привязки, неунифицированное масштабирование, при котором линейные размеры объекта изменяются в разных направлениях по-разному. Этим свойством в AutoCAD обладают только объекты ссылки, к которым относятся как растровые изображения, так и блоки. Группы объектов таким свойством не обладают.

Для применения неунифицированного масштабирования с целью исправления искажений подосновы требуется научиться точно контролировать направление, в котором производится масштабирование, и величину этого изменения. Растровое изображение, вставленное в чертеж, не позволяет произвольно определить направление изменения линейных размеров. Блок же позволяет управлять как величиной изменений, так и их направлением. Любые изменения блока распространяются на все включенные в него объекты, в том числе и на растровые изображения.

Блок обладает собственной объектной системой координат, вдоль основных осей которой и производится контролируемое, независимое для каждой из них изменение масштаба, определяющее линейные размеры объектов блока в соответствующем направлении. Система координат блока копируется с текущей системы координат, установленной в текущем пространстве в момент создания определения блока: в нашем случае — в момент копирования заключаемых в него объектов в буфер обмена. При вставке блока по умолчанию основные оси его объектной системы координат ориентируются вдоль соответствующих осей текущей системы координат чертежа. При повороте блока направления осей его системы координат (а следовательно, и направления, вдоль которых производится неунифицированное масштабирование) перестают совпадать с соответствующими направлениями осей текущей системы.

Величина масштабных коэффициентов блока вдоль основных осей его координатной системы доступна для изменения в соответствующих полях раздела Geometry [Геометрия] диалоговой панели Properties [Свойства] при условии, что изменяемый блок выбран. Такое раздельное масштабирование по отдельным осям может осуществляться только дискретно, возможность же контролируемого графического изменения для данного свойства отсутствует. По умолчанию все масштабные коэффициенты одинаковы и равны единице.

Контролируемое масштабирование с управляемым графически вводом масштабного коэффициента предусмотрено в AutoCAD в процессе применения команды _scale с использованием опции _reference. Эта команда, доступная по адресу Modify→Scale [Редакт→ Масштаб], предназначена для обычного унифицированного масштабирования, при котором пропорционально изменяются линейные размеры по всем направлениям.

Ни один из вышеупомянутых способов сам по себе не позволяет решить указанную проблему, так что приходится применять обходной маневр. Логика метода такова. Неодинаковые по двум взаимно перпендикулярным направлениям размеры объекта желательно уравнять. До создания на его основе блока следует выровнять текущую систему координат по осям будущих изменений. Созданный после этого блок в качестве объектной унаследует текущую систему координат, которая отвечает поставленной цели. Исходный масштабный коэффициент блока по всем направлениям известен и равен единице. Размер объекта по одному из осевых направлений принимается за эталонный, и с помощью тонко настраиваемого унифицированного масштабирования размер объекта по другому направлению уравнивается с ним. При этом изменяются также масштаб и размер по эталонному направлению. Для возврата исходного размера и значения масштабного коэффициента вдоль этого направления начальное значение масштабного коэффициента вводится в соответствующее поле диалоговой панели Properties [Свойства], в результате чего масштабные коэффициенты по разным осям получаются различными, однако уравниваются соответствующие им линейные размеры объекта. После этого над полученным объектом следует произвести вышеописанные манипуляции с целью приведения подосновы в соответствие с масштабом рабочего пространства чертежа и придания ей нужной ориентации. Для этого исходная система координат, временно измененная при создании блока, должна быть восстановлена. По завершении всех подготовительных процедур блок может быть либо расчленен, либо оставлен в прежнем виде. Высвобожденная в результате расчленения блока растровая подоснова сохранит все изменения, выполненные над ней в составе блока.

В начало В начало

Компенсация прямоугольных искажений

Если же подоснова имеет прямоугольное искажение, то данный метод выглядит следующим образом. В качестве объекта, над которым будут производиться редактирующие действия, будет использоваться одна ячейка сетки, точнее набор ее узлов-вершин. Для исправления искажения изменение линейного размера нужно выполнить вдоль одной из сторон прямоугольника. Следовательно, при определении блока на основе растрового изображения подосновы в совокупности с массивом точек привязки необходимо именно так выровнять его объектную систему координат. Поскольку эта система будет наследоваться по текущей координатной системе, последнюю нужно выровнять вдоль одной из сторон ячейки. Вызвав команду _ucs с опцией _z из главного меню по пути Tools→New UCS→Z [Сервис→Новая ПСК→Z], задайте направление главной оси X новой системы, указав курсором две точки в позициях вершин, принадлежащих одной стороне прямоугольной ячейки сетки. При указании точек в узлах сетки здесь и далее следует пользоваться объектной привязкой _node, которую для удобства можно назначить постоянной объектной привязкой, включив соответствующий флажок на странице Object Snap [Объектная привязка] диалогового окна Drafting Settings [Режимы рисования], вызываемого командой ‘_dsettings по адресу Tools→Drafting Settings… [Сервис→Режимы рисования…].

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

С целью уравнивания длины сторон ячейки сетки длину по одному из направлений следует принять за эталонную: именно ей должна стать равной после масштабирования блока другая сторона. Для примера пусть это будет направление оси X блока. Поскольку определение числового значения коэффициента такого масштабирования для символьного ввода в командной строке в качестве аргумента команды слишком трудоемко, в данном случае следует применить масштабирование по ссылке, при котором этот параметр вводится посредством наглядных интерактивных измерений в графической области чертежа. Применив к блоку команду _scale, следует обратиться к опции _reference, выбрать точку центра трансформации, которую удобно совместить с одним из узлов сетки, затем измерить шаг сетки в направлении Y в качестве изменяемого расстояния, а затем шаг в направлении оси X в качестве эталонного расстояния, по которому изменяется первое. Оба расстояния измеряются векторами с общим основанием, то есть при измерениях вводятся три точки, а расстояния измеряются от первой до второй и от первой до третьей точки.

В результате масштабирования синхронно изменяются расстояния по обоим направлениям, поэтому, чтобы сетка стала квадратной, расстояние по оси X следует вернуть к исходной величине. С этой целью при выбранном блоке в диалоговой панели Properties [Свойства] следует изменить коэффициент масштабирования по оси X, вернув ему значение 1, а настроенный в процессе предыдущей манипуляции коэффициент масштабирования по оси Y оставить без изменения. В результате этой операции размеры сетки в обоих направлениях станут равными.

Поскольку в рассматриваемом примере блоку при вставке из буфера уже была назначена нужная ориентация, нужно будет с помощью масштабирования по ссылке назначить шагу сетки требуемое значение в соответствии с масштабом измерений в рабочем пространстве чертежа, после чего подоснова практически готова к работе над чертежом генплана.

В начало В начало

Компенсация ромбических искажений

Исправление ромбического искажения подосновы немногим отличается от описанной выше корректировки прямоугольно искаженной подосновы. Основное различие состоит в том, что искажение направлено в данном случае вдоль одной из диагоналей ромба, поэтому текущая система координат должна быть выровнена по диагоналям ромба. Второе различие обусловлено спецификой указания точек при измерении изменяемого и эталонного расстояния при масштабировании по ссылке. Оба вектора, которыми измеряются расстояния, определяющие коэффициент масштабирования, имеют общую точку основания, которая указывается первой. Хотя невозможно произвести измерение длин диагоналей одного ромба в процессе выполнения команды, однако, поскольку в ромбе точка пересечения его диагоналей делит их на равные части, масштабный коэффициент может быть определен измерениями длин половин диагоналей. Чтобы не создавать нового построения для привязки к точке середины диагоналей, лучше использовать в качестве объекта приложения манипуляций при компенсирующем масштабировании ромбической сетки не одну, а четыре смежные ячейки, образующие фигуру, подобную каждой из этих ячеек. Таким образом без дополнительных построений можно получить точку для привязки при указании общего основания векторов измерения изменяемого и эталонного расстояний. Система координат для создания блока выравнивается вдоль одной из диагоналей ячейки. Перед вставкой блока из буфера обмена целесообразно вернуться к исходной системе координат.

Процедура унификации длины половин диагоналей технически ничем не отличается от описанной выше аналогичной процедуры с прямоугольной ячейкой: в процессе графического определения коэффициента масштабирования указывается средняя точка диагоналей ячейки, потом точка на вершине в направлении оси Y, а затем точка на вершине в направлении оси X. После восстановления исходного коэффициента масштабирования блока в направлении X ячейки сетки подосновы становятся квадратными, однако при этом они повернуты по отношению к рабочему положению на 45°. Для придания подоснове нормальной ориентации ее следует повернуть командой _rotate, введя в качестве аргумента значение 45 или –45 в зависимости от ситуации. Осталось лишь с помощью масштабирования по ссылке назначить шагу сетки требуемое значение в соответствии с масштабом измерений в рабочем пространстве чертежа, и тогда подоснова будет практически готова к работе над чертежом генплана.

В начало В начало

Компенсация параллелограммных искажений

Исправление параллелограммного искажения несколько сложнее, и его придется провести в два приема: нужно сначала преобразовать ячейку-параллелограмм в ромб, а затем исправить ромб уже рассмотренным способом. Во избежание повторения мы расскажем только о первой части превращения.

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

В этой ситуации используется уже описанный способ последовательного неунифицированного масштабирования блока. При этом необходимо помнить, что изменению должны подвергаться размеры блока только в направлении Y, а размеры по направлению X должны оставаться неизменными.

Приведем в качестве примера иллюстрацию, где точки, с которыми производятся манипуляции, отмечены номерами. Сначала следует провести вертикальную прямую через тупоугольную вершину (точка 1), затем создать круг с центром в остроугольной вершине, расположенной выше или ниже первой вершины (точка 2), с радиусом, равным длине горизонтальной стороны, измеренной по ее другой вершине (точка 3). Пересечение круга с ранее созданной вертикальной прямой определит позицию (точка 4), в которую должна в результате уже знакомого преобразования переместиться вершина параллелограмма (точка 1) для того, чтобы он стал ромбом. Поскольку при масштабировании по ссылке изменяемое и целевое расстояние должны измеряться из одной и той же точки, в качестве таковой придется выбрать точку 5, принадлежащую неизменяемой стороне фигуры и при этом расположенную на той же вертикали, что и перемещаемая вершина. В качестве центра трансформации при этом логично принять именно эту точку. Изменяемое расстояние будет указываться при этом от точки 5 до точки 1, а после этого указание в точке 4 определит расстояние от нее до точки 4, которое будет эталонным. Если к результату такого масштабирования применить неунифицированное масштабирование блока по оси X с возвратом исходного значения соответствующего масштабного коэффициента, то в результате получится ромб (что делать с этой фигурой, было описано выше). Ставшие ненужными линии промежуточных построений, выполненных в процессе преобразования блока, следует удалить, а аналогичные построения, «зашитые» в блоке, можно удалить после его расчленения либо спрятать по слою. По завершении корректировки длины шага полученной квадратной сетки нужно сделать видимой временно скрытую ранее растровую подоснову, после чего она в принципе готова к использованию при создании чертежа генплана.

В начало В начало

Другие виды искажений подосновы

Искажения сканированных изображений не ограничиваются вышеперечисленными. Возможны также трапециевидные и веерные искажения, которые вызываются протяжкой сканируемого материала с переменной скоростью в сочетании с перекосом подачи его в приемник, а также разной скоростью протяжки с каждой стороны приемного устройства. Но может получиться и полный «букет» наложенных друг на друга искажений: такое случается, если сканируется не оригинал, а уже «тянутая» копия. AutoCAD в стандартной комплектации не обрабатывает таких ошибок, но расширенные версии AutoCAD способны на большее, например, AutoCAD Map и AutoCAD Overlay позволяют компенсировать и трапециевидные искажения.

Окончание следует

«САПР и графика» 7'2002