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

 
 
> Выравнивание объектов в Allegro PCB, Align in Allegro PCB
John Silver
сообщение May 30 2011, 10:08
Сообщение #1


Местный
***

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



Представляю на ваш суд скрипт для выранивания и распределения объектов в Allegro PCB.
Возможности:
- объекты Group, Component, Pad, Via, Text
- выравнивание по горизонтали и вертикали (привязка к Origin, Body, Pin1)
- привязка к сетке
- выравнивание по краю (пока реализовано только Top)
- распределение автоматическое (между крайним левым/правым и крайним нижним/верхним объектом)
- рапределение с фиксированным шагом
- в планах распределение с использованием Boundary Box, автоматическое и с фиксированным шагом.

Проблемы:
- привязка к сетке сделана через *?:№;%%!". Как взять значение сетки?
- основной цикл программы постоянно висит в ожидании выбора объектов, отсюда некоторые проблемы...
- нет отката последних действий. Как это сделать стандартными средствами?
- выход из скрипта только по кнопке или из контекстного меню, т.е. при выборе другого инструмента
скрипт не закрывается, а потом при нажатии кнопки мы выходим, но у нас уже выбран другой инструмент.
Не красиво и не удобно, как это победить?
- после выполнения любой операции сбрасывается выделение и подсветка.

Установка и использование:
- файл формы и картинки положить в папку каденса по пути %formpath%
- файлы скриптов (3 шт) загрузить в Allegro
- запустить скрипт из ком. строки - align, или Alt+e+a, или через меню Edit
- выбрать объкты, на форме нажать кнопку с необходимым действием (форма встраивается в панель Options)

Высказвайте свои мнения, предложения, баги. Можно присоединиться к разработке на _https://bitbucket.org/Kapustin/align. Там же можно забрать и свежую версию.

Сообщение отредактировал John Silver - May 30 2011, 23:10
Прикрепленные файлы
Прикрепленный файл  align.zip ( 9.02 килобайт ) Кол-во скачиваний: 55
 
Go to the top of the page
 
+Quote Post
7 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 99)
John Silver
сообщение May 30 2011, 11:33
Сообщение #2


Местный
***

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



PS посмотрите как скрипт работает в других программах, например в редакторе футпринтов, проверьте выравнивание для падов. А то я даже ни разу и не попробовал...
PPS как сделать, что бы при перемещении компонента разведенные дорожки тянулись за ним, а не оставались на месте? перебирать все соединения вручную и двигать дорожки? Или есть какой-нить стандартный механизм?

Сообщение отредактировал John Silver - May 30 2011, 23:09
Go to the top of the page
 
+Quote Post
John Silver
сообщение May 31 2011, 16:12
Сообщение #3


Местный
***

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



Много чего пофиксил, да порефакторил.
Сделал распределение по зазору между объектами.
Сделал восстановление выделения.
А вот как все выглядит:


Сообщение отредактировал John Silver - May 31 2011, 16:17
Прикрепленные файлы
Прикрепленный файл  align.zip ( 10.61 килобайт ) Кол-во скачиваний: 38
 
Go to the top of the page
 
+Quote Post
vitan
сообщение May 31 2011, 19:40
Сообщение #4


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Давно хотел что-то подобное сделать, только все никак руки не доходили. Выравниваю по-старинке, кликами мышкой по компонентам с привязкой к сетке...
Скажите, а особых требований к версии нету (по скриншотам вижу, что 16)? У меня просто 15.х...
Go to the top of the page
 
+Quote Post
John Silver
сообщение May 31 2011, 19:59
Сообщение #5


Местный
***

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



Насчет версии не скажу, я взялся за skill начиная с 16,3
Пробуйте, если что, пишите, будем разбираться.

Обновил репозиторий. Все, что знал и представлял как сделать, сделал.
help.gif помогите решить оставшиеся проблемы.
Go to the top of the page
 
+Quote Post
vitan
сообщение May 31 2011, 20:32
Сообщение #6


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Попробую обязательно. Судя по картинкам сделано неплохо. Да и выложить не пожалели, за что спасибо.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 1 2011, 06:39
Сообщение #7


Знающий
****

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



Попробовал, кажется все работает (16,3 h28). Особенно радует функция Distribute. Спасибо за подарок santa2.gif

Есть несколько наблюдений:
- В командую строку, при запуске pcb, выводится "0 ==== ("move" nil (("&Align" "align")))"
- Не работает встроенная, стандартная, функция align components (которая доступна по правой клавише мыши, в режиме расстановки компонентов) пишет "E- *Error* align: too many arguments (0 expected, 1 given) - ("components")"

И еще хочется более развернутые рекомендации по установке...
Например для быстрой проверки сделал так:
- закинул все файлы из архива в папку с файлом brd
- в командной строке загрузил скрипты:
Цитата
skill load "align.il"
skill load "align_do.il"
skill load "align_utils.il"

Скрипты можно загрузить и используя файл allegro.ilinit. Тогда они будут читаться сами, при каждом открытии pcb редактора. В файле нужно указать:
Цитата
load( "D:\\Some_Path\\align.il")
load( "D:\\Some_Path\\align_do.il")
load( "D:\\Some_Path\\align_utils.il")


Цитата(John Silver @ May 30 2011, 14:08) *
Проблемы:
- основной цикл программы постоянно висит в ожидании выбора объектов, отсюда некоторые проблемы...

Добавлю еще одну: Если не завершить скрипт(прав. кл. - Done), то нельзя даже выйти из редактора. На кнопочку с крестиком не реагирует. File->Exit тоже не работает.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 1 2011, 07:49
Сообщение #8


Местный
***

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



"0 ==== ("move" nil (("&Align" "align")))" Появляется при регистрации пункта меню, и кто-нить знает, что это?

