Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Altium Designer: скрипт и "расталкивание"
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Я.К.
Всем доброго времени суток. У меня есть некий скрипт, который расставляет в плате отверстия для крепления. Однако есть и другой скрипт, который делает структурированную разводку на плате. Насколько я знаю, в AD есть возможность размещать на плате разное, засовывая новый компоненты хоть в самую гущу разводки с тем, чтобы расталкивать другие треки. Где можно посмотреть об этом подробнее?
И можно ли сделать размещение компонента (в данном случае - просто отверстия) из скрипта, с тем, чтобы "расталкивание" работало? Сильно, сильно надо.
Scanner
А можете для примера показать Ваши скрипты?
Я.К.
Держите. Специально для примера. На плате немного сложнее, но идею передает.
Код
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;

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