Elliptische Plattenkanten in KiCAD oder CircuitPro?

11

Ich versuche, mit KiCAD eine Leiterplatte zu entwerfen, die in ein vorhandenes Gehäuse passen muss. Eine Seite der Leiterplatte muss als spezifisches elliptisches Bogensegment geformt sein. Ich kann die Parameter der gewünschten Ellipse herausfinden, aber ich sehe nicht, wie man einen solchen Kantenschnitt in KiCAD tatsächlich zeichnet.

Ist dies in KiCAD möglich oder verwende ich dafür die falsche Software? Das Board wird auf LPKF ProtoMat erstellt, daher werde ich die CircuitPro-Software verwenden, um die endgültigen Anweisungen für den Plotter zu erstellen (ich weiß noch nicht, wie das funktioniert).

Meine Frage ist also, ob ich über das Design der Boardform in KiCAD nachdenken oder es bis zu einem späteren Schritt belassen soll.

Vielen Dank.

Val Blant
quelle
Dies ist mit KiCad möglich und ich habe solche Board-Konturen bereits erstellt. Ich bin jetzt mobil, kann jedoch eine Antwort schreiben, wenn ich verfügbar bin.
Abdullah Kahraman
@abdullahkahraman: Ich würde mich über Ihre Einsicht freuen.
Val Blant

Antworten:

25

Ich denke, ein Beispiel sagt mehr als eine Million Worte, deshalb wollte ich ein Tutorial dazu machen.

Hier ist die Box, für die ich eine Gliederung erstellen werde:

Geben Sie hier die Bildbeschreibung ein

Hier ist eine Beispiel-PCB-Zeichnung aus dem Datenblatt der Box:

Geben Sie hier die Bildbeschreibung ein

Wählen Sie nach dem Öffnen von Pcbnew die Ebene für die Kanten aus. In der aktuellen Version von KiCad (BZR4008) heißt es "Edge.Cuts". Zuerst werde ich die oberen und unteren Kanten zeichnen, die 62 mm sind. Dann die linken und rechten Kanten, die 32 mm sind. Ich verwende das unten stehende Tool mit dem Tooltip "Grafiklinie oder Polygon hinzufügen".

Geben Sie hier die Bildbeschreibung ein

Jetzt, wo alles in Ordnung ist, kann ich die anderen Formen zeichnen:

Geben Sie hier die Bildbeschreibung ein

Hier ist das Tool, das wir dafür verwenden werden:

Geben Sie hier die Bildbeschreibung ein

Dieses Werkzeug ist im Grunde ein Teilkreis. Um es zu verwenden, klicken Sie auf den Punkt, der der Mittelpunkt Ihres Kreises sein wird, und stellen Sie dann mit der Maus den Radius mit einer visuellen Hilfe des KiCad ein. Eine sehr hilfreiche Sache ist es, den Cursor so zu ändern, dass er die vollständigen Koordinaten anzeigt. Klicken Sie dazu auf die folgende Schaltfläche:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Lassen Sie uns nur als Beispiel die Kante nach außen zeigen:

Geben Sie hier die Bildbeschreibung ein

Mit dieser Methode können Sie leider keine korrekten Ellipsen erstellen. Sie müssen dafür die grafische Einbettung oder die von Nick Alexeev erwähnten Approximationsmethoden verwenden.

abdullah kahraman
quelle
4

KiCads Rettung ist meiner Meinung nach, dass die von ihm erstellten Dateien für den Menschen lesbar sind und das Dateiformat einigermaßen gut dokumentiert ist. Die X- und Y-Koordinaten werden in Zehntausendstel Zoll angegeben, bezogen auf (0,0) oben links. Ein Brettumriss kann durch Liniensegmente und Halbkreisbögen dargestellt werden.

Es ist einfach, die .brd-Dateien von Kicad mit der Skriptsprache Ihrer Wahl (z. B. Python) zu bearbeiten. Wenn ich Sie wäre, würde ich wahrscheinlich ein Skript schreiben, das die stückweisen Liniensegmente berechnet, um Ihren elliptischen Umriss zu approximieren, und die Liniensegmente in Ihre .brd-Datei schreiben.

rauben
quelle
Genau das habe ich getan. Danke Rob! Ich werde in Kürze eine vollständige Beschreibung der Lösung veröffentlichen.
Val Blant
4

Ich habe ein paar Tage gebraucht, um all diese Informationen zu verarbeiten, aber ich endete mit zwei Lösungen für dieses Problem. Ich werde hier beide Lösungen beschreiben.