Если сделать например так:
axlCmdRegister( "alignDDD" 'alignDDD )
axlUIMenuRegister( "moveDDD" '( ("&Align" "alignDDD") ) )
то будет работать и стандартная функция.
Я это видел, но после изучения стандартной функции решил, что моя лучше и стандартная не нужна. В readme.txt есть соответствующее предепреждение.

По установке может добавлю более полное описание... потОм... Это может сделать любой, readme я вкомитаю.
Изменил установку картинок, теперь их нужно ложить по пути %bmppath%.
Ну и для быстрой проверки специально в каментах лежат записи типа skill load "o:\\Sripts\\align\\align_utils.il"

Цитата
основной цикл программы постоянно висит в ожидании выбора объектов, отсюда некоторые проблемы...
Если не завершить скрипт(прав. кл. - Done), то нельзя даже выйти из редактора. На кнопочку с крестиком не реагирует. File->Exit тоже не работает.

"некоторые проблемы" - это я мягко выразился. Вообще ничего не работает пока не выйдешь из скрипта.

Может кто предложит более симпатичные иконки?
Перевод надо бы проверить, например "Align by TOP boundary" - выровнять по верхней границе.

Сообщение отредактировал John Silver - Jun 1 2011, 08:07
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 1 2011, 09:18
Сообщение #9


Знающий
****

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



Еще заметил:
Если сразу после открытия редактора сделать выравнивание distribute то компоненты выстраиваются не лесенкой!
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

И только потом, если сделать align, например по центру, distribute равняет лесенкой.
Прикрепленное изображение


З.Ы. Иконки для кнопок вполне хороши, все сразу понятно из того что на них нарисовано. (В open office draw 3,0 например сделаны безобразно, пока названия не прочтешь, не поймешь)
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 1 2011, 10:18
Сообщение #10


Местный
***

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



Да, воспроизвел у себя, буду разбираться
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 1 2011, 11:42
Сообщение #11


Местный
***

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



Пофиксил.
Это происходило потому что:
- элементы выровнены по горизонтали, у всех одинаковая Y
- выбираем распределение по вертикали
- вызывается функуция для сортировки по координате Y
- т.к. Y у всех одинаковый, сортировка не происходит
- вызывается функци непосредственно сортировки, и видим фигню

Теперь при сортировке по Y, если Y-ки равны, дополнительно проверяется координата X. Тоже и при сортировке по X, дополнительно проверяем Y.
!!! Но, если хоть один объект будет иметь Y отличный от остальных, он выпадет из общего ряда и распределение опять отработает криво (или нормально??? laughing.gif )

Сообщение отредактировал John Silver - Jun 1 2011, 23:58
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 2 2011, 20:28
Сообщение #12


Знающий
****

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



Цитата(John Silver @ May 30 2011, 12:08) *
...
- привязка к сетке сделана через *?:№;%%!". Как взять значение сетки?

Если нужен размер сетки, то используй функцию axlDBGridGet
Цитата
- нет отката последних действий. Как это сделать стандартными средствами?

Смотри функции
axlDBTransactionCommit
axlDBTransactionMark
axlDBTransactionOops
axlDBTransactionStart
axlDBTransactionRollback
Цитата
- выход из скрипта только по кнопке или из контекстного меню, т.е. при выборе другого инструмента
скрипт не закрывается, а потом при нажатии кнопки мы выходим, но у нас уже выбран другой инструмент.
Не красиво и не удобно, как это победить?

В твоем случае как минимум нужно сделать так:
Код
axlCmdRegister( "align" 'align  ?doneCmd 'alignDone )

тогда твоя скилл процедура будет автоматом закрываться по событию DONE при вызове какой либо другой команды или по нажатию F6.
А еще лучше так:
Код
axlCmdRegister( "align" 'align  ?doneCmd 'alignDone ?cancelCmd 'alignСancel )

и написать обработчик для Cancel.
Тогда при нажатии стандартной горячей клавиши F9 (Cancel) процедура должна адекватно выгрузиться. Сейчас этого не происходит.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 2 2011, 23:39
Сообщение #13


Местный
***

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



Спасибо, Леша. Где ж ты раньше был...

Цитата(Old1 @ Jun 2 2011, 23:28) *
Если нужен размер сетки, то используй функцию axlDBGridGet

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

Цитата
Смотри функции
axlDBTransactionCommit
...

Это уже давно использовано. Работает как "Oops" внутри скрипта. А вот Undo не работает, пробовал и так, и сяк, не получилось. Где собака порылась?

Цитата
А еще лучше так:
Код
axlCmdRegister( "align" 'align  ?doneCmd 'alignDone ?cancelCmd 'alignСancel )

и написать обработчик для Cancel.
Тогда при нажатии стандартной горячей клавиши F9 (Cancel) процедура должна адекватно выгрузиться. Сейчас этого не происходит.

Вот за это отдельное спасибо. Тепеть можно работать.
Может знаешь, как взять текущую горячую клавишу, по имени команды?
Дабы повесить "Oops" на клаву.
А проблема в следующем: я, например, до сих пор использую старый набор, и на Oops висит F3. А кто-то использует другой набор.
По-хорошему надо узнать какая кнопка сейчас на команде "oops" и переассайнить ее на себя, а при выходе восстановить.

PS Вкомитал свежак.

Сообщение отредактировал John Silver - Jun 2 2011, 23:40
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 3 2011, 06:09
Сообщение #14


Знающий
****

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



Цитата(John Silver @ Jun 3 2011, 01:39) *
...
Может знаешь, как взять текущую горячую клавишу, по имени команды?
Дабы повесить "Oops" на клаву.
...

как вариант для oops - axlGetAlias, сначала получаешь список всех псевдонимов, затем перебирай пока не найдешь тот, который соответствует oops
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 3 2011, 07:46
Сообщение #15


Местный
***

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



Да, это вариант.
А как сделать, что бы дорожки не рвались, а тянулись за компонентом, переходным?
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 3 2011, 08:57
Сообщение #16


Знающий
****

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



В опциях команды Move поставить галочку Stretch etch. Но тогда, чтоб вопрос не возникал, ratsnets не будут тянуться за компонентом во время перемещения.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 3 2011, 10:39
Сообщение #17


Местный
***

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



sm.gif В команде
axlTransformObject(
lo_dbid/o_dbid
?move l_deltaPoint
?mirror t/nil
?angle f_angle
?origin l_rotatePoint
?allOrNone t/nil)
)
нет галочек.

Сделал горячую кнопку для Oops.

Свежий архивчик:
Прикрепленные файлы
Прикрепленный файл  align.zip ( 11.02 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 3 2011, 20:29
Сообщение #18


Знающий
****

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



Цитата(John Silver @ Jun 3 2011, 09:46) *
...
А как сделать, что бы дорожки не рвались, а тянулись за компонентом, переходным?

Сделать можно.
В общих чертах порядок действий например такой:
-выделяем символ (и определяем его dbid);
-берем список пинов (атрибут pins);
далее для каждого пина
-берем атрибут branch;
-у взятого бранча берем атрибут children ( это список );
-проверяем полученный список на наличие объекта типа path, если такой объект или объекты присутствуют, то к пину проведена дорожка или дорожки;
-у каждого объекта path берем список сегментов из которых он состоит (атрибут segments);
-перебираем список сегментов и находим тот который выходит из пина (у каждого семента проверяется атрибут startEnd, это список с координатами начала и конца сегмента, координаты пина можно определить, взяв атрибут xy);
- зная смещение символа ( пина) вычисляем новые координаты сегмента;
- двигаем символ;
- удаляем прилегающий к пину сегмент ( axlDeleteObject );
- создаем сегмент с посчитанными координатами ( axlDBCreateLine ).
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 4 2011, 01:18
Сообщение #19


Местный
***

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



Жесть, может когда нибудь сделаю...

А вот какой баг я нашел:
- выставте десяток элементов по вертикали, координаты X должны быть различными
- нажмите "Распределить по вертикали", настройки распределения не важны
- элементы выстраиваются, но при этом перемешиваются
- таже ситуация и для распределения по горизонтали

Посмотрел на код, вроде должны сортироваться по возрастанию, а получается, что нет.
Сортировка происходит в функции orderByY (objectList), при этом используется стандартная процедура sort( objectList 'comparePositionY ).
Где косяк??? Я не вижу. Может sort имеет какой-нибудь ньанс в работе?

PS горячая клавиша для Oops при повторной загрузке скрипта не работала. Исправил.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 4 2011, 21:47
Сообщение #20


Местный
***

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



Пофиксил, вкомитал.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 6 2011, 08:14
Сообщение #21


Местный
***

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



Цитата(vitan @ May 31 2011, 22:40) *
Давно хотел что-то подобное сделать, только все никак руки не доходили. Выравниваю по-старинке, кликами мышкой по компонентам с привязкой к сетке...
Скажите, а особых требований к версии нету (по скриншотам вижу, что 16)? У меня просто 15.х...


Ну как, работает в 15 версии?
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 10 2011, 06:51
Сообщение #22


Знающий
****

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



John Silver
Нашел мелкий баг. Компоненты "сползают" вниз, если использовать Distribute с отрицательным Step.
Например Step = -4, применяем. Потом делаем Step = -8, применяем. Еще раз делаем Step = -4, и видим что компоненты на прежнее место не вернулись - ушли ниже. Это если для Vertical, для Horizontal работает аналогично.

Есть еще предложение - можно ли сделать выбор компонента, относительно которого происходит равнение других? Т.е чтобы этот компонент всегда оставался на месте, а другие равнялись на него?
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 10 2011, 16:00
Сообщение #23


Местный
***

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



За баг спасибо, посмотрю.

Про фиксированный компонент.
Я например не вижу, как это будет выглядеть в UI, не представляю алгоритм.
Предлагайте алгоритм, UI.
Может лучше использовать отдельный скрипт (вроде align_sym.il, в интернетах лежит)?

Вот я попользовался скриптом (в кои-то веки) и понял, что Align и Distribute располагать на разных "вкладках" не удобно. Но, с другой стороны, место на панельке нету.
Кто предложит другой UI?

PS align_sym.il лежит сдесь на ftp (по крайней мере гугль так сказал)
PPS Нашел скрипт (как раз для сдвига с привязкой к компоненту):

Сообщение отредактировал John Silver - Jun 10 2011, 18:02
Прикрепленные файлы
Прикрепленный файл  move_snap.rar ( 9.58 килобайт ) Кол-во скачиваний: 19
 
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 10 2011, 17:50
Сообщение #24


Местный
***

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



Цитата(Ant_m @ Jun 10 2011, 09:51) *
Нашел мелкий баг. Компоненты "сползают" вниз, если использовать Distribute с отрицательным Step.


Это не баг, это фича wink.gif
Ведь при каждой следующей итерации, снизу оказывается уже другой компонент. А фиксируется, как раз самый нижний.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 19 2011, 13:10
Сообщение #25


Местный
***

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



Ну вот я и переборол свою лень, и перепилил UI. Теперь все действия в одном флаконе.
Оценивайте.


Скачивать по-прежнему сдесь.
Go to the top of the page
 
+Quote Post
Guest_PotHead_*
сообщение Jun 20 2011, 17:12
Сообщение #26





Guests






John Silver, сколько Вы потратили на всю эту работу времени ? И сколько Вы с этого заработали ?
А.... гордость - какой я крутой конструктор или ой как интересно конструировать ?
Гордость в карман не положишь, а ой как интересным сыт не будешь !
Вот из-за таких людей как Вы, убивающих бесплатно вечерами свое время (а обычно овертайм оплачивается по ставке х1.5) электронщики - бомжовская специальность.
Приходит человек на работу чтобы денег заработать, а там сидит вот такой бобер, влюбленный в паялник и компилятор, ой как интересно котнструировать !
Забился в свою норку и лишь бы его палкой не трогали.

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

Кто хочет научится - тот научится и будет ценить свои знания, зарабатывать с их помощью денги и не разбрасыватся ими налево и направо за гордость.
А везде ходить и учите всех и вся за спасибо - это себе-же хуже делаете.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 20 2011, 18:24
Сообщение #27


Местный
***

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



О! Вот кого нам не хватало в этой теме, встречаем PotHead'а!
Он сейчас нас научит, как и что надо делать, а главное сколько это должно стоить в денежном выражении! А еще он нам расскажет, кто и какие должен преследовать цели, когда раздает бесплатно код.

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

В любом случае, дорогой PotHead, это флуд и офф, и я не хочу его видеть в этой теме.

PS Ну и конечно же есть здравое зерно.
vitan где отзыв про работоспособность в 15 версии? (кстати, спасибо за протекцию)

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

Ant_m, почему бы Вам не предложить нам, как это должно работать. Расскажите свое видение этого вопроса.
to ALL удобен ли новый интерфес, аль старый был лучше?
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 21 2011, 05:39
Сообщение #28


Знающий
****

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



Свое видение? Постараюсь внятно изложить... В общем то, у вас все сделано, нужно только добавить фичу)))
Для ясности опишу как вижу алгоритм когда выравнивание, например, к верху:
- пользователь выделяет компоненты и нажимает align top;
- скрипт ищет компонент с самой большой координатой Y;
- скрипт поднимает(сдвигает) другие компоненты на такую же высоту.

Теперь чего хочу я: а хочу я чтобы компоненты выстраивались по указанной, заданной пользователем координате. Тогда будет всего 2 варианта выравнивания либо горизонтально, либо вертикально. Вот как я это представляю:
- пользователь выделяет компоненты, для выравнивания;
- пользователь указывает координату, тут есть 2 варианта:
-- "абстракная координата", т.е пользователь тыкает мышью в "пустое" место. На практике такое не нужно.
-- координата компонента, причем любого другого, он не входит в группу выделенных компонентов. (можно конечно сделать чтобы и входил в группу выделенных, но кажется это лишние, и не нужные сложности)
- пользователь указывает как он хочет равнять: вертикально или горизонтально (соответственно алгоритму нужна будет либо X либо Y);
- скрипт выстраивает компоненты по указанной координате. При этом уточняю, что у компонентов меняется лишь одна координата.

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

На практике эту кучу действий приходится делать вручную, когда выстраиваешь компоненты по "линеечке". Зачастую эта "линеечка" задается положением одного компонента на плате.

З.Ы как это привязать к UI... Порядок действий не обязателен, поэтому можно сделать например так:
сделать 2 кнопки: вертикальное и горизонтальное выравнивание.
пользователь тыкает в кнопку, затем указывает группу компонентов. Потом его просят ткнуть мышкой для выбора компонента. Дальше работает скрипт.
Go to the top of the page
 
+Quote Post
vitan
сообщение Jun 21 2011, 06:20
Сообщение #29


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(John Silver @ Jun 20 2011, 22:24) *
О! Вот кого нам не хватало в этой теме, встречаем PotHead'а!

Не обращайте внимания. У него последний месяц болезнь попустила немного, начал философствовать. Пытается зацепить демагогией. Скоро ему выделят отдельную ветку, будет сам с собой разговаривать.
А может, посчитает время, которое потратил, переведет в деньги, ужаснется и смоется...
Цитата(John Silver @ Jun 20 2011, 22:24) *
vitan где отзыв про работоспособность в 15 версии? (кстати, спасибо за протекцию)

Не за что. sm.gif
У меня не получилось установить.
Команда skill load "align.il" выдает ошибку "undefined function axlUIMenuRegister"
Очевидно, с предыдущей функцией проблем не возникло, непонятно только, что в этой не так.

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

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

И еще есть вопрос: а нельзя ли сделать так, чтобы после нажатия Oops после выравнивания с выбранных компонентов не сбрасывалось выделение и они продолжали бы оставаться выделенными? Это чтобы выровнять по-другому, если ошибся. А то приходится снова выделять компоненты, temp group и т.п....
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 21 2011, 09:55
Сообщение #30


Местный
***

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



Цитата(Ant_m @ Jun 21 2011, 08:39) *
З.Ы как это привязать к UI... Порядок действий не обязателен, поэтому можно сделать например так:
сделать 2 кнопки: вертикальное и горизонтальное выравнивание.
пользователь тыкает в кнопку, затем указывает группу компонентов. Потом его просят ткнуть мышкой для выбора компонента. Дальше работает скрипт.

Вот теперь и я увидел, как это может работать.
1 На форме чекбокс (кнопки Done, Oops... придется удалить, появится место) для перехода в режим привязки по компоненту. Жмем его.
2 Появляется 2 кнопки и 2 поля для фиксированных координат (поля не активны, включим их 2-мя чекбоксами).
3 Выбираем объекты.
4 Жмем действие, получаем приглашение для указания привязки к объекту или точке. (Сдесь будут проблемы, у нас уже есть выбранные обекты, придется сбрасывать и потом восстанавливать их)
5 Тыркаем выбирая привязку. Ву-а-ля.
6 Восстанавливаем выделение?
7 Если активны поля для фиксированных координат: жмем действие и сразу выстраиваемся.
Вроде неплохо получается?

Цитата(vitan)
Команда skill load "align.il" выдает ошибку "undefined function axlUIMenuRegister".... картинки не возникли ...

Посмотрите доки в своей версии, что они говорят? (никто кроме Вас это не сделает)
В коде есть заглушка для формы в отдельном окне, попробуйте, может появятся картинки. 2 строки раскоментировать, одну закоментировать.

Цитата
а нельзя ли сделать так, чтобы после нажатия Oops после выравнивания с выбранных компонентов не сбрасывалось выделение

Хорошее предложение, надо будет сделать.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 21 2011, 10:35
Сообщение #31


Знающий
****

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



Цитата(John Silver @ Jun 21 2011, 13:55) *
Вот теперь и я увидел, как это может работать.
1 На форме чекбокс (кнопки Done, Oops... придется удалить, появится место) для перехода в режим привязки по компоненту. Жмем его.
2 Появляется 2 кнопки и 2 поля для фиксированных координат (поля не активны, включим их 2-мя чекбоксами).
3 Выбираем объекты.
4 Жмем действие, получаем приглашение для указания привязки к объекту или точке. (Сдесь будут проблемы, у нас уже есть выбранные обекты, придется сбрасывать и потом восстанавливать их)
5 Тыркаем выбирая привязку. Ву-а-ля.
6 Восстанавливаем выделение?
7 Если активны поля для фиксированных координат: жмем действие и сразу выстраиваемся.

Ээээ... Как то многовато действий будет smile3046.gif

п.2 - поля мне кажется тоже совершенно лишние, никто руками цифры вбивать не будет - это не удобно. А если и будет то для этого есть команды pick, ipick

п.4 явно лишний. Посмотрите как работает команда Move, когда в опциях указана привязка user pick. Там происходит так: жмешь кнопку move(или через меню), потом выделяешь рамочкой объекты. А после этого среда ждет что пользователь ткнет мышкой в любую точку на экране(это собственно п.5). Относительно этой точки все выделенные объекты и начинаются перемещаться. Все довольно просто и не нужно никаких приглашений.

Нужно добавить только 2 кнопки(вертикальное и горизонтальное выравнивание) и все. Итого получится:
п1: давим кнопку
п2: выбираем компоненты
п3: тыкая мышкой указываем точку отсчета, или компонент относительно которого все равняется.
и больше от пользователя ничего не требуется.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 21 2011, 10:58
Сообщение #32


Местный
***

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



Цитата
Многовато действий

Я расписал подробно, а суть та же.

Все же:
1 Выбираем компоненты
2 Выбираем действие
...
Иначе нарушается идеология, да и как изменить выбор? Получается один шанс для выбора объектов.

Поля для цифирь можно оставить напотом. Но они будут весьма полезны. Мы и сдвинем на нужное место, и выровняем сразу.

4 Приглашение в командной строке.

А может не нужна смена режимов...? Кнопки расположить на основной форме? Но тогда не останется места для новых полей ввода.
Go to the top of the page
 
+Quote Post
vitan
сообщение Jun 21 2011, 11:06
Сообщение #33


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Я уже прямо начал пользоваться. sm.gif Картинки чинить некогда, и так работает, красоту потом наведем.
А как быть с выравниванием переходных отверстий? Если к ним подключены дороги, то они отсоединяются и возникает куча DRC. Нельзя ли предусмотреть опцию stretch etch, как это сделано в move? rolleyes.gif

UPD. И еще у меня после выравнивания отверстий на них назначаются другие цепи...
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 21 2011, 11:15
Сообщение #34


Местный
***

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



Да, тянучек очень не хватает. Как это сделать написанно в посте 18.
Сделать это займет от 2 до 8 часов, а я трошку выдохся, недосуг пока.
Кто хочет потрудится? (помните приключения Шурика? sm.gif ) Присоединяйтесь, не стесняйтесь!

Да, эта фича должна быть обязательно, на основной форме, значит кнопки для работы с привязкой придется все же вынести на другую форму, использвать режимы.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 21 2011, 12:23
Сообщение #35


Знающий
****

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



Цитата(John Silver @ Jun 21 2011, 14:58) *
А может не нужна смена режимов...? Кнопки расположить на основной форме? Но тогда не останется места для новых полей ввода.

Насчет места не знаю у меня все с этим нормально, там еще 3 таких панели легко поместятся.

что если сделать так? (извиняюсь за качество каракуль на картинке, с gimp не слишком знаком)
Прикрепленное изображение


Пояснения:
п1: Выделяем группу компонентов (на рис. это 1)
п2: давим кнопку [Pick], и выбираем точку привязки. тут же происходит выравнивание.
п3. Если юзера устраивает, то он давит [Done], если нет то [Oops], а потом опять [Pick]

Поле ввода, входящее в группу 2 можно использовать также не только для кнопки Distribute но и кнопки Pick. rolleyes.gif
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 21 2011, 12:58
Сообщение #36


Местный
***

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



Цитата(Ant_m @ Jun 21 2011, 15:23) *
Насчет места не знаю у меня все с этим нормально, там еще 3 таких панели легко поместятся.

Какое интересное расположение панелей. У меня все 3 стоят друг над другом. И места уже не осталось.
Оно конечно хорошо все на одной форме, все под рукой, но место...
Ладно, будет видно...

Цитата
Пояснения:
п1: Выделяем группу компонентов (на рис. это 1)
п2: давим кнопку [Pick], и выбираем точку привязки. тут же происходит выравнивание.
п3. Если юзера устраивает, то он давит [Done], если нет то [Oops], а потом опять [Pick]

Вроде я именно так и сказал 1111493779.gif

Цитата
Поле ввода, входящее в группу 2 можно использовать также не только для кнопки Distribute но и кнопки Pick. rolleyes.gif

не пойдет, придется перебивать постоянно значения, там отлично влазит второе поле напротив кнопки.
Например я делаю так: делаю распределение автоматом, в поле появляется текущее растояние, при неообходимости включаю Step и корректирую расстояние. Очень удобненько.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 22 2011, 20:02
Сообщение #37


Местный
***

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



Ну вот, как-то так. Слева новая панель.
Прикрепленное изображение


Как-то зело перегруженный интерфейс получается. wacko.gif

И иконки не придумываются...

PS Последние выделенные объекты остаюся во внутренней переменной после команды Oops, и с ними можно производить обычные действия.
Вот такая вот бага-фича. laughing.gif
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 23 2011, 05:07
Сообщение #38


Знающий
****

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



Цитата(John Silver @ Jun 23 2011, 00:02) *
Как-то зело перегруженный интерфейс получается. wacko.gif
И иконки не придумываются...

Хороший интерфейс - все что нужно есть. А любители простоты пусть идут в... консоль.
З.Ы. Насколько я понял пока кнопки pick не работают...
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 24 2011, 21:37
Сообщение #39


Местный
***

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



Сделал Pick для гозонтали.
Довольно удобный инструмент получился.
Можете по аналогии пока допилить и для вертикали, а я на выходные уехал.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 27 2011, 23:27
Сообщение #40


Местный
***

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



Закончил Pick.
Пофиксил привязку к сетке.
Улучшил производительность, теперь при работе внутри заливки все летает.

Создается впечатление, что я говорю сам с собой. cranky.gif
Что тема уже никому не интересна? Никто не заметил, что привязка к сетке работает криво... что выравнивание десятка переходных при включенном обновлении шейпов занимает 30с...
Go to the top of the page
 
+Quote Post
vitan
сообщение Jun 28 2011, 07:30
Сообщение #41


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(John Silver @ Jun 28 2011, 03:27) *
Создается впечатление, что я говорю сам с собой. cranky.gif

Да не переживайте Вы так! sm.gif Просто не всегда есть время на то, на что оно есть у Вас.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jun 28 2011, 10:02
Сообщение #42


Знающий
****

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



Цитата(John Silver @ Jun 28 2011, 03:27) *
Что тема уже никому не интересна? Никто не заметил, что привязка к сетке работает криво... что выравнивание десятка переходных при включенном обновлении шейпов занимает 30с...

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

Потестил. Не ясно назначение галочки напротив Distrib... Она отключает поле ввода, но если отключить поле то кнопка Distrib не работает. Тогда зачем эта галочка вообще нужна? Или чего-то не уловил...

А так все супер, огромное спасибо a14.gif

З.Ы про шейпы не переживайте, это у всех так. Я когда много чего двигаю, отключаю динамическое обновление, иначе можно уснуть пока на 10-ти слоях все перерисуется.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 28 2011, 15:50
Сообщение #43


Местный
***

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



Цитата(Ant_m @ Jun 28 2011, 12:02) *
Потестил. Не ясно назначение галочки напротив Distrib... Она отключает поле ввода, но если отключить поле то кнопка Distrib не работает. Тогда зачем эта галочка вообще нужна? Или чего-то не уловил...

Это хитрая фича
1 выбираем объекты, жмем Distrib, рассчитывается расстояние между крайними компонентами в автоматическом режиме, рассчитывается шаг, двигаются обекты
2 в поле появляется текущий шаг
3 жмем галку, поле активируется, шаг все тот же
4 жмем Distrib, ничего не меняется, ведь шаг все тот же
5 вводим другой шаг в поле, жмем Distrib, объекты двигаются
Я использую как линейку: распределил, посмотрел расстояние, если расстояние не устраивает, то нажал чеккбокс, изменил расстояние, перераспределил.
Кстати, так же обновляется и поле для Pick.

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

да уже нечего переживать, ща все в пакетном режиме, достаточно быстро.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jun 29 2011, 08:26
Сообщение #44


Местный
***

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



Сделал Stretch.
Тестируйте, чувствую будет много багов.
Один полу-баг уже есть: если двигаем компонент, а дорожка проведена только к нему и на конце обрывается, то после сдвига дорожка может потерять Net, например прицепиться к земляной заливке.
Не представляю, возможно ли это поправить.
У кого-нибудь есть соображения на этот счет? ( см. align_utils.il moveObject() )
Go to the top of the page
 
+Quote Post
Old1
сообщение Jun 29 2011, 09:03
Сообщение #45


Знающий
****

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



Цитата(John Silver @ Jun 29 2011, 10:26) *
Сделал Stretch.
...
У кого-нибудь есть соображения на этот счет? ( см. align_utils.il moveObject() )

Если я правильно понял твой код, то реализован такой порядок действий: удаляется сегмент на старом месте -> создается сегмент на новом месте -> перемещается объект (символ или виа).
Попробуй сделать так: удаляется сегмент на старом месте -> перемещается объект -> создается сегмент на новом месте.
Go to the top of the page
 
+Quote Post
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
Uree
сообщение Jul 6 2011, 08:35
Сообщение #61


Знающий
******

Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480



Temp Group...
Go to the top of the page
 
+Quote Post
sa_per
сообщение Jul 6 2011, 09:04
Сообщение #62





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



Цитата(Uree @ Jul 6 2011, 11:35) *
Temp Group...


Спасибо!..
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 11 2011, 08:47
Сообщение #63


Местный
***

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



Цитата(sa_per @ Jul 6 2011, 11:09) *
как выделить несколько компонентов для выравнивания не окном, а "поштучно" ?
ctrl+pick не работает..

A что, ctrl+pick где-нибудь в Allegro PCB Editor работает?

Вот решил зделать сохранение настроек. Варианты:
1 Сохранять в отдельный файл. Совсем плохой вариант.
2 Сохранять в файл allegro.ini. Вроде неплохо, но парсить текстовый файл не улыбается.
3 Сохранять непосредственно в проект, в файл .brd. ИМХО лучший вариант. Как это сделать?

Какие у вас мысли на этот счет?
Go to the top of the page
 
+Quote Post
vitan
сообщение Jul 11 2011, 09:12
Сообщение #64


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Я думаю, что сохранять надо как раз в отдельный файл.
В brd не надо, т.к. не везде может быть этот скрипт, а в allegro.ini - т.к. не всем надо иметь автозапуск.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 11 2011, 11:35
Сообщение #65


Местный
***

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



Цитата(vitan @ Jul 11 2011, 12:12) *
Я думаю, что сохранять надо как раз в отдельный файл.

И где его расположить, как назвать, какой формат, чем парсить?

Цитата
В brd не надо, т.к. не везде может быть этот скрипт,

ну и хай с ним. Будет лежать в файле и никому не мешать. Зато на каждый проект отдельные настройки.
Посмотрите сколько всяких "ненужных" вещей лежит в конце файла.
В идеале к объекту "design" прицепить что-то вроде property, и в эту пропертю засунуть лист с настройками. Тогда отпадает гемор с парсингом текста.

Цитата
а в allegro.ini - т.к. не всем надо иметь автозапуск.

причем сдесь автозапуск? Сохранять настройки формы хочу.
Go to the top of the page
 
+Quote Post
vitan
сообщение Jul 11 2011, 12:40
Сообщение #66


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(John Silver @ Jul 11 2011, 15:35) *
И где его расположить, как назвать, какой формат, чем парсить?

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

Цитата(John Silver @ Jul 11 2011, 15:35) *
ну и хай с ним. Будет лежать в файле и никому не мешать. Зато на каждый проект отдельные настройки.
Посмотрите сколько всяких "ненужных" вещей лежит в конце файла.
В идеале к объекту "design" прицепить что-то вроде property, и в эту пропертю засунуть лист с настройками. Тогда отпадает гемор с парсингом текста.

Будет оно кому-то мешать, или нет, еще не известно... Думается, что, скорее будет, чем нет. Кому-то и когда-то.

Если у Вас трудности с парсингом текста, то почему Вы не сделаете бинарный файл? Не обязательно же его потом отдельно в текстовом редакторе править?

Цитата(John Silver @ Jul 11 2011, 15:35) *
причем сдесь автозапуск? Сохранять настройки формы хочу.

Ну это же ini для всего аллегро.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 11 2011, 14:29
Сообщение #67


Местный
***

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



Цитата(vitan @ Jul 11 2011, 15:40) *
Будет оно кому-то мешать, или нет, еще не известно... Думается, что, скорее будет, чем нет. Кому-то и когда-то.

В skill, например, есть функция для прикрепления файла к дизайну, т.е. включения некого файла внутрь .brd. Есть функции для работы с пропертями дизайна.
Я же не собираюсь открывать файл и ручками туда что то добавлять. Вы именно так и подумали? biggrin.gif
Проблема в том, что я не вкурил все эти функции, какую лучше использовать, как?
Повторюсь: в идеале к объекту "design" прицепить что-то вроде property, и в эту пропертю засунуть лист с настройками. Потом при вызове скрипта посмотреть, что у дизайна есть такая пропертя, и взять из нее все настройки. Получается 2 строчки кода: 1 посмотреть что есть, 2 забрать. Как это сделать?

Цитата
Ну это же ini для всего аллегро.

И? Таки что мешает добавить туда свою секцию [align_script]? Но опять же, это по сути первый вариант, опять надо делать поиск по тексту, сравнение... Посему он мне не нравится.
Go to the top of the page
 
+Quote Post
vitan
сообщение Jul 11 2011, 15:42
Сообщение #68


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(John Silver @ Jul 11 2011, 18:29) *
Я же не собираюсь открывать файл и ручками туда что то добавлять. Вы именно так и подумали? biggrin.gif

Упаси Боже. sm.gif Просто если есть такая функция, то не обязательно же ее применять.

Цитата(John Silver @ Jul 11 2011, 18:29) *
И? Таки что мешает добавить туда свою секцию [align_script]? Но опять же, это по сути первый вариант, опять надо делать поиск по тексту, сравнение... Посему он мне не нравится.

Ничего не мешает, правильно, что по сути это первый вариант. Я про скилл мао знаю, но мне рассказывали, что работа с текстом там очень простая. Кроме того, если Вам все-таки сложно, то можно же хранить все в бинарном виде. Это плохо?

Я считаю, что хранить настройки инструмента в файле проекта неправильно. Вот, если бы в файле проекта сохранялись данные, относящиеся к проекту, то - да. Поэтому я за вариант 1. Так, кстати, во многих программах сделано, и хорошо, как мне кажется...
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 11 2011, 16:16
Сообщение #69


Местный
***

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



Цитата(vitan @ Jul 11 2011, 18:42) *
то можно же хранить все в бинарном виде. Это плохо?

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

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

Таки пришел я домой и проверил свои подозрения: настройки инструментов храняться в проекте. Ну или так: сохраняются для каждого проекта отдельно (а где сохраняются? Видимо в самом проекте...). laughing.gif

Все же это нормально, например в одном проекте надо тянуть дорожки, а в другом лучше их резать.
Go to the top of the page
 
+Quote Post
vitan
сообщение Jul 11 2011, 17:43
Сообщение #70


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(John Silver @ Jul 11 2011, 20:16) *
Еще хуже, ваще не представляю, как это организовать в бинарнике.

Дык элементарно. В файл сохраняются параметры, которые надо. Например, галочки (по 1 биту на штуку), числа, строки. Все это тупо в любом порядке сливается в файл, а при необходимости читается в том же порядке. Обычное дело было (в старые добрые времена, теперь проклятые программисты для сохранения сливают весь дамп ОЗУ maniac.gif ).
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jul 12 2011, 05:48
Сообщение #71


Знающий
****

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



Цитата(vitan @ Jul 11 2011, 16:40) *
Будет оно кому-то мешать, или нет, еще не известно... Думается, что, скорее будет, чем нет. Кому-то и когда-то.

+1e10
По законам Мерфи, cadence выкатит какой нибудь хотфикс, который будет конфликтовать с вашими добавлениями. Хорошо если выяснится сразу, а если приведет к не повторяющимся глюкам и чудесам????? Куча времени уйдет в трубу.
Если не хотите использовать allegro.ini, то что мешает сделать свой файл с настройками? Лежащий рядом с allegro.ini, но имеющий свой, удобный для вас формат.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 12 2011, 10:34
Сообщение #72


Местный
***

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



Ну вы блин даете...
Волков бояться - в лес не ходить?
Есть специальный инструмент, что бы добавить в дизайн свою инфу, так нет, низя его использовать, а то вдруг...
Так может тогда не использовать юзер проперти на компонентах, и еще кучу других возможностей? А то вдруг...
Были прецеденты?
Посмотрите до кучи на deprecated функции в skill. Они тянутся и тянутся, обеспечивают совместимось.
Вощем, не верю я, что такое может случится.
По Мерфи: если, что-то плохое должно случиться, то оно случится, добавил ты инфу в дизайн или нет. laughing.gif

Цитата
настройки инструментов храняться в проекте.

Что есть вери гуд!
Go to the top of the page
 
+Quote Post
vitan
сообщение Jul 12 2011, 11:09
Сообщение #73


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Большая просьба не делать автоматического сохранения настроек в проекте. Или сделать это поведение отключаемым.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 12 2011, 13:22
Сообщение #74


Местный
***

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



Вот кстати, что говорят иностранные товарищи:
http://www.cadence.com/community/forums/T/19664.aspx
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 12 2011, 21:26
Сообщение #75


Местный
***

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



Запилил сохранение настроек.
По просьбам трудящихся сделал двоякий механизм.
align.il:
Код
; t - store settings in design
; nil - store settings in file %envpath%/align_script.ini
  EN_STORE_TO_DESIGN = t

align_script.ini - псевдо-ини, проверка целостности не производится, так ша ручками в него лучше не лазить, а то вдруг... laughing.gif
Зато парсить не пришлось rolleyes.gif
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Jul 13 2011, 05:13
Сообщение #76


Знающий
****

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



Цитата(John Silver @ Jul 12 2011, 17:22) *
Вот кстати, что говорят иностранные товарищи:
http://www.cadence.com/community/forums/T/19664.aspx

Лучше бы задать вопрос в тех. поддержку. А то, ИМХО, форум cadence, от самой cadence оторван. В смысле что нифига они его не читают.

Цитата(John Silver @ Jul 13 2011, 01:26) *
Запилил сохранение настроек.
По просьбам трудящихся сделал двоякий механизм.

Спасибо. И все таки, хранить настройки скрипта в проекте я считаю не правильным. Например потому что, совсем не очевидно как будут работать сторонние программы с этим файлом, тот же hyperlynx. А вдруг ваша структура(строка, переменная) как то совпадут с зарезервированной, но сейчас не используемой? Все варианты вы ведь проверить не сможете.
З.Ы как можно "выпилить" эти настройки из файла brd? Если они туда записались.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 13 2011, 07:25
Сообщение #77


Местный
***

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



Цитата(Ant_m @ Jul 13 2011, 08:13) *
Лучше бы задать вопрос в тех. поддержку. А то, ИМХО, форум cadence, от самой cadence оторван. В смысле что нифига они его не читают.

И что они мне ответят? Да, вы знаете, у нас там баг на баге и багом погоняет, поэтому нее используйте эту фичу, и ваще лучше переходите на Ментор. biggrin.gif

Цитата
Спасибо. И все таки, хранить настройки скрипта в проекте я считаю не правильным. Например потому что, совсем не очевидно как будут работать сторонние программы с этим файлом, тот же hyperlynx. А вдруг ваша структура(строка, переменная) как то совпадут с зарезервированной, но сейчас не используемой? Все варианты вы ведь проверить не сможете.

Посмотрите сколько там уже зааттачено axlGetAllAttachmentNames(). Потом посмотрите на эти аттачи в текстовом редакторе, в конце файла. О чем это говорит? Что фича активно используется.

Цитата
З.Ы как можно "выпилить" эти настройки из файла brd? Если они туда записались.

axlDeleteAttachment(t_attachmentId)
Go to the top of the page
 
+Quote Post
vitan
сообщение Jul 19 2011, 07:36
Сообщение #78


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



John Silver
Раз уж Вы такой добрый, может сделаете нормальный инсталлятор\деинсталлятор?

Установил последнюю версию (копировал файлы только в текущий каталог).
Опять удалил строку про регистрацию пункта меню.
После запуска из командной строки (просто "align") возникает ошибка:
Код
E- *Error* errsetstring: argument #1 should be a string (type template = "tgs") - nil
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 19 2011, 13:37
Сообщение #79


Местный
***

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



Цитата(vitan @ Jul 19 2011, 10:36) *
John Silver
Раз уж Вы такой добрый,

Да, недаром меня назвали John Silver, что означает: "добрый, отзывчивый, и добрый... иногда"

Цитата
может сделаете нормальный инсталлятор\деинсталлятор?

Думал об этом, но не умею.
Помогайте, люди! С миру по нитке... дальше вы знаете. Велкам, так сказать.

Цитата
Установил последнюю версию (копировал файлы только в текущий каталог).
Опять удалил строку про регистрацию пункта меню.

Предлагаю вам сделать патчик, что бы не регистрировало пункт если версия, например, меньше 16.
Там ничего сложного. Есть готовая функция, чтобы взять версию. А я его добавлю в главную ветку.
Вам, как пользователю 15 версии, и карты в руки.
С картинками решили вопрос?

Цитата
После запуска из командной строки (просто "align") возникает ошибка:
Код
E- *Error* errsetstring: argument #1 should be a string (type template = "tgs") - nil

А это уже посерьезней. С какой версии скрипта это появилось?
Загрузите все файлы по очереди, и посмотрите в каком файле эта ошибка.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jul 19 2011, 18:57
Сообщение #80


Местный
***

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



Цитата(vitan @ Jul 19 2011, 10:36) *
После запуска из командной строки (просто "align") возникает ошибка:
Код
E- *Error* errsetstring: argument #1 should be a string (type template = "tgs") - nil

У меня тоже. Нет проверки на nil. Кстати это происходит только если выбрать сохранение в design. wink.gif

Пофиксилось это само, т.к. я запилил третий механизм сохранения настроек в design property.
Сохранение в property сделал по-умолчанию. Вроде так постабильнее будет. (параноиком меня уже сделали)
Go to the top of the page
 
+Quote Post
John Silver
сообщение Aug 9 2011, 20:50
Сообщение #81


Местный
***

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



Встречайте новую версию.
Пофиксил кой-какие баги. Добавил возможность выбора номера вывода.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Sep 19 2011, 13:01
Сообщение #82


Знающий
****

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



Нашел багу: После использования скрипта align перестают работать быстрые клавиши. У меня перестает работать поворот компонента - кнопка r.
В env файле написано так:
Код
funckey r      iangle 45

После использования скрипта эта запись исчезает и поворот по клавише не работает.

З.Ы версия 0.8
Go to the top of the page
 
+Quote Post
John Silver
сообщение Sep 20 2011, 07:04
Сообщение #83


Местный
***

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



Вопроизвел. Поправлю.

PS Исчезает именно в env файле? 0_0
Или все же в текущей сессии?
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Sep 20 2011, 09:48
Сообщение #84


Знающий
****

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



В сессии, не в файле. После перезапуска редактора все работает.
Смотрю Tools->Utilites->Env variables Tools->Utilites->Aliases, function key
Go to the top of the page
 
+Quote Post
John Silver
сообщение Sep 20 2011, 20:49
Сообщение #85


Местный
***

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



Сделал.
Еще починил не работающие функции Pick.
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Sep 21 2011, 04:28
Сообщение #86


Знающий
****

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



Спасибо! a14.gif
Go to the top of the page
 
+Quote Post
John Silver
сообщение Sep 22 2011, 22:28
Сообщение #87


Местный
***

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



Я научился делать анимированные гифки sm.gif. Только надо кликнуть по ней, а то так не показывает.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Sep 23 2011, 10:41
Сообщение #88


Знающий
****

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



Только сейчас заметил что у меня не отображаются иконки выравнивания. Ясно что проблема с путями к иконкам, но не могу найти как можно установить %bmppath% в PCB editor. В User preferences его нет, в env тоже не видно, в хелпе тоже внятного ничего не написано smile3046.gif
Когда иконки лежали рядом с проектом ".", то все работало. Переносить в ".../share/local/pcb/icons" ".../share/pcb/text/icons" не хочется.

Выкрутился дописав ручками в env
Цитата
set bmppath = $bmppath D:\Allegro\align\


Но вообще конечно странно, formpath, menupath можно изменить через UI, а bmppath нет - разработчики забыли?
Go to the top of the page
 
+Quote Post
John Silver
сообщение Sep 23 2011, 14:12
Сообщение #89


Местный
***

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



Хм... даже не обращал внимание, использовал пути по-умолчанию.

>Переносить в ".../share/local/pcb/icons" ".../share/pcb/text/icons" не хочется.
Почему? И так и так через ж.

Вот китайские друзъя подкинули "инсталятор". Потом вкину в репозиторий.
Прикрепленные файлы
Прикрепленный файл  Install.zip ( 412 байт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Sep 26 2011, 07:12
Сообщение #90


Знающий
****

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



Цитата(John Silver @ Sep 23 2011, 18:12) *
>Переносить в ".../share/local/pcb/icons" ".../share/pcb/text/icons" не хочется.
Почему? И так и так через ж.

Это да. Но, если прописать свои пути в конкретную папку, то инсталлятор-обновлятор не нужен - просто закинул файлы новой версии в выделенную папку и все. И не нужно вспоминать где что должно лежать. Ленивый я rolleyes.gif
Go to the top of the page
 
+Quote Post
Uree
сообщение Sep 26 2011, 08:39
Сообщение #91


Знающий
******

Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480



Ну ведь предусмотрено решение, чтобы не пихать свои наработки в .../share/local/pcb/icons :
set BMPPATH = . $ALLEGRO_SITE/icons $GLOBAL/icons $ALLEGRO_INSTALL_ROOT/share/fsp/legends
set FORMPATH = . $ALLEGRO_SITE/forms $GLOBAL/forms
set MENUPATH = . $ALLEGRO_SITE/menus $GLOBAL/cuimenus

Фактически, можно создать копию ../share/pcb/text с аналогичными каталогами, но своим личным наполнением. Причем содержимое $ALLEGRO_SITE надписывает дефолтовые установки, потому как грузится последним - вот последняя строка глобального env-a:

source -q $ALLEGRO_SITE/site.env
Go to the top of the page
 
+Quote Post
John Silver
сообщение Sep 26 2011, 08:53
Сообщение #92


Местный
***

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



Вот поднялась интересная тема.
Как подгружать множество файлов?
Как использовать код повторно, библиотеки?
Как подгружать нужные файлы в файле данного проекта?

Предлагаю создать отдельную тему. Обсудим?
Go to the top of the page
 
+Quote Post
Uree
сообщение Sep 26 2011, 10:03
Сообщение #93


Знающий
******

Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480



Можно и обсудить. Кастомизация софта - вопрос интересный. И у Аллегро для этого очень широкие возможности. Осталось только в них разобраться...
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Nov 3 2011, 07:00
Сообщение #94


Знающий
****

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



Опять "быстрые" клавиши - после использования выравнивания кнопка F3 меняет свое значение. (а у меня на нее fix назначен).
Код
alias F3     alnOops


Версию сказать не могу, в заголовках файлов видимо не заменились переменные. Дата изменения файлов 20.09.2011 20:45
Цитата
;
; $Source$ $Revision$ $Branch$ $Rev$
; $Author$ $Date$
Go to the top of the page
 
+Quote Post
John Silver
сообщение Nov 8 2011, 12:26
Сообщение #95


Местный
***

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



Цитата(Ant_m @ Nov 3 2011, 10:00) *
Опять "быстрые" клавиши - после использования выравнивания кнопка F3 меняет свое значение. (а у меня на нее fix назначен).


Надо шаги. Я так понял:
1 назначить в env функцию на F3
2 для функции "oops" в env нету горячей клавиши
3 попользовать Align
4 выйти из Align

ошибка: после шага 4 на кнопке F3 висит "oops"
должно быть: после шага 4 на кнопке F3 висит функция прописанная в env файле.

Я все правильно понял?
Go to the top of the page
 
+Quote Post
John Silver
сообщение Nov 8 2011, 20:17
Сообщение #96


Местный
***

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



Ну, собственно, уже поправил. Проверяйте.
Сам не проверял, ибо много гемора с воспроизведением, тупо сохранил все кнопки, а потом их восстановил.

Интересная особенность bitbucket-а, если скачать версию со вкладки downloads, то все ключевые слова ($Revision: $ и т.п.) очищаются.
Если сделать hg clone, то все гуд, все на месте.
Баг или фича...
Go to the top of the page
 
+Quote Post
Ant_m
сообщение Nov 9 2011, 05:24
Сообщение #97


Знающий
****

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



Да, правильно поняли. Про шаги учту.
Сейчас попробую.
Спасибо.

---------
Проверил - работает a14.gif
Go to the top of the page
 
+Quote Post
vitan
сообщение Jan 19 2012, 08:30
Сообщение #98


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Скачал версию 0.9.2. Кстати, неплохо бы, чтобы в разделе downloads что-то было...
Запускаю в 15.5. Инсталлятор отрабытывает нормально. При запуске aln ошибка, нет функции axlGetFunckey. Пришлось комментировать вызов alnInitHotKeys. После этого скрипт запускается, но в опциях нету картинок (раньше были). Выравнивание не работает (раньше работало). При выходе ошибка, пришлось комментировать вызов alnRestoreHotKeys.
Теперь нужен деинсталлятор. sm.gif Жаль, забыл, какая версия работала с 15.5. Придется опять руками все ровнять. crying.gif
Go to the top of the page
 
+Quote Post
John Silver
сообщение Jan 19 2012, 10:05
Сообщение #99


Местный
***

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



Ой.
Предлагаю вычистить все предыдущие установки и попробовать 9,2 еще раз.
Если не поможет, надо будет найти версию которая работала нормально.
Тогда увидим, где собака порылась.
Go to the top of the page
 
+Quote Post
vitan
сообщение Jan 19 2012, 10:18
Сообщение #100


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Последовательным приближением нашел, что выравнивание работает в версии 0.4.
Комментировать ошибку про регистрацию менюшки мне уже лень, и так работает.
Еще вопрос: при выборе шага распределения (distribute) цифры округляются до двух знаков после запятой. Этого бывает мало, надо бы по-хорошему считывать текущие настройки точности из проекта и позволять работать с этой точностью.
Go to the top of the page
 
+Quote Post

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

 


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


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