Jump to content

    

Параллельное перемещение

Recommended Posts

def_rain

Здравствуйте, товарищи.

 

При расстановке symbols столкнулся с некоторым неудобством.

Допустим ситуация следующая:

Нужно разместить один компонент строго под другим вплотную друг к другу с минимальным зазором между их silkscreen outline(см. фото блок №2)

При этом шаг сетки очень мелкий.

 

Делаю следующее:

1. Сначала выравниваю один компонент относительно другого по координате X командой Align components

2. Далее выравниваю, ставлю вплотную один компонент к другому по координате Y (см. фото блок №1). Так вот на этом этапе и возникает вопрос. Как лучше и проще подвинуть один компонент к другому по Y, чтобы при этом не изменилась заранее выставленная координата X ? Может есть команда на подобии параллельного перемещения? Допустим в layout можно было сначала выравнять компонент по X, а потом подвинуть ТОЛЬКО по Y просто используя стрелочки вверх/вниз на клавиатуре.

Меня интересуют какие способы для этого предусмотрены в Аллегро?

 

711b2a2474b8.jpg

Edited by def_rain

Share this post


Link to post
Share on other sites

Ant_m

Выбираете команду move, потом компонент и в строке статуса есть буква P - жмите.

Но проще всего из консоли было, наберите help pick. Для относительного перемещения есть ipick.

з.ы и клавиатуру со стрелочками никто не отменял.

Share this post


Link to post
Share on other sites

def_rain
Выбираете команду move, потом компонент и в строке статуса есть буква P - жмите.

Но проще всего из консоли было, наберите help pick. Для относительного перемещения есть ipick.

з.ы и клавиатуру со стрелочками никто не отменял.

 

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

 

Мне просто нужно вручную подвинуть один компонент вплотную к другому, но чтобы это перемещение было ТОЛЬКО по координате Y т.к. Х уже выставлена.

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

Share this post


Link to post
Share on other sites

Ant_m

Что мешает иcпользовать ipick 0 +0,1 ?

Величина шага при использовании стрелок задается в каком то из скриптов конфигурации при загрузке editor.

Точнее сказать не могу, года два как cadence не использую, сижу на альтиуме :crying:

 

p/s Все украдено до нас (С). Посмотрите что есть в tools - utilites - aliases/key

alias CDown 'ipick 0; ipick_to_gridunit 0 -1'

alias CF2 next

alias CF5 color192

alias CF6 layer priority

alias CLeft 'ipick 0; ipick_to_gridunit -1'

alias CRight 'ipick 0; ipick_to_gridunit +1'

alias CSF5 status

alias CUp 'ipick 0; ipick_to_gridunit 0 +1'

.....

Share this post


Link to post
Share on other sites

def_rain
Величина шага при использовании стрелок задается в каком то из скриптов конфигурации при загрузке editor.

Точнее сказать не могу, года два как cadence не использую, сижу на альтиуме :crying:

 

Спасибо за ответ!

 

Кстати, двигать конечно стрелками можно, но как я выяснил не удобно... Просто здесь есть нюанс в том, что при перемещении стрелками, на самом деле мы не перемещаем компонент, а перемещаемся по экрану с захваченным компонентом. А данное перемещение по экрану происходит в пикселях(а не в мм, inch). Причем минимальный шаг перемещения = 16 пикселей, а максимальный 256. Это настраивается в Display - roaminc. И причем здесь я обнаружил глюк =)через каждые 6-7 шакгов с помощюь стрелки в одном направлении, компонент перемещается допустим не на 16 пикс, а примерно на 32.

 

Посмотрите что есть в tools - utilites - aliases/key

Я понял что вы имеете в виду. Т.е. по молчанию назначена клавиша CTRL+стрелки на ipick (alias CLeft 'ipick 0; ipick_to_gridunit -1')

и Shift + Стрелкина на move (alias SDown 'move; ipick_to_gridunit 0 -1')

 

1. Не могу понять в чем разница между CLeft и SLeft ?

 

Что мешает иcпользовать ipick 0 +0,1 ?

2. Посмотрел Help,для данной команды в синтаксисе нет "+" как у вас "+0.1" Здесь имеется в виду что координата X остается без изменения, а к координате Y прибавляется 0.1 к текущему значению?

Edited by def_rain

Share this post


Link to post
Share on other sites

def_rain
CLeft - Control Left, SLeft - Shift Left. По крайней мере я так думаю...

 

Так это понятно, просто на SDown и CLeft заданы разные команды.

