projektit:wanhat:sircad

Ajattelin tehdä piirilevysoftan...

WTF, maailma on täynnä piirilevysoftia? Oikea syy: olen helvetinmoinen jääräpää. Olen kokeillut monia softia, mutta ainoa, jota suostun käyttämään on vm. 1998 CIRCAD-demoversio. Circadin lähestymistapa on ”no-bullshit”, sillä voi vaan ruveta piirtämään levyä, se ei estä normaaleja asioita, eikä vaadi käyttäjää manageroimaan byrokratiapuolta. Mitään asetuksia ei tarvitse säätää. Toinen juttu mikä siinä on hyvä, on näppäimistön ja hiiren tehokas yhteiskäyttö.

CIRCAD on kuitenkin iänikuisen vanha, ja uudempia versioita ei ole sanottavasti kehitetty. Sen ominaisuusvalikoima on suunnilleen 80-luvulta. Suunnittelua auttavien ja nopeuttavien oleellisten ominaisuuksien lisäksi siitä puuttuu täysin välttämättömiä ominaisuuksia kuten toimiva copper pour (maatasot). Jääräpäisyyteni eteni siihen pisteeseen, että olen kirjoittanut jo 1000 riviä oheisohjelmistoa, joiden avulla CIRCAD-projekteista saa ulos ehjät gerberit käyttökelpoisilla maatasoilla vähän vähemmällä manuaalisella työllä kuin piirtämällä kaiken itse tyhjästä…

SIRCAD 2015

Ajattelin siis, että v. 2015 aion tehdä oman piirilevysoftan. Tosin en lupaa mitään, jos tuntuu siltä ettei nappaa niin sitten en tee. Anyways, perusidea on, että matkin CIRCADin käyttöliittymän hyvinkin pitkälti sellaisenaan (koska se on ainoa syy käyttää CIRCADia). Sitten sen päälle voi lisätä puuttuvat featuret.

Featureja

Tähän voi listailla mitä fiitsöreitä ohjelmassa olisi kiva olla. Lähtökohtana on CIRCAD-kopio, eli mitään CIRCADissa olevaa ei erikseen listata.

  • Ehjä copper pour (kaksi moodia: automaattinen polygonien laskenta, tai clear polarityn käyttö)
  • Käyttäjän tekemän komponentin automaattinen lisäys kirjastoon ja mahdollisuus yhdellä klikkauksella lähettää julkiseen intternet-kirjastoon
  • Footprintit ensisijaisia komponenttityyppejä (kuten CIDCADissa). Tarkoitus tehdä ensisijaisesti piirilevyjä. Skema→piirilevy-mappaus ei saa vaatia lisäefforttia
  • Design rule clearancet näkyvät piirrettävän viivan ympärillä
  • Gridin lisäksi snappaus myös komponentin jalkoihin. Erityisen oleellinen kun millikomponentteja yhdistellään tuumagridiin
  • Gridin vaihto millit/tuumat
  • Grafiikan läpinäkyvyys (helpottaa suunnattomasti kun näkee mitä alemmalla layerilla tapahtuu.)
  • ”Pad scan” joka kelaa net-nimettömät padit läpi.
    • Huomaa jos padi on jo reititetty johonkin nettiin, ja ehdottaa automaattisesti ao. netnamea padille
  • Padille numeron ja netnamen lisäksi lisätietokenttä, jossa voi olla pinnin nimi/kuvaus. Näitä voi yrittää autogeneroida datashiiteistäkin.
  • CIRCAD-tallennusformaatti import/export
  • Buried/blind vias
  • Mahdollisuus ”autoroutettaa” yksi veto toisen viereen clearancen päähän. Elikkäs väylät joissa seuraavat viivat seuraavat ensimmäistä piirrettyä ja tekevät mutkat oikeissa kohdissa.
  • Outputit: gerberit, poratiedostot, ladontaohjetiedostot, BOM ym. standardinmukaisissa ja yleisestikäytetyissä formaateissa; tiedostot suoraan sellaisia mitä valmistajat v. 2015 (ei 1985) haluavat. Defaulttiasetukset oikeat, niin että tiedostot ehjiä ja modernin workflow'n mukaisia.

Design

  • Aattelin käyttää SFML-kirjastoa piirtelyyn. Se on ennestään tuttu, helppo ja nopea ja käyttää laitteistokiihdytystä (OpenGL)
  • Joko puhdasta C:tä tai sitten sekaan jonkin verran C++:mäisyyksiä
  • Cross-platform (SFML toivottavasti ainoa riippuvuus: Windows, linux, MacOS) ja open source
  • Näppäimistö- ja komento-ohjausta paljon. Tosielämä on osoittanut, että hirveät hiiri-guit ei ole ainoastaan hitaita käyttää kaikille, myös katastrofaalisia aloittelijoille (”jooh klikkaa sitä kakkapökäleen näköistä mystistä nappulaa siinä jossain niin jotain ehkä tapahtuu”. Ks. Eagle&KiCad, joissa koko ohjelman toimiminen ollenkaan (signaalien piirto!) on ensin enabloitava kummallisen näköisestä napista, joka ei muistuta mitään)
  • Circadmainen (kenties vielä selkeämpi) tekstipohjainen dataformaatti
    • pad x=123.45 y=234.56 size=55.5 type=smd name=”1” net=”gnd” descr=”ground”
  • projektit/wanhat/sircad.txt
  • Viimeksi muutettu: 2019/09/18 20:31
  • (ulkoinen muokkaus)