Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Модернизация скрипта переключения между сетками
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
def_rain
Здравствуйте господа.
В процессе работы в Аллегро часто приходится менять сетку.
Для удобства пользуюсь скриптами, которые в этой ветке любезно поделился Uree.
Однако, для себя я решил что процедуру их вызова и использования можно сделать удобнее.
Но т.к. в программировании слабоват, есть одна трудность....

Как организовано переключение между сетками сейчас:
В файле env назначил горячие клавиши
alias CF9 replay grid_01
alias CF10 replay grid_1
и т.д.

Данные горячие клавиши вызывают скрипты .scr содержание которых следующее:

# Allegro script
# file: E:/_IKra/M22_ADBA/DESIGN/MAIN/work/worklib/silver_grove/physical/grid_01.scr
# start time: Fri Jul 02 11:08:21 2010
# Version: 16.3 S011 (v16-3-85AN) i86
version 16.6

define grid
setwindow form.grid
FORM grid non_etch non_etch_x_grids .01
FORM grid non_etch non_etch_y_grids .01
FORM grid all_etch all_etch_x_grids .01
FORM grid all_etch all_etch_y_grids .01
FORM grid done

# stop time: Fri Jul 02 11:09:09 2010

Хочу освободить горячие клавиши, для этого назначить все переключения сетки на одну допустим CF9. Чтобы при повторном нажатии на CF9 вызывалась следующая по порядку сетка (перебераем по очереди пока не установится нужная).
На подобии такого примера:
funckey w 'settoggle width 0.15 0.2 0.25 0.35 0.5 0.75 1.0; echo "Using width"$width; options acon_line_width $width' (перебор различной толщины дороги при повторных нажатиях W)

Возможно ли такое сделать?
Как проще:
1. Изменять файл env, чтобы при повторном нажатии CF9 вызывался следующий скрипт .scr
2. Или править сам скрипт, задавая grid all_etch all_etch_y_grids .01 как переменную.


Ant_m
У меня вызывались скрипты - т.е. вариант 1. Могу попробовать поискать свои готовые скрипты, но это будет не раньше чем завтра.
def_rain
Цитата(Ant_m @ Apr 1 2016, 00:23) *
У меня вызывались скрипты - т.е. вариант 1. Могу попробовать поискать свои готовые скрипты, но это будет не раньше чем завтра.


Конечно посмотрите, хоть какой то пример для меня будет! =)
Ant_m
Нашел у себя, но только половину sad.gif. Вот файл переключающий сетку (их должно быть несколько). А скрипт который вызывает эти файлы я найти не смог...
Нашел!!!1111100
вот пример файла "set_grid_1"
Код
# Allegro script
version 16.3
setwindow pcb
trapsize 456
define grid
setwindow form.grid
FORM grid non_etch non_etch_x_grids 0.1
FORM grid non_etch non_etch_y_grids 0.1
FORM grid all_etch all_etch_x_grids 0.1 0.1 0.1 0.1 0.1
FORM grid all_etch all_etch_y_grids 0.1 0.1 0.1 0.1 0.1
FORM grid done  
setwindow pcb


Вот кусок файла с вызовом быстрой клавишей
Код
alias CF10   'settoggle scr set_grid_1 set_grid_2 set_grid_3; replay $scr; echo grid = $scr'
def_rain
Цитата(Ant_m @ Apr 1 2016, 01:31) *
Нашел у себя, но только половину sad.gif. Вот файл переключающий сетку (их должно быть несколько). А скрипт который вызывает эти файлы я найти не смог...


Еще раз большое спасибо! Самое главное теперь я имею направление в котором буду копать дальше.
Единственное вот странно, а почему при установки all etch сетки значение 0.1 повторяется 5 раз?
FORM grid all_etch all_etch_x_grids 0.1 0.1 0.1 0.1 0.1
FORM grid all_etch all_etch_y_grids 0.1 0.1 0.1 0.1 0.1

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

Ant_m
сетку можно делать не равномерную для этих слоев. Попробуйте другие цифры и увидите.
def_rain
Ant_m
Спасибо. Это именно то что нужно, в точку попали!
Теперь все ясно, на днях попробую себе сделать.
Ant_m
Я не уверен насчет названия файлов переключения сетки - должны ли файлы быть вида "name" или "name.scr"? Уже не помню этих моментов, так что проверьте сами.
Budaev
Все же проще!, в файле env добавить:

funckey v 'settoggle grid_val 0.05 0.1 0.25 0.5 1 1.25 5; echo "Using grid " $grid_val; replay C:\SPB_Data\pcbenv\script\set_grid.scr'
#где funckey v - клавиша на клаве, присвоить.
#grid_val - шаги сетки, разделить просто пробел.

а в файле скрипта, полное содержание такое:

scriptmode +i +n
define grid
setwindow form.grid
FORM grid non_etch non_etch_x_grids $grid_val
FORM grid non_etch non_etch_y_grids $grid_val
FORM grid all_etch all_etch_x_grids $grid_val
FORM grid all_etch all_etch_y_grids $grid_val
FORM grid done
setwindow pcb
redraw



def_rain
Цитата(Budaev @ Apr 3 2016, 07:41) *
Все же проще!, в файле env добавить:

funckey v 'settoggle grid_val 0.05 0.1 0.25 0.5 1 1.25 5; echo "Using grid " $grid_val; replay C:\SPB_Data\pcbenv\script\set_grid.scr'
#где funckey v - клавиша на клаве, присвоить.
#grid_val - шаги сетки, разделить просто пробел.

а в файле скрипта, полное содержание такое:

scriptmode +i +n
define grid
setwindow form.grid
FORM grid non_etch non_etch_x_grids $grid_val
FORM grid non_etch non_etch_y_grids $grid_val
FORM grid all_etch all_etch_x_grids $grid_val
FORM grid all_etch all_etch_y_grids $grid_val
FORM grid done
setwindow pcb
redraw


Проверено, работает! Спасибо за опыт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.