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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Закрашивание компонентов на сборочном чертеже
uriy
сообщение Dec 2 2015, 17:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Мне кажется уже поднимался вопрос автоматизации раскраски компонентов разными цветами на сборочном чертеже для удобства монтажниц.
Не смог найти. Пришли ли к чему то? Или все так и осталось в ручном режиме маркером?
Go to the top of the page
 
+Quote Post
Владимир
сообщение Dec 2 2015, 17:16
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671



много лет назад раскрашивал. Но у каждой монтажницы своя цветовая гамма--- отказался
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 3 2015, 05:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Вам удалось раскрашивать средствами альтиума или в стороннем графическом редакторе?
Ведь если есть способ разукрасить в альтиуме можно это автоматизировать скриптом.
Go to the top of the page
 
+Quote Post
V_G
сообщение Dec 3 2015, 06:09
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



А каков требуемый принцип раскраски? Если по типу футпринта, то раскрасьте на уровне библиотек в каком-нибудь своем слое. Потом просто выводите этот слой на печать
Go to the top of the page
 
+Quote Post
peshkoff
сообщение Dec 3 2015, 06:44
Сообщение #5


люблю бегать и орать
*****

Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376



Цитата(V_G @ Dec 3 2015, 09:09) *
А каков требуемый принцип раскраски? Если по типу футпринта, то раскрасьте на уровне библиотек в каком-нибудь своем слое. Потом просто выводите этот слой на печать


для монтажника элементы отличаются друг от друга не только по футпринту

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

И еще: любые нововведения для монтажников ну или для других сборщиков бывает что очень им нравятся sm.gif И тогда они это начинают требовать на каждом проекте, бывает даже отказываются работать sm.gif А конструкторам доп нагрузка, так что подумайте прежде чем нагружать себя лишний раз
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 3 2015, 07:27
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



У нас раскрашивают только когда партия плат не большая. Когда надо вручную ставить компоненты.
Понятно что для установщика в этом нет никакой надобности.

По поводу количества добавляемых слоев. Мне подсказали идею что можно раскрашивать только те компоненты которых на плате скажем больше 10 штук. Платы у нас не очень сложные.
Добавление слоев при таком способе не перевалит за 20. Из мех слоев я использую штук 6.

Допустим скриптом определяем количество каждого компонента. Затем для него добавляем контур в мех слое (как-то надо сделать заливку) и потом отправляем в pdf.

В скрипте нам нужно уметь считывать параметры компонента, а именно partnumber, определять координаты компонента на плате. Уметь рисовать примитивы по координатам в произвольном слое.
Доступны ли эти функции для скриптов? Я еще не писал сам.

По поводу визуального контроля. Видел в китае штуку, которая втягивает в себя плату и проверяет углы установки компонентов, ключи, возможно что-то еще. На плату с десятком микросхем BGA, QFN и несколькими сотнями 0402 уходит полминуты. Проблемные места показывает на своем мониторе.
Go to the top of the page
 
+Quote Post
peshkoff
сообщение Dec 3 2015, 08:21
Сообщение #7


люблю бегать и орать
*****

Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376



Цитата(uriy @ Dec 3 2015, 10:27) *
У нас раскрашивают только когда партия плат не большая. Когда надо вручную ставить компоненты.
Понятно что для установщика в этом нет никакой надобности.

По поводу количества добавляемых слоев. Мне подсказали идею что можно раскрашивать только те компоненты которых на плате скажем больше 10 штук. Платы у нас не очень сложные.
Добавление слоев при таком способе не перевалит за 20. Из мех слоев я использую штук 6.

Допустим скриптом определяем количество каждого компонента. Затем для него добавляем контур в мех слое (как-то надо сделать заливку) и потом отправляем в pdf.

В скрипте нам нужно уметь считывать параметры компонента, а именно partnumber, определять координаты компонента на плате. Уметь рисовать примитивы по координатам в произвольном слое.
Доступны ли эти функции для скриптов? Я еще не писал сам.


конечно, доступно. Причем не надо высчитывать координаты, у каждого компонента есть свойство Bounding Rectangle.
пишем что-то типа NewRect = CompNN.BoundingRectangle
далее все дело техники.


Цитата
По поводу визуального контроля. Видел в китае штуку, которая втягивает в себя плату и проверяет углы установки компонентов, ключи, возможно что-то еще. На плату с десятком микросхем BGA, QFN и несколькими сотнями 0402 уходит полминуты. Проблемные места показывает на своем мониторе.


Такая штука у меня за стенкой стоит. Техническое зрение называется.
полминуты на проверку уйдет только после уймы времени на настройку.
Но это уже отдельная песня
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 3 2015, 08:38
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



В альтиуме доступны
DelphiScript
EnableBasic
VB Script
JavaScript
Не отличается ли набор API функций доступных в каждом из языков?
Альтиум пишут на делфи, поэтому мне кажется там будет больше всего возможностей.
Но я ненавижу делфи я поклонник C#.
Из доступных тут языков предпочитаю JavaScript, на втором месте VB.
Есть ли разница какой язык выбрать?
Go to the top of the page
 
