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

 
 
> Altium Designer: скрипт и "расталкивание", как расталкивать из скрипта?
Я.К.
сообщение Feb 18 2010, 06:18
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Всем доброго времени суток. У меня есть некий скрипт, который расставляет в плате отверстия для крепления. Однако есть и другой скрипт, который делает структурированную разводку на плате. Насколько я знаю, в AD есть возможность размещать на плате разное, засовывая новый компоненты хоть в самую гущу разводки с тем, чтобы расталкивать другие треки. Где можно посмотреть об этом подробнее?
И можно ли сделать размещение компонента (в данном случае - просто отверстия) из скрипта, с тем, чтобы "расталкивание" работало? Сильно, сильно надо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Scanner
сообщение Feb 19 2010, 13:50
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 355
Регистрация: 23-07-08
Из: Пензенская область
Пользователь №: 39 157



А можете для примера показать Ваши скрипты?
Go to the top of the page
 
+Quote Post
Я.К.
сообщение Feb 20 2010, 18:36
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 4-12-08
Из: Москва
Пользователь №: 42 205



Держите. Специально для примера. На плате немного сложнее, но идею передает.
Код
var
    board: IPCB_Board;
procedure MainProc;
var
    i: integer;
    n: integer;
    track: IPCB_Track;
    net: IPCB_Net;
    via: IPCB_Via;
begin
    n := 40;
    board := PCBServer.GetCurrentPCBBoard;
    if board = nil then
    begin
        ShowMessage('Откройте тестовую плату');
        exit;
    end;
    for i := 0 to n - 1 do//генерируем ряд полосок.
    begin
//        ShowMessage(i);
        track := PCBServer.PCBObjectFactory(eTrackObject, eNoDimension, eCreate_Default);
        track.x1 := MMsToCoord(50 + i/2);
        track.x2 := track.x1;
        track.y1 := MMsToCoord(50);
        track.y2 := MMsToCoord(70);
        track.width := MMsToCoord(0.2);
        track.layer := eTopLayer;
        net := PCBServer.PCBObjectFactory(eNetObject, eNoDimension, eCreate_Default);
        net.Name := 'TR'+IntToStr(i);
        track.net := net;
        board.AddPCBObject(net);
        board.AddPCBObject(track);
    end;
    //А потом сажаем на них пятак, подключенный к другой цепи:
    via := PCBServer.PCBObjectFactory(ePadObject, eNoDimension,  eCreate_Default);
    via.X := MMsToCoord(60);
    via.y := MMsToCoord(60);
//    via.size := MMsToCoord(5);
    net := PCBServer.PCBObjectFactory(eNetObject, eNoDimension, eCreate_Default);
    net.name := 'VIA';
    via.net := net;
    board.AddPCBObject(net);
    board.AddPCBObject(via);
end;

//как бы сделать так, чтобы эти дорожки сами расступились?


Сообщение отредактировал Я.К. - Feb 20 2010, 18:37
Go to the top of the page
 
+Quote Post

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

 


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


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