Nous sommes une petite startup qui développe une électronique moderne. Bien sûr, nous réalisons régulièrement de petits lots de tests pour la fabrication desquels il est inutile de commander une production à part entière - le coût de préparation sera le poste budgétaire le plus important. Par conséquent, nous trouvons régulièrement comment il est plus rapide, moins cher et plus efficace de collecter nous-mêmes ces lots. Parfois, dans le processus, quelque chose de nouveau est né ou quelque chose d'ancien est ajouté. Nous partagerons périodiquement le résultat avec vous.Une façon de réduire le coût de fabrication des cartes de circuits imprimés est de combiner plusieurs cartes sur une seule pièce et d'envoyer cette pièce à l'usine en un seul projet. L'astuce est que les usines sérieuses prennent de l'argent pour préparer la production de chaque carte, et les chinois orientés DIY proposent souvent (Seeedstudio, par exemple) un prix fixe pour une taille de PCB fixe. Dans le premier cas, un seul projet, même s'il est finalement découpé en plusieurs planches, sera considéré comme une seule planche, et dans le second, il est possible de loger plusieurs petites planches dans une pièce standard.De plus, la combinaison de cartes est pratique si vous créez des ensembles fixes - par exemple, vous avez un module de contrôle et quatre modules exécutifs dans votre projet; Dans ce cas, il est courant de les mettre sur un seul blanc et de toujours commander avec un tel kit.Dans ce cas, nous avions l'un et l'autre - à la fois le kit et le désir d'économiser sur la production d'un lot d'essai.
Ceci est un projet. Il dispose de 32 planches de 13 types différents. Comment assembler un tel projet en un quart d'heure - ci-dessous.Étonnamment, une tentative de trouver un logiciel prêt à l'emploi et au moins relativement abordable pour une telle opération conduit rapidement une personne à la dépression - après les cinq premiers sites qui proposent d'appeler le numéro de téléphone spécifié pour obtenir une offre de prix individuelle. Le problème est que les usines sont généralement engagées dans un travail direct avec les fichiers au format Gerber RS-274X, et donc le coût de tous ces logiciels est traditionnel pour une utilisation commerciale, à partir de quelques centaines de dollars par poste de travail.Les propositions budgétaires peuvent non plus multiplier un seul conseil par plusieurs copies (dans Eagle, par exemple, il s'agit d'une fonction native), mais pas collecter plusieurs fichiers de différents projets. ou - plus souvent - ils ne savent rien. Du relativement bon marché, j'ai réussi à trouver uniquement ViewMate Deluxe, qui, bien que pas très fort, valait toujours moins de 100 $ et pouvait éditer des gerberas - ne travaillant que dans des endroits très similaires à la torture sophistiquée.En plus de toute cette grandeur, il y a un paquet, entièrement gratuit - GPLv3 - et créé exactement pour cette tâche: avaler un tas de gerberas de différents projets et les placer sur une seule feuille.Il s'agit de GerbMerge , un script python . Avaler vos gerberas, pendant plusieurs minutes, il essaie de les organiser de milliers de manières différentes, en choisissant parmi eux le meilleur - de son point de vue.GerbMerge ne peut fonctionner qu'avec les fichiers Gerber RS-274X et Excellon, mais il est difficile de considérer un inconvénient - tout CAD qui peut être utilisé au moins théoriquement peut exporter des cartes dans ces formats, et n'importe quelle usine peut les accepter. De plus, si vous voulez la garantie maximale du résultat et le minimum de chance pour les mains tordues de l'usine - c'est Gerber + Excellon que vous avez préalablement vérifié, et vous devez les envoyer.Je ne donne pas de lien vers le site GerbMerge maintenant, car on ne sait pas quoi le considérer comme un site - à en juger par l'histoire des modifications et des droits d'auteur, il a changé de mains plusieurs fois avec des pauses d'un an ou deux, et chaque fois qu'il a été abandonné. En conséquence, lorsque j'ai essayé de l'exécuter, j'ai rapidement constaté que:- Il n'est pas installé
- Une fois installé, il ne démarre pas
- Lors de l'exécution, il ne digère pas les fichiers DipTrace
- Étant poussé, les fichiers en unités métriques ne sont pas digérés
- Sous Cygwin, cela ne fonctionne pas du tout
- Il y a des tentatives pour ranger l'installateur - dans la bonne direction, mais incomplète
- Il y a des tentatives de mettre en ordre les unités métriques - dans la bonne direction, mais incomplètes
- Tous les liens vers les packages d'installation prêts à l'emploi pour Windows se sont généralement détériorés il y a des années
Cependant, il n'y avait aucune alternative. Par conséquent, après quelques délibérations, une équipe de spécialistes du marketing, qui n'avaient jamais écrit de ligne en Python, s'est assise et a mis de l'ordre dans gerbmerge.Et maintenant - le lien: github.com/unwireddevices/gerbmergeDans la version 1.9.4, qui est maintenant disponible sur ce lien, gerbmerge:- Fonctionne avec succès sur Linux, Windows et Cygwin
- Il est installé sous tous les systèmes à l'aide d'outils standard sans rien éditer à la main.
- Comprend les fichiers générés par DipTrace
- Fonctionne en pouces et en millimètres
Installer GerbMerge
GerbMerge est un script python, donc l'installation a ses propres caractéristiques. Il peut être lancé sur Linux et Windows (natif et sous Cygwin), théoriquement aussi sur MacOS, mais je n'ai pas vérifié - il n'y a rien.Linux .Comme vous avez presque certainement déjà installé python, pip et gcc, il reste à installer simpleparse - pip installe simpleparse , puis allez à gerbmerge. Téléchargez l' archive source depuis le github , décompressez-la, allez à l'intérieur:python setup.py sdist
sudo pip install dist/gerbmerge-1.9.4.tar_gz
La première commande préparera le package d'installation pour votre système, la seconde l'installera. Bien sûr, vous pouvez immédiatement installer sudo python setup.py , mais si vous souhaitez vous séparer de gerbmerge ou le mettre à jour, vous supprimerez ses fichiers avec des poignées.Windows / Cygwin .Installez Cygwin avec les packages python, python-setuptools et gcc (ce dernier est nécessaire pour construire simpleparse). Téléchargez l'archive source de gerbmerge, décompressez-la, lancez Cygwin et accédez au répertoire source.easy_install-x.y pip
pip install simpleparse
python setup.py sdist
pip install dist/gerbmerge-1.9.4.tar_gz
La première commande (au lieu de xy sera la version de votre python, c'est-à-dire, probablement 2.7) installera pip, le reste sera le même que sous Linux.Windows natif .Téléchargez le programme d' installation de python pour votre système et installez-le - par défaut, il est installé dans C: \ Python27 \ et fait glisser le pip dont nous avons besoin avec vous. Téléchargez gerbmerge, décompressez. Exécutez cmd.exe et accédez au dossier source gerbmerge:c:\python27\scripts\pip.exe install simpleparse
c:\python27\python.exe setyp.py sdist
c:\python27\scripts\pip.exe istall dist\gerbmerge-1.9.4.zip
C’est tout. Si dans les cas précédents gerbmerge a été lancé, en fait, par la commande gerbmerge, alors pour le démarrer, vous devez appeler le fichier c: \ Python27 \ gerbmerge.bat (si vous placez Python dans un dossier différent, le chemin doit être modifié en conséquence).Utilisation de GerbMerge
Gerbmerge nécessite un fichier de configuration et des ensembles de fichiers avec des gerberas des cartes sources. Sur le github dans le dossier des exemples, il y a des exemples des deux, à la fois pour les gerberas pouces et les métriques.Le fichier de configuration décrit plusieurs paramètres de base, et après eux répertorie toutes les cartes que vous devrez assembler - indiquant où se trouvent leurs fichiers et comment ils s'appellent, ainsi que le nombre de pièces de chacun à mettre dans le projet final:[DEFAULT]
projdir = .
[Options]
ExcellonLeadingZeros = 1
PanelWidth = 400
PanelHeight = 300
XSpacing = 2
YSpacing = 2
MeasurementUnits = mm
AllowMissingLayers = 0
[MergeOutputFiles]
Prefix = %(projdir)s/merged
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Drills.txt
BoardOutline=%(prefix)s/BoardOutline.gbr
ToolList = %(prefix)s/Tools.drl
Placement = %(prefix)s/Placement.txt
[aa]
Prefix=%(projdir)s/aa
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Through.drl
BoardOutline=%(prefix)s/BoardOutline.gbr
Repeat = 10
[bb]
Prefix=%(projdir)s/bb
*TopLayer=%(prefix)s/Top.gbr
*BottomLayer=%(prefix)s/Bottom.gbr
*TopSilkscreen=%(prefix)s/TopSilk.gbr
*TopSoldermask=%(prefix)s/TopMask.gbr
*BottomSilkscreen=%(prefix)s/BottomSilk.gbr
*BottomSoldermask=%(prefix)s/BottomMask.gbr
Drills=%(prefix)s/Through.drl
BoardOutline=%(prefix)s/BoardOutline.gbr
Repeat = 6
Dans cet exemple, il y a deux cartes situées dans les dossiers aa et bb , les fichiers qu'ils contiennent portent des noms d'exportation DipTrace standard. Les dossiers sont à proximité, gerbmerge démarre juste là, donc le répertoire du projet est juste ".", Et les chemins vers les dossiers sont, respectivement, "./aa" et "./bb". La première planche doit être composée de 10 pièces sur une pièce, la seconde - six. Les gerberas sont en millimètres, la taille maximale des panneaux est de 400 × 300 mm, des espaces de 2 mm doivent être faits entre les planches afin que l'usine les découpe avec un broyeur (pour les dimensions des panneaux et des espaces, demandez à une usine spécifique). Enregistrez le format Excellon pour la perceuse avec des zéros au début, en l'absence de tout fichier de ce qui précède - jure. Le résultat doit être enregistré dans le dossier fusionné avec les noms de fichiers spécifiés.Veuillez noter que tous les fichiers sauf BoardOutline et Drills commencent par un astérisque - c'est la voie à suivre. Si vous mettez AllowMissingLayers dans l'unité, les fichiers avec des astérisques peuvent être manquants. Mais l'astérisque devrait être en tout cas (pas très logique, mais de telles bagatelles sont déjà trop paresseuses pour être réparées, elles ne dérangent personne).Après avoir créé la configuration, il ne reste plus qu'à exécuter gerbmerge avec elle comme seul paramètre:gerbmerge layout.cfg
Ou, si vous n'avez toujours pas rejoint le monde de la liberté, de l'égalité et de la fraternité (comme moi), et que vous n'aimez pas non plus Cygwin (pas comme moi), alors:C:\Python27\gerbmerge.bat layout.cfg
Lorsque vous démarrez gerbmerge, la feuille de la clause de non-responsabilité est suspendue et attend que vous appuyiez sur le «y». Si vous en avez assez, ajoutez le paramètre «-s».
Sauf indication contraire dans la config, gerbmerge fonctionne pour toujours, signalant périodiquement qu'il n'est pas mort. Vous pouvez l'arrêter à tout moment en appuyant sur Ctrl-C - cela enregistrera la configuration des cartes, qui à ce stade sera considérée comme la plus réussie, dans les fichiers et complète. Malheureusement, il est impossible de suivre le succès du résultat, alors donnez-lui juste assez de temps - de cinq minutes en moyenne Core i * à quinze sur AMD Sempron est suffisant pour obtenir un placement soigné même pour un projet comme celui décrit avant la coupe.Une caractéristique intéressante de gerbmerge est qu'il coupe automatiquement ce qui sort des bords d'une carte particulière. Par conséquent, par exemple, si vous avez des composants avec une sérigraphie dépassant vers l'extérieur (un connecteur dépassant au-delà des bords, par exemple), cette sérigraphie dans le projet final n'atteindra pas la carte voisine. La découpe des trous et la sérigraphie peuvent être désactivées dans les options de ligne de commande.Les fichiers résultants doivent être vérifiés de manière familière par n'importe quel visualiseur Gerber (j'utilise généralement Viewplot ) - et si rien ne s'est mal passé, envoyez-le à l'usine.Limitations
- : , - .
, , , Placement.txt — . , gerbmerge (--place-file=), . : gerbmerge . - Le script ne comprend pas le mélange de fichiers pouces et métriques. Tous les gerberas entrants doivent être dans le même système qui correspond à celui spécifié dans la configuration. En principe, c'est une occasion de développement, mais parce que à l'intérieur de gerbmerge avec un travail avec des unités de mesure maintenant que toujours de la bouillie, je ne m'engagerai jamais pour cela.
Proofpeak
Le même projet de 32 cartes de 13 types, exécuté dans le PCB par la société Microlit:
Il n'y a pas eu de questions de l'usine, il n'y a pas eu de plaintes sur la qualité.FAQ
Q: Au diable avec vous il y a tellement de planches ???R: Ici pour ce projet .