+Quote Post
peshkoff
сообщение Dec 3 2015, 08:49
Сообщение #9


люблю бегать и орать
*****

Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376



Цитата(uriy @ Dec 3 2015, 11:38) *
В альтиуме доступны
DelphiScript
EnableBasic
VB Script
JavaScript
Не отличается ли набор API функций доступных в каждом из языков?
Альтиум пишут на делфи, поэтому мне кажется там будет больше всего возможностей.
Но я ненавижу делфи я поклонник C#.
Из доступных тут языков предпочитаю JavaScript, на втором месте VB.
Есть ли разница какой язык выбрать?


Ну если уж прям ненавидите, тогда любой другой.
На дельфи написано 90% всех альтиумовских скриптов. Большая база исходников + хелп и т.д.
Набор вроде как одинаковый обещают.
Пишите на C, почитаем исходники, а то я ни одного пока не видел кроме идущих в комплекте
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 3 2015, 08:56
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



А где вы нашли на С в комплекте?
Поддержки С не заявлено вовсе.
Go to the top of the page
 
+Quote Post
peshkoff
сообщение Dec 3 2015, 09:18
Сообщение #11


люблю бегать и орать
*****

Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376



Цитата(uriy @ Dec 3 2015, 11:56) *
А где вы нашли на С в комплекте?
Поддержки С не заявлено вовсе.


Да точно, затупил. Видимо дальше дельфи не читал sm.gif
Там куча перечислена, я не стал смотреть думал, что C есть...
(в голове уже все смешалось, видимо я смотрел исходники к другому ПО)

тогда остается совсем мало кроме паскаля, vb ?
В общем тут не до холиваров.
выбирать язык чтобы прямоугольник нарисовать... все таки на скрипт надо смотреть как на скрипт, а не полновесное ПО со всеми вытекающими
Go to the top of the page
 
+Quote Post
fill
сообщение Dec 3 2015, 11:56
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512



Цитата(uriy @ Dec 2 2015, 20:04) *
Мне кажется уже поднимался вопрос автоматизации раскраски компонентов разными цветами на сборочном чертеже для удобства монтажниц.
Не смог найти. Пришли ли к чему то? Или все так и осталось в ручном режиме маркером?


Можно и автоматом видео

В рамках реальной организации процесс выглядит например так:
На производстве стоит visECAD которым пользуются монтажники и ОТК. В него можно загрузить схему-топологию-BOM с кросс-пробом и сравнением их между собой. Файл загружаемый в visECAD из xPCB Layout можно получить напрямую, а для AD (и т.п.) можно транслировать через CAMCAD PCB Translator.


--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю.

www.megratec.ru
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 3 2015, 18:43
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Похоже моя идея рисовать на неиспользуемых мех слоях пролетает.
альтиум не знает значения eMechanical32.
В скриптах доступны только мех слои с 1 по 16 и это соответствует документации http://techdocs.altium.com/display/SCRT/PC...echanicalLayers
Наверняка большинство кто польузуются альтиумом помнят когда мех слоев было только 16. И вряд ли используют слои с номерами выше 16.
Соотвественно количество свободных слоев доступных для моего замысла очень и очень мало.
Наверно нет смысла дальше разбираться в этом направлении.
Надо думать что-то другое.
Код
function GetUnusedLayers()
{

    PCBBoard = PCBServer.GetCurrentPCBBoard;
    if (PCBBoard != Null)
    {
    LS = "";
    var Layer;
    for (Layer = eMechanical1; Layer <= eMechanical32; Layer++)
    {
        if (!PCBBoard.LayerIsUsed(Layer))
                LS = LS + Layer2String(Layer) + " unused\r\n";
    }
    ShowInfo(LS);
    }
    else
    showmessage("Please open PCB");
}

Go to the top of the page
 
+Quote Post
peshkoff
сообщение Dec 4 2015, 08:16
Сообщение #14


люблю бегать и орать
*****

Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376



Для слоев далее 16 сделан костыль sm.gif
Board.LayerStack.LayerObject_V7.

Нашел здесь:
http://altium-designer-addons.googlecode.c...chLayerPair.pas
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 4 2015, 16:34
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Спасибо!
Только лучше не стало. Не могу понять кто такой ILayer
Его объявления не вижу.
Altium о нем тоже ничего не знает, на сайте в описании не находится.

Странно. Немного переписал не меняя сути. Теперь нормально находит неиспользуемые слои до 32го
Код
function GetUnusedLayers()
{
    //ColoredAssemblyDrawing.ShowModal;
    Board = PCBServer.GetCurrentPCBBoard;
    if (Board != Null)
    {
       LS = "";
       var Layer;
       var Stack = Board.LayerStack_V7;

       for (i = 1; i <= 32; i++)
       {
           if (!Stack.LayerObject_V7(ILayer.MechanicalLayer(i)).GetState_MechLayerEnabled)
                LS = LS + Layer2String(ILayer.MechanicalLayer(i)) + " unused\r\n";
       }
       ShowInfo(LS);
    }
    else
        showmessage("Please open PCB");
}
Go to the top of the page
 
+Quote Post

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

 


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


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