1. alias SDown 'move; ipick_to_gridunit 0 -1'

2. alias CLeft 'ipick 0; ipick_to_gridunit -1'

 

Причем, с Шифтом у меня работает, а с Ctrl нет. Использую вместе с move.

Поэтому и хочу разобраться в чем разница между этими командами.

 

Из help:

 

ipick_to_gridunit

The ipick_to_grid command moves selected database elements in 1-grid increments according to the design's database units.

In conjunction with this command, the Ctrl or Shift keys plus the Up, Down, Left, and Right arrow keys, which are defined as default aliases in the system env file, let you move selected elements in 1-grid increments in the desired direction. (The system env file is located at share\pcb\text\env.)

 

Т.е. SDown и CLeft обе команды на перемещение с шагом 1 от заданной сетки.

 

Далее описание для ctrl и shift:

 

The Shift key aliases function in placement-edit application mode, in which the tool defaults to a pre-selection use model, letting you choose a design element (noun), and then a command (verb) from the right mouse button pop-up menu.

Т.е. в режиме placement-edit сначала выбираем элемент, затем команду(допустим move). После чего можно перемещать компонент с помощью Shift+стрелки.

 

The Ctrl key aliases function in the menu-driven editing mode, in which you choose a command (verb), then the design element (noun).

Т.е. сначала выбираем команду потом элемент.

Но здесь я ума не приложу что за menu-driven editing mode ? Что это за режим?

 

Может у меня поэтому и не работают стрелки с ctrl потому что я не там где нужно использую...

 

Вот еще:

To use these aliases, first choose an element, and ensure that it remains highlighted, at which point the Ctrl or Shift plus arrow keys can be used to move it incrementally.

Однако с ctrl все равно не работает =)

 

In placement-edit application mode, Shift click to select and move an element incrementally if no interactive command is active.

Share this post


Link to post
Share on other sites

Uree

Имеется несколько режимов работы редактора - GlobalEdit(или как-то так), PlacementEdit, EtchEdit, RoutePlan и ShapeEdit. Возможно поведение описано для случая когда перемещение делается "по правильному" - т.е. когда сначала включается команда Move и в ней делается перемещение, и для случая когда "внезапно захотелось" - т.е. без команды хватается компонент и перемещается куда надо в режиме PlacementEdit.

Можно это все проверить, но не знаю зачем - за все годы работы в аллегро PlacementEdit режим использовался только для одной функции и это совсем не перемещение:)

Share this post


Link to post
Share on other sites

def_rain
Имеется несколько режимов работы редактора - GlobalEdit(или как-то так), PlacementEdit, EtchEdit, RoutePlan и ShapeEdit. Возможно поведение описано для случая когда перемещение делается "по правильному" - т.е. когда сначала включается команда Move и в ней делается перемещение, и для случая когда "внезапно захотелось" - т.е. без команды хватается компонент и перемещается куда надо в режиме PlacementEdit.

Можно это все проверить, но не знаю зачем - за все годы работы в аллегро PlacementEdit режим использовался только для одной функции и это совсем не перемещение:)

 

А мне приходится регулярно PlacementEdit использовать =) Потому что параллельное перемещение (shift+стрелки) работает только для компонентов выделенных в этом режиме. Если выделить с помощью инструмента move уже не работает... не знаю почему, а было бы так удобно.

Еще дело в том, что в PlacementEdit нельзя выбрать дороги и виа, только компоненты.

Т.е. если я хочу переместить с помощью стрелок готовый и оттрассированый блок(кусок топологии), это сделать не получится, потому что выделить его нужно вместе с виа и дорогами с помощью move, а стрелки с шифтом тут не работают.

Еще обнаружил, что даже если выделить в режиме PlacementEdit несколько компонентов, то подвинуть их с помощью стрелок не получится. Т.е. работает только для одного компонента.

 

Я уже понял что залез в какие то дебри =)

Скорее всего нужно менять подход к задаче, потому что с помощью shift + arrow её не решить.

Вот к примеру возникла такая потребность:

Есть кусок топологии, нужно подвинуть его весь целиком так, чтобы край 20го пина G2 совпал с краем полигона.

При этом по координате Y G2 c обвязкой уже выравнен. Т.е. нужно подвинуть только по Х.

(см. фото)

Конечно можно выделить-move - переместить мышкой, но у меня стоит мелкая сетка (0.01), буквально чуть рука дрогнет и по Y уже будет нежелательное смещение...

 

