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 werden. Ich kann die Parameter der gewünschten Ellipse herausfinden, aber ich sehe nicht, wie man einen solchen Kantenschnitt in KiCAD tatsächlich zeichnet.
Geht das in KiCAD oder verwende ich dafür die falsche Software? Das Board wird auf LPKF ProtoMat erstellt, also werde ich die CircuitPro-Software verwenden, um die endgültigen Anweisungen für den Plotter zu erstellen (weiß noch nicht, wie das funktioniert).
Meine Frage ist also, ob ich über das Design der Platinenform in KiCAD nachdenken oder es auf einen späteren Schritt verschieben sollte?
Danke dir.
Ich denke, ein Beispiel sagt mehr als eine Million Worte, also wollte ich ein Tutorial dazu machen.
Hier ist die Box, für die ich eine Gliederung erstellen werde:
Hier ist eine Beispiel-PCB-Zeichnung aus dem Datenblatt der Box:
Wählen Sie nach dem Öffnen von Pcbnew die Ebene für Kanten aus. In der aktuellen Version von KiCad (BZR4008) heißt es "Edge.Cuts". Zuerst zeichne ich die oberen und unteren Kanten, die 62 mm lang sind. Dann die linke und rechte Kante, die 32 mm sind. Ich verwende das unten stehende Werkzeug mit dem Tooltip "Grafiklinie oder Polygon hinzufügen".
Jetzt, da alles in Ordnung ist, kann ich die anderen Formen zeichnen:
Hier ist das Tool, das wir dafür verwenden werden:
Dieses Werkzeug ist im Grunde ein Teilkreis. Um es zu verwenden, klicken Sie auf den Punkt, der der Mittelpunkt Ihres Kreises sein wird, dann stellen Sie mit der Maus den Radius mit einer visuellen Hilfe des KiCad ein. Es ist sehr hilfreich, den Cursor mit der unten gezeigten Schaltfläche so zu ändern, dass er vollständige Koordinaten anzeigt:
Lassen Sie uns nur als Beispiel die Kante nach außen zeigen:
Leider können Sie mit dieser Methode keine korrekten Ellipsen erstellen. Dazu müssen Sie die grafische Einbettung oder die von Nick Alexeev erwähnten Annäherungsmethoden verwenden.
Ich brauchte ein paar Tage, um all diese Informationen zu verdauen, aber ich endete mit 2 Lösungen für dieses Problem. Beide Lösungen beschreibe ich hier.
Ich möchte Lorenzo und Rob Gilliom vom kicad-users-Forum danken, die mir alle Ideen und Informationen zur Verfügung gestellt haben, die ich benötigte, um die folgenden Lösungen zusammenzustellen ( http://tech.groups.yahoo.com/ group/kicad-users/message/15220 ).
= Möglichkeit 1 =
Wenn Sie ein einzelnes elliptisches Segment importieren und den Rest der Platine 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_pcb
Datei in Kicad und fügen Sie dann 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 Ellipse interpoliert durch Liniensegmente :). Die Verwendung von 256 Punkten macht die Ellipse so glatt, dass Sie in KiCAD nicht erkennen können, dass sie aus Linien besteht.
Wenn Sie nur einen Teil der Ellipse haben 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.
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, das 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-Stufe umgeht und KiCAD-Board-Dateizeilen direkt generiert.
Der Prozess läuft wie folgt ab:
hp2xx -t -m gpt file.hpgl
gpt2pcbnew file.hpgl.gpt
Hier ist die Quelle für das gpt2pcbnew
Skript:
#
# 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 gehen die generierten Linien in eine leere Platinendatei, die in KiCAD gespeichert wird.
Diese Lösung macht sich die Tatsache zunutze, dass das HPGL-Format in seinem Aufbau Gerber-Dateien sehr ähnlich ist, in dem Sinne, dass es sich um eine Reihe von Koordinaten mit entweder „Stift oben“ oder „Stift unten“ handelt, was den Codes D01 und D02 in Gerber entspricht.
Die ganze harte Arbeit der Konvertierung von Bezier-Splines in Liniensegmente wird in diesem Fall also von Inkscape erledigt.
= Option 2 Einschränkungen =
Es gibt ein paar Einschränkungen bei diesem Ansatz:
Die Rettung von KiCad besteht meiner Meinung nach darin, dass die erstellten Dateien für Menschen lesbar sind und das Dateiformat einigermaßen gut dokumentiert ist. X- und Y-Koordinaten werden in Zehntausendstel Zoll angegeben, bezogen auf (0,0) oben links. Ein Platinenumriss 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 manipulieren. Wenn ich Sie wäre, würde ich wahrscheinlich ein Skript schreiben, das die stückweisen Liniensegmente berechnet, um Ihren elliptischen Umriss anzunähern, und die Liniensegmente in Ihre .brd-Datei schreiben.
Ich hatte vor einiger Zeit ein ähnliches Problem mit Kicad, es hat immer nur begrenzte Unterstützung für nicht standardmäßige Formen oder es ist einfach nicht gut dokumentiert. Am Ende habe ich meine Form (in meinem Fall kein Standard-Pad) mit Gimp gezeichnet und sie mit dem eingebauten Werkzeug in ein Modul konvertiert. Ich habe dann diese Moduldatei geöffnet und die Schicht auf die Kupferschichten geändert. Öffnen Sie es wieder in Kicad und Sie haben auf jeder Ebene nicht standardmäßige Formen Ihrer Wahl. Nicht optimal aber es funktioniert.
Schritte:
4.Speichern Sie die Änderungen und öffnen Sie das Modul in Pcbnew
Ergebnisse (konnte mir keine andere Möglichkeit vorstellen, eine kreisförmige Kante herzustellen, die nicht von Lötstopplack bedeckt ist, es ist eigentlich ein SMD-Pad mit darin enthaltenen Komponenten):
Ich habe mit OrCAD, Eagle, Altium gearbeitet. Habe noch nie mit KiCAD gearbeitet. Das Folgende ist also eine fundierte Vermutung.
Typischerweise haben Layoutprogramme Funktionen zum Zeichnen von Kreisbögen, aber keine eingebaute Funktion zum Zeichnen von Ellipsen. Sie können eine Ellipse mit Kreisbögen annähern ( mehr hier ). Sie könnten auch mit einem Zeichenprogramm eine Ellipse zeichnen und versuchen, ein DXF in das Layoutprogramm zu importieren (weiß nicht, wie gut KiCAD dies unterstützen kann).
Am Ende wird die Leiterplattenfertigung wahrscheinlich sowieso Kurven mit Polygonen approximieren.
abdullah kahraman
Val Blant