Ich möchte Lorenzo und Rob Gilliom vom Kicad-User-Forum danken, die mir alle Ideen und Informationen zur Verfügung gestellt haben, die ich brauchte, um die folgenden Lösungen zusammenzustellen ( http://tech.groups.yahoo.com/). group / kicad-users / message / 15220 ).

= Option 1 =

Wenn Sie ein einzelnes elliptisches Segment importieren und den Rest der Karte in KiCAD entwerfen möchten, ist dieses Ruby-Skript wahrscheinlich der einfachste Weg:

#
# Generates an ellipse for Kicad. You have to copy the 
# generated lines into an existing template inside a .kicad_pcb file
#

Xo = 200.0
Yo = 150.0
MAJOR = 60.0
MINOR = 40.0
N = 256 # Number of points on the ellipse

TEMPLATE = "(gr_line (start %.2f %.2f) (end %.2f %.2f) (layer Edge.Cuts) (width 0.15))\n"

step = Math::PI * 2 / N
points = Array.new

# Calculate coordinates for all N points
(0..N).each {|s|
  x = Xo + MAJOR * Math::cos(step * s)
  y = Yo - MINOR * Math::sin(step * s)
  points << [x, y]
}

# For each pair of points, print a gr_line
points.each_cons(2) { |line| 
  printf(TEMPLATE, line[0][0], line[0][1], line[1][0], line[1][1])
}

Um dieses Skript zu verwenden, speichern Sie einfach eine leere .kicad_pcbDatei in Kicad und fügen Sie die von diesem Skript generierten Zeilen nach dem letzten Abschnitt vor der schließenden Klammer ein.

Öffnen Sie die neue Board-Datei in KiCAD und genießen Sie Ihre durch Liniensegmente interpolierte Ellipse :). Durch die Verwendung von 256 Punkten wird die Ellipse so glatt, dass Sie nicht erkennen können, dass sie in KiCAD aus Linien besteht.

Wenn Sie nur einen Teil der Ellipse möchten (z. B. eine Kante Ihrer Leiterplatte), ist es trivial, dem obigen Skript einen Begrenzungsrahmen hinzuzufügen und alle Punkte zu verwerfen, die außerhalb des Rahmens liegen.


= Option 2 =

Ein anderer Ansatz wäre, Ihr Board vollständig in Inkscape (oder irgendetwas anderem, das Vektorgrafiken exportieren kann) zu entwerfen und einen Weg zu finden, dies in KiCAD zu importieren.

Lorenzo hat hier eine Lösung bereitgestellt, die von Inkscape zu Gerber wechseln kann: http://tech.groups.yahoo.com/group/kicad-users/message/15229

Ich konnte dann auf Lorenzos Lösung aufbauen, um ein Ruby-Skript zu erstellen, das die Gerber-Phase umgeht und KiCAD-Board-Dateizeilen direkt generiert.

Der Prozess läuft folgendermaßen ab:

  1. Gestalten Sie Ihr Board in Inkscape
  2. Export nach HPGL
  3. Konvertieren Sie HPGL in GnuPlot Ascii: hp2xx -t -m gpt file.hpgl
  4. Board-Dateizeilen generieren: gpt2pcbnew file.hpgl.gpt

Hier ist die Quelle für das gpt2pcbnewSkript:

#
# Convert a GPT file created by hp2xx to Pcbnew gr_lines
#

# That's the line we'll write into the board file
TEMPLATE = "(gr_line (start %.5f %.5f) (end %.5f %.5f) (layer Edge.Cuts) (width 0.15))\n"


gpt_file = ARGV.shift

segments = Array.new

