Jump to content

    

morlord

Участник
  • Posts

    14
  • Joined

  • Last visited

Reputation

0 Обычный
  1. Не подходит, в таком случае на какой бы стороне не был TH-компонент, зазоры считаются до SMT-компонентов по обеим сторонам, а нужно, чтобы считался только на противоположной. Идея в том, чтобы при пайке TH-компонентов не задевать SMT-компоненты и сделать зазор между ними. Т.е. SMT компонент должен быть по другую сторону платы, от TH. Если оба компонента на одной стороне, зазора быть не должно
  2. Доброго времени суток! Задача звучит так: Нужно соблюсти зазор от края TH-пада компонента, располагающегося на слое Top до края SMT-пада компонента, располагающегося на слое Bottom. И наоборот, если TH-компонент находится на слое Bottom, зазор мы считаем до SMT пада компонента на слое Top. Сначала я пошёл по пути Component Clearance. Работало следующим образом: Зазор считался от 3д-модели контактов TH-компонента, которые торчали из платы с обратной стороны до 3д-модели корпуса SMT-компонента на обратной стороне. Этот вариант не подошёл, потому что корпуса разные, SMT-пады выступают за пределы корпуса по-разному и т.п. Затем я попробовал сделать через Electrical/Clearance. Если мы точно знаем, что все TH-компоненты на слое Top, а все SMT на слое боттом, то в одной части Custom Query пишем "IsSMTPin and OnBottomLayer", а в другой "IsThruPin and PadIsPlated" (да, мы выделяем любые металлизированные TH-пады, но если нам точно известно, что все TH-компоненты на слое Top, то это работает). Перестаёт это работать, если попадаются TH-компоненты на слое Bottom, а SMT компоненты на слое Top. Основная проблема в том, что я не могу указать, что нужно использовать TH-пады только для компонентов определённого слоя, так как TH-пад подразумевается, как Multilayer. Запросы формата "IsPad and IsThruComponent and OnBottom" не работают, вообще все запросы упираются в отметку слоя. Подскажите пожалуйста, есть у кого какие мысли, как можно выполнить задачу?
  3. А подскажите тогда поподробнее, каким образом тут можно использовать Courtyard? Слой у меня этот есть, допустим, я возьму чип-компонент из группы А. Возьму половину от зазора до группы Б, скажем, 0,7мм. У компонента группы Б я тоже сделаю Courtyard отступающий от границ падов на 0,7. Но у нас есть группа В и какой отступ делать у этой группы непонятно. Можно сделать зазор 1.1, тогда при соприкосновении групп А и Б или Б и В зазоры будут соблюдаться, однако зазор между А и В будет такой же, как между Б и В, а нужно, чтобы он был больше.
  4. peshkoff, Я чуть упростил, но идея та же, выглядит следующим образом: С NetClass попробую, спасибо
  5. peshkoff, popms, к сожалению это не шутка, а условие из рабочей инструкции на моём текущем месте работы. Честно говоря, сам был удивлён. Идея с тремя классами компонентов хорошая, только компонентов несколько тысяч, а правило нужно сделать универсальным, а не подгонять под каждый проект. Alex Ko, Компонентов - несколько тысяч, футпринтов - несколько сотен. Проще во все футпринты добавить какую-то маркировку и цепляться за неё, чем проделывать то же самое с каждым компонентом в отдельности. chapt, Вы имеете ввиду Design > Rules в PCB? Если так, то они давно там есть, вопрос как раз в том, как написать универсальное правило, которое будет подходить сразу ко всем компонентам.
  6. Доброго времени суток! Есть задача - разбить все компоненты на 3 группы по расстоянию между падами и сделать разные зазоры между разными группами. Например, все компоненты с зазором между падами до 1.27 мм мы относим к группе А, с зазором от 1.27 до 2.54 мм относим к группе Б, а с зазором от 2.54 и больше к группе В. Теперь между компонентами группы А и Б нужно соблюсти зазор в 1 мм, между А и В - 2 мм и между В и Б - 3 мм. И написать правило в Альтиуме, которое будет отслеживать такие зазоры между группами компонентов. Рабочий вариант - считать ручками зазоры на футпринте и записывать в отдельный параметр компонента принадлежность к определённой группе. Однако компонентов много, это долго и в случае, если вытаскивать на PCB футпринт без параметров - правило не сработает. Поэтому хотелось бы считать зазоры внутри футпринта автоматически, но если это невозможно, то хотя бы задать в футпринте новый слой, на котором вести завести строку с текстом обозначающим группу. Слой я задал, выбирать весь текст на этом слое смог, но как выбирать не весь текст, а только текст, в котором есть "А" например? Уже всё перепробовал, ничего не работает. Либо весь текст на этом слое у всех компонентов, либо никакой. Подскажите пожалуйста, если кто-то сталкивался с подобным. Есть ещё вариант, который пришёл мне в голову. Группу можно прописать в описании футпринта "Description" и правилами цепляться за него, но проблема та же - как разделять компоненты с разными описаниями?
  7. Оно есть, сделано по диаметру пада. Но в таком случае Placement / Component Clearance работает от границы этого тела, а хочется от центра. Можно сделать тело цилиндром диаметром 0,1 мм, тогда это будет максимально приближено к центру, но во-первых всё ещё не центр, а во-вторых визуально не очень)
  8. В итоге расстояние между центром тестпоинта и границей 3д-модели компонента должно быть условные 3 мм. Можно сделать вот такое правило в Component Clearance: Но, так как это правило отвечает за расстояние между границами 3д-моделей, оно начинает ругаться, когда расстояние между центром и границей 3д-модели соблюдено. На картинке линейкой измерено расстояние от центра тестпоинта до границы 3д-модели компонента:
  9. Всем доброго времени суток! Столкнулся с задачей: необходимо соблюсти зазор между центром тестпоинта и границей компонента в Design Rules. Не смог разобраться с аналогичным разделом в Rules, поэтому создал отдельный компонент - TP. Футпринт состоит из пада диаметром 1мм и 3д-модели шайбы по диаметру пада. Через Placement / Component Clearance можно задать правила, где зазор будет считаться от границ 3д-моделей. Это не совсем то, что нужно, так как тестпоинты будут в перспективе различного диаметра. Можно ли считать не от границы 3д-модели, а от её центра? Или центра пада? Есть способ прописывать в Component Clearance зазор c учётом диаметра 3д-модели и создавать под каждый тестпоинт различного диаметра отдельное правило, но это костыли. Я нашёл атрибуты CompCenterOfPadsX (Y), IsCenterDimension и CompCenterX (Y), но не понимаю, как с их помощью считать расстояние от центра. Пробовал в Component Clearance прописывать: HasFootprint('NB_TP') and CompCenterX, но зазоры всё равно считаются от границ 3д-моделей. Может кто-то сталкивался с подобным?
  10. Да, всё включено, но правила работают до тех пор, пока не произошёл наезд одного пада на другой. Правило: Если пады находятся на расстоянии, оно работает: Как только пад наезжает на другой пад - перестаёт работать: PantesGRP, правило в Manufacturer с масочными мостиками есть, но оно тоже не работает, потому что вскрытие на обоих падах накладываются друг на друга и масочных мостиков не остаётся.
  11. Для чистоты эксперимента убрал вообще все правила по зазорам, оставил только это: Всё ещё не работает Ошибок не выдаёт
  12. Это не работает, я выставлял различные значения, даже отрицательные, но на выходе при таком раскладе всё равно ошибок не выдаёт: И на плате тоже отображается без ошибок Все правила работают до тех пор, пока компоненты находятся хоть на каком-то расстоянии между друг другом. Но если взять уже готовую плату, где один компонент налез на другой правила не выдают ни ошибок, ни предупреждений.
  13. Всем добрый день! Возник вопрос по настройке правил в Altium Designer. Подскажите пожалуйста, может кто сталкивался с этим? Дано: два компонента (в данном случае два резистора), у которых есть по паду, принадлежащему одной цепи. Если разместить их так, чтобы пад одного резистора заходил на пад другого - проверка DRC не ругается. Вопрос: Как с помощью правил в Altium отслеживать такие моменты? Чтобы при наложении двух падов разных компонентов друг на друга вылезала ошибка? Спасибо, за внимание!