Kaikkien näiden tietojen käsitteleminen kesti pari päivää, mutta päädyin kahteen ratkaisuun tähän ongelmaan. Kuvaan molemmat ratkaisut täällä.
Haluan kiittää Lorenzoa ja Rob Gilliomia kicad-käyttäjien foorumilta, jotka ovat toimittaneet minulle kaikki ideat ja tiedot, jotka tarvitsin kokoamaan yhteen alla olevat ratkaisut ( http://tech.groups.yahoo.com/group/kicad-users/message/15220).
= Vaihtoehto 1 = vahva >
Jos haluat tuoda yhden elliptisen segmentin ja suunnitella loput levystä KiCADiin, tämä Ruby-komentosarja on todennäköisesti helpoin tapa edetä:
# # Luo ellipsin Kicadille. Sinun on kopioitava # luodut rivit olemassa olevaan malliin .kicad_pcb-tiedoston sisällä # Xo = 200.0Yo = 150.0MAJOR = 60.0MINOR = 40.0N = 256 # ellipsin pisteiden määräTEMPLATE = "(gr_line (start% .2f% .2f) (loppu% .2f% .2f) (taso Edge.Cuts) (leveys 0.15)) \ n "askel = Math :: PI * 2 / Npoints = Array.new # Laske koordinaatit kaikille N pisteelle (0. .N). Jokainen {| s | x = Xo + MAJOR * Matematiikka :: cos (askel * s) y = Yo - PIENI * Matematiikka :: synti (askel * s) pistettä << [x, y]} # Tulosta kullekin pisteparille gr_linepoints.each_cons (2) {| rivi | printf (MALLI, viiva [0] [0], viiva [0] [1], viiva [1] [0], viiva [1] [1])}
Järjestyksessä Jos haluat käyttää tätä komentosarjaa, tallenna vain tyhjä .kicad_pcb
-tiedosto Kicadiin ja lisää sitten tämän komentosarjan luomat rivit viimeisen osion jälkeen ennen sulkeutumista.
Avaa uusi lauta tiedosto KiCAD: ssä ja nauti ellipsistasi, joka on interpoloitu rivisegmenttien avulla :). 256 pisteen käyttäminen tekee ellipsistä niin sujuvan, että et voi sanoa, että se koostuu KiCADin viivoista.
Jos haluat vain osan ellipsistä (esimerkiksi piirilevyn yhden reunan), se on triviaali lisätä rajoittava ruutu yllä olevaan komentosarjaan ja hylätä kaikki ruudun ulkopuolella olevat kohdat.
= Vaihtoehto 2 =
Toinen tapa olisi suunnitella piirilevy kokonaan Inkscape (tai mikä tahansa muu, joka voi viedä vektorigrafiikkaa) ja löytää tapa tuoda se KiCAD: iin.
Lorenzo on tarjonnut ratkaisun, joka voi siirtyä Inkscapesta Gerberiin täällä: http://tech.groups.yahoo.com/group/kicad-users/message/15229
Pystyin sitten rakentamaan Lorenzon ratkaisuun sellaisen Ruby-komentosarjan, joka ohittaa Gerber-vaiheen ja luo suoraan KiCAD-levytiedostorivit.
Prosessi sujuu näin:
- Suunnittele piirilevy Inkscape-sovelluksessa
- Vie HPGL: ään
- Muunna HPGL GnuPlot Ascii:
hp2xx -t -m gpt file.hpgl
- Luo levytiedostorivit:
gpt2pcbnew file.hpgl.gpt
Tässä on koodin gpt2pcbnew
lähde :
## Muunna hp2xx: n luoma GPT-tiedosto Pcbnew gr_lines ## Tämä on rivi, jonka kirjoitamme taulukkotiedostoonTEMPLATE = "(gr_line (start% .5f% .5f) ( loppu% .5f% .5f) (taso Edge.Cuts) (leveys 0.15)) \ n "gpt_file = ARGV.shiftsegments = Array.newFile.open (gpt_file," r ") do | tiedosto | # Aloita uusi segmenttisegmentti = Array.new while (rivi = file.gets), ellei (line.strip! = ~ / ^ # /) # Ohita kommentit if (rivi = ~ /((0-9.]+) * ([0-9.] +) /) # Löydetyt koordinaatit. Tallenna tämä piste nykyiseen segmenttiin # segmentti << line.split else # Ei viivan numeroita tarkoittaa, että segmentin piirtäminen on valmis, # joten meidän on "nostettava kynä ylös" ja siirryttävä seuraavaan segmenttiin # # Lisää nykyinen segmentti segmenttiluetteloon segmentit << segmentti, ellei segmentti ole tyhjä? # Aloita uusi segmentti = Array.new end end end # Lisää viimeinen segmentti, jonka luemme segmentit << segmentti, ellei segment.empty? End # Tulosta gr_lines kaikille segmenteille segmentit.each {| segment | # Tulosta jokaiselle pisteparille viivan segmentti. Jokainen_cons (2) {| viiva |
printf (MALLI, rivi [0] [0], "- # {rivi [0] [1]}", rivi [1] [0], "- # {rivi [1] [1]}")}}
Aivan kuten vaihtoehdossa 1, luodut rivit menevät tyhjään taulutiedostoon, joka on tallennettu KiCAD: iin.
Tämä ratkaisu hyödyntää sitä, että HPGL-muoto on hyvin samanlainen rakentaminen Gerber-tiedostoihin, tavallaan, että se on sarja koordinaatteja joko "kynä ylös" tai "kynä alas" kanssa, mikä vastaa Gerberin D01- ja D02-koodeja.
Joten Inkscape tekee tässä tapauksessa kaiken kovan työn bezier-urista linjasegmenteiksi muuntamiseksi.
= Vaihtoehdon 2 rajoitukset =
Tällä lähestymistavalla on pari rajoitusta:
- Vaikuttaa siltä, että Inkscape ei voi viedä suorakulmioita HPGL: ään. Voit tietysti kiertää tämän rakentamalla omat suorakulmiot.
- En voi tällä hetkellä saada vietyjen objektien kokoja oikein. Kohteet päätyvät suunnilleen kaksi kertaa suuremmiksi KiCAD: ssä. Työskentelen pian ratkaisun löytämiseksi tähän.