реклама на сайте
подробности

 
 
7 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Выравнивание объектов в Allegro PCB, Align in Allegro PCB
John Silver
сообщение Jun 29 2011, 09:55
Сообщение #46


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Вроде такой вариант пробовал sad.gif. Там есть закомментированные рудименты.
Точно помню, что делал:
создаются сегменты -> удаляются сегменты -> перемещается объект
создаются сегменты -> перемещается объект -> удаляются сегменты
Не помогло.
А ваще надо еще разок пройтись по всем вариантам.

Еще вопрос. Ведь надо сначала найти все сегменты, сохранить их, выйти из всех циклов, и только тогда можно двигать объект.
Как это изящьней реализовать, куда сохранять сегменты и новые точки. Что то не лежит душа к структуре, как потом удалить тип структуры?
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 29 2011, 11:32
Сообщение #47


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(John Silver @ Jun 29 2011, 11:55) *
...
Еще вопрос. Ведь надо сначала найти все сегменты, сохранить их, выйти из всех циклов, и только тогда можно двигать объект.
Как это изящьней реализовать, куда сохранять сегменты и новые точки...

Можно использовать список ( list ) , он вроде-бы может содержать любые типы данных, включая списки...
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 29 2011, 11:40
Сообщение #48


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Делал sm.gif
Во время итерации для удаления, выдается варнинг об отсутствующем ID (который удалили на предыдущем шаге).
Не красиво, загрязняют консоль.
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 29 2011, 11:44
Сообщение #49


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(John Silver @ Jun 29 2011, 13:40) *
Делал sm.gif
Во время итерации для удаления, выдается варнинг об отсутствующем ID (который удалили на предыдущем шаге).
Не красиво, загрязняют консоль.

перед тем как что-то делать проверяй этот dbid существует или нет, тогда ворнингов не будет...
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 29 2011, 11:52
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Не-не-не.
Я иду по списку:
1 взял сегмент, удалил, в списке осталась запись, но ID:removed
2 взял сегмент, получил варнинг о первой записи, ...
....
Ни обновить ID, ни удалить из списка.
Go to the top of the page
 
+Quote Post
PCBinAquarium
сообщение Jun 29 2011, 12:57
Сообщение #51


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 15-04-10
Из: Москва
Пользователь №: 56 666



Джон, спасибо. то что вы делаете весьма полезно. Не могли бы вы выложить последний вариант вашего кода align?
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 29 2011, 13:08
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



В первом посте есть ссылка, там идете на вкладку Downloads, и выкачиваете необходимую версию.
Устаканившемуся коду я присваиваю tag, например "0.5".
Текущая версия имеет тег "tip".
Иногда (редко) bitbucket не доступен, как сегодня перед обедом было. Но это очень редко и не надолго.
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 30 2011, 06:06
Сообщение #53


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(John Silver @ Jun 29 2011, 13:52) *
Не-не-не.
Я иду по списку:
1 взял сегмент, удалил, в списке осталась запись, но ID:removed
2 взял сегмент, получил варнинг о первой записи, ...
....
Ни обновить ID, ни удалить из списка.

Такое может быть при определенных условиях, но этого можно избежать... все зависит от того как организовать список (списки) и как потом с ними работать. Я стараюсь использовать списки в первую очередь и пока ворнингов удается избегать...
Кстати элементы из списков удалять можно, но опять же при определенных условиях...
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 30 2011, 08:14
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Разобрался.
Цитата
Попробуй сделать так: удаляется сегмент на старом месте -> перемещается объект -> создается сегмент на новом месте.

Вот так все заработало. wacko.gif
Оказывается если создать сегмент, и его конец попадает на заливку, то теряется Net.
Сдесь же получается, что конец попадает на уже сдвинутый пин, и все гуд.
Еще наблюдение, если не делать вызов axlDBCloak(), то потеряем Netы.

Варнинги появлялись когда терялись Net. Так и не понял в каком месте они вызывались.

Сделал принудительный режим "rough" для шейпов, при нажатом чекбоксе Stretch etch. Иначе тоже можно потерять Net.

Тестируйте.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 1 2011, 21:21
Сообщение #55


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Пофиксил баг. Если к пину подходит несколько дорожек, то при перемещении тянется только одна.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jul 4 2011, 06:53
Сообщение #56


Знающий
****

Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765



Потестил. Применительно к stretch etch ничего не нашел.
Возвращаясь к моему посту №22..
Добавлю - при отрицательных значениях координаты Distribute не работает галочка Gap.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 4 2011, 08:30
Сообщение #57


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Цитата(Ant_m @ Jul 4 2011, 09:53) *
Потестил. Применительно к stretch etch ничего не нашел.

гуд

Цитата
Возвращаясь к моему посту №22..
Добавлю - при отрицательных значениях координаты Distribute не работает галочка Gap.

Не понял, можно по шагам?
Таки мы выяснили, что сползание это фича?
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jul 4 2011, 08:52
Сообщение #58


Знающий
****

Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765



Скажем так, меня как пользователя немного смущает что если я задам разный шаг(в одном случае положительный а в другом отрицательный), то команда Distribute ведет себя по разному... Получается что команды distribute = +10 и distribute = -10 не симметричны! Выполняя например 4 команды: d = +10; d = +5; d = -5; d = -10 компоненты никогда не вернутся в туже исходную точку.

Про Gap: насколько я понял функция этой галочки не допускать чтобы компоненты накладывались друг на друга... Когда координаты положительны это так и есть - между компонентами всегда есть какое то расстояние. А вот если задать отрицательную координату, то компоненты легко друг на друга наложить, например задав Gap = -1(если компонент конечно не меньше 1мм).

З.Ы с фичей можно смириться(это верхний абзац поста) но есть НО - эта фича судя по всему влияет на Gap, точнее скажет так: поведение Gap это последствие фичи sad.gif
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 4 2011, 10:32
Сообщение #59


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



Все равно не понял в чем баг.

Функция Gap состоит в другом:
- используется только для DistributeH и DistributeV
- служит для распределения зазоров между границами компонентов
Т.о. при включенном Gap можно взять разнородные компоненты, распределить, и зазоры станут равны.
Если же не использовать Gap, то распределение будет вестись между точками (например центрами), и зазоры между границами разнородных компонентов будут разными.
Посмотрите в коде align_do.il, как используется переменная _formData->useGap.

Использование отрицательных координат:
- выстройте по горизонтали 10 элементов (резистор 0805)
- включите Gap
- в поле DistributeV введите "-20" mill (активируйте поле)
- нажмите Distribute, получится красивая лесенка. Зазор у соседних элементов между верхней границей нижнего элемента и нижней границей верхнего элемента будет =-20mill.
Go to the top of the page
 
+Quote Post
sa_per
сообщение Jul 6 2011, 08:09
Сообщение #60





Группа: Новичок
Сообщений: 8
Регистрация: 26-06-06
Пользователь №: 18 365



Очень симпатичная штука, спасибо!
А такой вопрос (может и ламерский): как выделить несколько компонентов для выравнивания не окном, а "поштучно" ?
ctrl+pick не работает..
Go to the top of the page
 
+Quote Post

7 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 07:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.02604 секунд с 7
ELECTRONIX ©2004-2016