Подскажите, пожалуйста какие приёмы применяете Вы в подобных ситуациях? И как проще и удобней исходя из практики?

Для меня это будет полезным =)

 

0fadf19df5b3.jpg

Edited by def_rain

Share this post


Link to post
Share on other sites

krux

вообще странно, что вам приходится двигать разведенные куски.

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

Share this post


Link to post
Share on other sites

Uree

Я тоже всегда делаю почти законченные модули, а потом "пакую" их на плате. Правда каких-то жестких требований что с чем должно быть выравнено не ставится, поэтому обычно расставляю в достаточно крупной сетке 0.5мм, потом если надо додвинуть перехожу на более мелкую 0.1 или даже 0.05мм, но последнее редко, меньше чем 0.1мм не требуется.

Сетка 0.01мм... ну не знаю, может где-то это и нужно, но пока не увидел необходимости. Компоненты расставлять точнее чем 0.1мм не вижу смысла, выигрыша в пространстве не увидеть, а проблем, как видно по вопросам def_rain появляется много. Трассировка в такой сетке - а зачем? Есть констрейны, есть птица gridless, если уж хочется водить трассы с минимальными зазорами, то есть смысл ее использовать.

Если нужно что-то к чему-то привязать стОит поэкспериментировать с точками привязки при выполнении перемещения, мне пока на все случаи жизни их хватало, правда иногда доп. линии требовалось рисовать... но особых проблем не испытывал.

 

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

Share this post


Link to post
Share on other sites

def_rain
вообще странно, что вам приходится двигать разведенные куски.

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

 

В роли "электрика" в моем случае выступаю я сам =)

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

 

 

Я тоже всегда делаю почти законченные модули, а потом "пакую" их на плате. Правда каких-то жестких требований что с чем должно быть выравнено не ставится, поэтому обычно расставляю в достаточно крупной сетке 0.5мм, потом если надо додвинуть перехожу на более мелкую 0.1 или даже 0.05мм, но последнее редко, меньше чем 0.1мм не требуется.

Сетка 0.01мм... ну не знаю, может где-то это и нужно, но пока не увидел необходимости. Компоненты расставлять точнее чем 0.1мм не вижу смысла, выигрыша в пространстве не увидеть, а проблем, как видно по вопросам def_rain появляется много.

 

В Layout я один раз настраивал сетку:

1. Видимая=1мм

2. Расстановка=0.1

3. Полигоны=0.5

4. Дороги=0.01

В Аллего каждый раз перенастраивать сетку приходится... Даже если будет 0.1 этого на все случаи не хватит.

Может на клавиши сетку назначить?

 

Трассировка в такой сетке - а зачем? Есть констрейны, есть птица gridless, если уж хочется водить трассы с минимальными зазорами, то есть смысл ее использовать.

Если нужно что-то к чему-то привязать стОит поэкспериментировать с точками привязки при выполнении перемещения, мне пока на все случаи жизни их хватало, правда иногда доп. линии требовалось рисовать... но особых проблем не испытывал.

С gridless попробую на практике, посмотрим поможет ли. Привязки и доп. линии - знакооомая тема =) хотя вряд ли разработчики предполагали что нам будет так тяжело =)

DFA_spreadsheet вот где может быть что то интересное. только руки не дойдут разобраться что там есть.

 

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

Согласен! =)

 

 

Share this post


Link to post
Share on other sites

Uree

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

 

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

 

DFA_spreadsheet - не сказать, что особо интересное. Всего лишь возможность определения зазоров/ориентации разных футпринтов.

Share this post


Link to post
Share on other sites

def_rain

Uree

 

Скажите, не встречались ли Вы случайно с глюком команды pick?

Допустим переношу виа в точку начала координат 0 0, жму enter, однако виа переносится не в 0 0, а в -0.0296 -0.1282(если повторить еще раз действие, то виа переместится уже в другую точку, но только не в 0 0).

Причем, если открыть ранее сохраненные версии этой платы в Аллегр, то там все в порядке =) Где то наверно в настройках что то тыркнул сам не зная зачем и куда =)

 

 

 

Share this post


Link to post
Share on other sites

krux
Допустим переношу виа в точку начала координат 0 0, жму enter, однако виа переносится не в 0 0, а в -0.0296 -0.1282(если повторить еще раз действие, то виа переместится уже в другую точку, но только не в 0 0).

это не глюк. это вы её хватаете не за точный геометрический центр, а мышой где-то рядом не в сетке.

при выделении для перемещения - тоже надо указывать, что вы хотите схватить именно за центр.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.