File.open(gpt_file, "r") do |file|
  # Start a new segment
  segment = Array.new 

  while (line = file.gets)
    unless ( line.strip! =~ /^#/ ) # Skip comments
      if ( line =~ /([0-9.]+) *([0-9.]+)/ )
        # Found coordinates. Save this point in the current segment
        #
        segment << line.split
      else
        # No numbers on a line means that we are done drawing the segment,
        # so we need to "lift up the pen" and move to the next segment
        #

        # Add current segment to the list of segments
        segments << segment unless segment.empty?

        # Start a new segment
        segment = Array.new
      end
    end
  end

  # Add the last segment we read
  segments << segment unless segment.empty?
end


# Print out gr_lines for all the segments
segments.each { |segment|  
  # For each pair of points print a line
  segment.each_cons(2) { |line| 
    printf(TEMPLATE, line[0][0], "-#{line[0][1]}", line[1][0], "-#{line[1][1]}")
  }  
}

Genau wie in Option 1 werden die generierten Zeilen in eine in KiCAD gespeicherte leere Board-Datei verschoben.

Diese Lösung nutzt die Tatsache, dass das HPGL-Format in seiner Konstruktion Gerber-Dateien sehr ähnlich ist, in dem Sinne, dass es sich um eine Reihe von Koordinaten handelt, die entweder "Stift hoch" oder "Stift runter" sind, was den Codes D01 und D02 in Gerber entspricht.

In diesem Fall erledigt Inkscape die ganze harte Arbeit beim Konvertieren von Bezier-Splines in Liniensegmente.

= Option 2 Einschränkungen =

Bei diesem Ansatz gibt es einige Einschränkungen:

  1. Es scheint, dass Inkscape keine Rechtecke in HPGL exportieren kann. Sie können dies natürlich umgehen, indem Sie Ihre eigenen Rechtecke erstellen.
  2. Ich bin derzeit nicht in der Lage, die Größe der exportierten Objekte richtig zu bestimmen. Die Objekte sind in KiCAD ungefähr doppelt so groß. Ich werde bald an einer Lösung dafür arbeiten.
Val Blant
quelle
3

Ich hatte vor einiger Zeit ein ähnliches Problem mit Kicad. Es unterstützt nur eingeschränkt nicht standardmäßige Formen oder ist einfach nicht gut dokumentiert. Am Ende habe ich meine Form (in meinem Fall kein Standard-Pad) mit Gimp gezeichnet und mit dem integrierten Werkzeug in ein Modul konvertiert. Ich habe dann diese Moduldatei geöffnet und die Ebene in die Kupferschichten geändert. Öffnen Sie es wieder in Kicad und Sie haben auf jeder Ebene nicht standardmäßige Formen Ihrer Wahl. Nicht ideal, aber es funktioniert.


Schritte:

  1. Erstellen Sie eine Zeichnung in Gimp
  2. Verwenden Sie die in Kicad enthaltene bitmap2-Komponente, um sie in eine Komponente zu konvertieren
  3. Öffnen Sie das Modul in gedit / notepad und bearbeiten Sie die Ebeneninformationen gemäß dem folgenden Dokument (Abschnitt 3.4):

https://bazaar.launchpad.net/~kicad-developers/kicad/doc/view/head:/doc/help/file_formats/file_formats.pdf

4.Speichern Sie die Änderungen und öffnen Sie das Modul in Pcbnew

Ergebnisse (ich könnte mir keine andere Möglichkeit vorstellen, eine kreisförmige Kante herzustellen, die nicht von einer Lötmaske bedeckt ist, sondern ein SMD-Pad mit darin enthaltenen Komponenten):

Geben Sie hier die Bildbeschreibung ein

s3c
quelle
Hmm - das sieht nach einem interessanten Ansatz aus, aber ich bin mir nicht sicher, was Sie unter "Diese Moduldatei geöffnet und die Ebene in Kupferschichten geändert" verstehen. Ich dachte, dass Pads eine Zielschicht haben und nicht das Modul selbst. Könnten Sie etwas näher erläutern, wie Sie von einem Modul der gewünschten Form zu einer tatsächlichen Zeichnung auf der Ebene Ihrer Wahl gelangen? Vielen Dank!
Val Blant
Antwort aktualisiert.
s3c
1
Sie können eine kreisförmige Kante nur mit dem Kreiswerkzeug erstellen. Da der Bereich bereits mit Kupfer gefüllt ist, können Sie die Lötmaske entfernen, indem Sie einen Kreis zeichnen, diesmal jedoch auf der Ebene Frontmaske.
Abdullah Kahraman
Das ist ein ziemlich guter Vorschlag. Ich wollte ein Modul, das ich schnell in verschiedene Designs integrieren kann. Ich denke, beide würden funktionieren. +1
s3c
1

Ich habe mit OrCAD, Eagle, Altium gearbeitet. Ich habe nicht mit KiCAD gearbeitet. Das Folgende ist also eine fundierte Vermutung.

In der Regel verfügen Layoutprogramme über Funktionen zum Zeichnen von Kreisbögen, jedoch nicht über eine integrierte Funktion zum Zeichnen von Ellipsen. Sie können eine Ellipse mit Kreisbögen approximieren ( mehr hier ). Sie können auch eine Ellipse mit einem Entwurfsprogramm zeichnen und versuchen, eine DXF in das Layoutprogramm zu importieren (Sie wissen nicht, wie gut KiCAD dies unterstützen kann).

Am Ende wird die PCB-Fabrik wahrscheinlich ohnehin Kurven mit Polygonen approximieren.

Nick Alexeev
quelle