# Инструмент Правка

Библиотека: | Базовые
Введён в: | 2.3.0

## Поведение

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

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

  Разрядность добавленного провода определяется компонентами, к которым он подключен. Если он не присоединён к какому-либо компоненту, то провод будет отрисован серым, чтобы показать, что его разрядность неизвестна; если разрядность компонентов, которые провод соединяет, не согласована, то провод будет отрисован оранжевым, чтобы указать на конфликт, и провод не будет передавать какие-либо значения совсем, пока пользователь не разрешит конфликт.

  Все провода в Logisim либо горизонтальные, либо вертикальные; диагональных не бывает.

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

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

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

  Некоторые компоненты рисуют короткие отрезки, к которым могут быть подключены провода - такие как Элемент ИЛИ и Управляемый буфер. Logisim будет без напоминаний поправлять попытки создания проводов, слегка перекрывающих отрезки.

- Если пользователь нажимает клавишу Alt при прохождении мыши над проводом, то зелёный кружочек исчезает. Нажатие мыши выделяет провод, а перетаскивание мыши двигает его.

- Нажатие кнопки мыши, пока мышь находится над выделенным в данный момент компонентом, начинает перетаскивание всех элементов выделения.

  По умолчанию Logisim будет вычислять способ добавить новые провода так, чтобы никакие существующие соединения не рвались при перемещении. (Иногда он будет удалять или укорачивать существующие провода.) Если вы выполняете перемещение, для которого вы не хотите выполнения этих изменений, вы можете нажать клавишу Shift при перемещении. Если вы хотите полностью выключить это поведение, выберите Проект > Параметры..., перейдите на вкладку Холст, и снимите флажок Сохранять соединения при перемещении; в этом случае соединения вычисляются, только когда клавиша Shift нажата.

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

- Нажатии мыши внутри невыделенного компонента (но не на одном из мест контакта компонента) удаляет все элементы из текущего выделения и выделяет компонент(ы), содержащий точку нажатия.

- Нажатие мыши с зажатой клавишей Shift внутри компонента переключает присутствие/отсутствие компонента в выделении. Если несколько компонентов содержат эту точку, то присутствие/отсутствие всех этих компонентов будет переключено.

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

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

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

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

Некоторые клавиши имеют эффект с Инструментом Правка.

- Клавиши со стрелками меняют атрибут Направление для всех компонентов в выделении, которые имеют этот атрибут.

- Клавиши Delete и Backspace удаляют со схемы всё выделение.

- Клавиши Insert и MenuKey-D создают дубликат выделенных в данный момент компонентов.

Поведение Logisim при дублировании выделения или вставке из буфера обмена в схему несколько своеобразно: он не сразу поместит компоненты в схему; вместо этого выделение будет состоять из набора "призраков", которые будут добавлены в схему, как только они либо будут перетащены в другое место, либо удалены из выделения. (Это своеобразное поведение необходимо, поскольку в противном случае вставка объединит провода выделения и текущей схемы, а провода, находившиеся там раньше, будут перетаскиваться со вставленным буфером, если пользователь захочет переместить вставленные компоненты куда-то ещё.)

## Атрибуты

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

Назад к Справке по библиотеке