Manuale di riferimento

Questo documento è coperto dal Copyright © 2014-2015 dei suoi autori come elencati in seguito. È possibile distribuirlo e/o modificarlo nei termini sia della GNU General Public License (http://www.gnu.org/licenses/gpl.html), versione 3 o successive, che della Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), versione 3.0 o successive.

Tutti i marchi registrati all’interno di questa guida appartengono ai loro legittimi proprietari.

Collaboratori

Cirilo Bernardo

Traduzione

Marco Ciampa <ciampix@libero.it>, 2014-2015.

Feedback

Si prega di inviare qualsiasi rapporto bug, suggerimento o nuova versione a:

Data di pubblicazione e versione del software

Pubblicato il 26 gennaio, 2014.

1. Introduzione all’esportatore IDFv3

L’esportatore IDF esporta i file scheda (.emn) e quelli di libreria (.emp) IDFv3 conformi
[http://www.simplifiedsolutionsinc.com/images/idf_v30_spec.pdf]
, allo scopo di comunicare le dimensioni meccaniche usate da un CAD meccanico. L’esportatore attualmente esporta i limiti e le specifiche di taglio della scheda, tutte le piazzole e i fori passanti di montaggio inclusi i fori ad asola e i contorni dei componenti; questo è l’insieme più basilare dei dati meccanici necessari per l’interazione con i progettisti meccanici. Tutte le altre entità di cui alla specifica IDFv3 non sono attualmente esportate.

2. Specifica dei modelli di componenti per l’uso da parte dell’esportatore

L’IDF exporter fa uso degli attributi dei file dei modelli 3D che erano originariamente usati dal visualizzatore 3D. Dal momento che il visualizzatore 3D, IDF, e i possibili futuri esportatori per CAD meccanici sono generalmente interessati a diversi tipi di formati di file, è possibile usare gli attributi dei file dei modelli 3D per specificare i modelli per più esportatori.

Dall’interno dell’editor delle impronte o da pcbnew, modificare i parametri dell’impronta e fare clic sulla scheda delle impostazioni 3D (vedere figura 1), fare clic su aggiungi forma 3D, e selezionare il filtro "File componenti IDFv3 (*.idf)" (vedere figura 2). Selezionare il file di contorno desiderato e inserire ogni valore necessario per lo spostamento e la rotazione. Si noti che solo i valori di spostamento e di rotazione Z vengono usati dall’esportatore IDF; tutti gli altri valori vengono ignorati. Gli spostamenti devono essere specificati usando le unità di uscita delle schede IDF (mm o mils) e nel sistema di coordinate IDF, che è un sistema di coordinate destroso con l’asse +Z che si sposta verso l’osservatore, +X è alla destra dell’osservatore, e +Y è verso l’alto. La rotazione deve essere in gradi e una rotazione positiva è una rotazione antioraria come descritto nelle specifiche IDFv3. Più contorni possono essere combinati con spostamenti appositi per rappresentare semplici assemblamenti come un dispositivo in contenitore DIP in uno zoccolo. [BUG: è stato deciso che l’unità di misura dello spostamento Z debba essere in pollici, che è consistente con le unità di spostamento del modello VRML. Può tornare utile non ignorare i valori di spostamento (X,Y). Il comportamento qui menzionato è probabile che cambierà in futuro.]

Una volta che i modelli sono stati specificati per tutti i componenti desiderati, dall’interno di pcbnew, selezionare il menu File, e poi Esporta, e infine Esportazione IDFv3. Una finestra di dialogo si aprirà (vedere figura 3) che permetterà di impostare il nome del file e le unità di misura (mm o mils) IDF del file in uscita. I file IDF esportati possono essere visualizzati con il CAD meccanico FreeCAD o convertiti in VRML usando lo strumento idf2vrml e visualizzati con qualsiasi visualizzatore VRML adatto.

Proprietà modulo, impostazioni 3D
Figura 1. Proprietà modulo, impostazioni 3D
Selezione contorno componente IDF
Figura 2. Selezione contorno componente IDF
Impostazioni risultati IDF
Figura 3. Impostazioni risultati IDF

3. Creazione di un file contorno componente

Il file del contorno del componente (*.idf) consiste in un unica sezione .ELECTRICAL o .MECHANICAL come descritto nel documento delle specifiche. La sezione può essere preceduta da un numero qualsiasi di righe di commento; le righe di commento vengono copiate dall’esportatore nel file delle librerie e possono essere usate per tenere traccia dei metadati come i riferimenti ai documenti usati per determinare il contorno e le dimensioni del componente.

La sezione del contorno del componente contiene campi consistenti in stringhe, numeri interi, o in virgola mobile. Una stringa è un insieme di caratteri che può includere gli spazi; se una stringa contiene spazi, deve essere virgolettata. Le virgolette non possono apparire all’interno di una stringa. I numeri in virgola mobile possono essere rappresentati usando le notazioni decimale o esponenziale ma la notazione decimale è la preferita per questioni di leggibilità. Il punto decimale deve essere un punto e non una virgola. Il file IDF deve consistere solo di caratteri standard ASCII a 7-bit; l’uso di caratteri a 8-bit provocherà un comportamento imprevedibile.

Un file IDF è composto di diverse SECTION (sezioni) che a loro volta sono composte da RECORD che sono composti da FIELD (campi). Per i file contorno IDF, può esistere un solo tipo di sezione che deve essere di tipo .ELECTRICAL o .MECHANICAL. Un record è una singola riga di testo e può contenere uno o più field (campi). I field (campi) sono sequenze di caratteri separate da uno o più spazi che non appaiono tra virgolette. Tutti i campi di un record devono stare su una sola riga; i record non possono distribuirsi su più righe.

Le intestazioni di sezione (.ELECTRICAL o .MECHANICAL) sono considerate il primo record (Record 1) della sezione. Record 1 deve essere seguito da Record 2 che possiede quattro campi:

  1. Geometry Name: una stringa che, assieme al Part Number deve formare un identificatore univoco per il contorno del componente. Per package standard, il nome del package è un buona scelta come valore del geometry name (nome geometria), per esempio "SOT-23". Per package specifici, il codice parte del costruttore è una buona scelta per il geometry name.

  2. Part Number: malgrado sia stato ovviamente pensato per il codice parte, per esempio BS107, è meglio usare questa stringa come aiuto alla descrizione del package. Per esempio se il geometry name è "TO-92", la voce part number può essere usata per descrivere la disposizione delle piazzole o l’orientamento di questo particolare file di contorno TO-92.

  3. IDF Unit: (unità di misura IDF) questa deve essere MM o THOU e si applica solo alle unità che descrivono il contorno di questo singolo componente.

  4. Height: (altezza) è un numero in virgola mobile che rappresenta l’altezza nominale del componente usando le unità specificate nel campo 3.

Record 2 deve essere seguito da un numero di voci Record 3 che specificano il contorno del componente. Record 3 consiste di quattro campi:

  1. Loop Index: 0 (i punti del contorno sono specificati in ordine antiorario) o 1 (i punti del contorno sono specificati in ordine orario)

  2. Coordinata X: un numero in virgola mobile

  3. Coordinata Y: un numero in virgola mobile

  4. Angolo incluso: un numero in virgola mobile. Se il valore è 0 allora un segmento di linea dritta viede disegnato dal punto precedente a questo punto. Se il valore è 360 allora il punto precedente specifica il centro di un cerchio e questo punto specifica un punto sul cerchio; mai specificare un cerchio usando un valore di -360 in quanto almeno un importante CAD meccanico in circolazione non si comporta bene in questa situazione. Se il valore è negativo allora un arco in senso antiorario viene disegnato dal punto precedente a questo punto e se il valore è positivo allora ne viene disegnato uno in senso antiorario.

Solo un circolo chiuso è permesso e non è possibile specificare un ritaglio. L’ultimo punto specificato deve essere lo stesso del primo punto a meno che il contorno non sia un cerchio.

Esempio IDF file 1:

# un semplice cilindro – potrebbe rappresentare un condensatore elettrolitico
.ELECTRICAL
    "cylinder" "5mm OD, 5mm height" MM 5
    0 0 0 0
    0 2.5 0 360
.END_ELECTRICAL

Esempio file IDF 2:

# una T rovesciata
# commento aggiunto per amore dei commenti
.ELECTRICAL
    "T Maiuscola" "5x8x10mm, rovesciata" MM 10
    0 -0.5 8 0
    0 -0.5 0.5 0
    0 -2.5 0.5 0
    0 -2.5 -0.5 180
    0 2.5 -0.5 0
    0 2.5 0.5 180
    0 0.5 0.5 0
    0 0.5 8 0
    0 -0.5 8 180
.END_ELECTRICAL

4. Linee guida per la creazione dei contorni

Quando si creao contorni, in special modo quando si condivide il proprio lavoro con altri, la consistenza nella progettazione e nella scelta dei nomi dei file aiuta le persone a localizzare i file e a piazzare i componenti più velocemente e con minimo sforzo.

4.1. Denominazione dei pacchetti

Si provi a rendere alcune informazioni sul profilo disponibili nel nomefile per dare all’utente un’idea generale su di che cosa è il profilo. Per esempio i contenitori cilindrici a terminali assiali possono rappresentare alcuni tipi di condensatori come alcuni tipi di resistenze, perciò ha senso identificare un profilo come un dispositivo con terminali assiale orizzontale o verticale ed aggiungere alcune informazioni rilevanti: diametro, lunghezza, e inclinzione sono le più importanti. Se un dispositivo ha un profilo unico, il numero di parte del costruttore e un prefisso per indicare la classe del dispositivo sono impostazioni adeguate.

4.2. Commenti

Usare i commenti nel file IDF per dare agli utenti ulteriori informazioni sul contorno, per esempio un riferimento alla sorgente usata per le informazioni dimensionali.

4.3. Voci di geometria e numero di parte

Considerare bene i valori da assegnare alle voci geometria e numeri di parte. Prese assieme, queste stringhe agiscono come un identificatore univoco per il CAD meccanico. Questi valori delle stringhe potrebbero avere ipoteticamente qualche significato per un utente, ma non è necessario: i valori sono fondamentalmente intesi per il sistema di CAD meccanico come ID univoco. Idealmente i valori scelti saranno univoci all’interno di qualsiasi grande insieme di contorni; scegliendo accuratamente i valori, si otterranno meno conflitti, soprattutto nelle schede di grande complessità.

4.4. Orientamento e posizionamento pin

Per componenti con terminali passanti non ci sono standard di fatto per determinare l’orientamento dei pin e per il centro dei componenti nei modelli in 3D. Per coerenza, se ci sono solo 2 pin questi devono essere in esecuzione orizzontale (vedere figure 4) lungo l’asse X e per 3 pin cercare di tenerne 2 in orizzontale sull’asse X. I dispositivi polarizzati come i condensatori elettrolitici o al tantalio devono avere il terminale positivo sul pin 1 e i diodi devono avere il catodo sul pin 1; questo per mantenere la compatibilità dei simboli elettrici con l’orientamento definito per i dispositivi SMD; comunque, si noti che esistono molti schemi elettrici e impronte di KiCAd che piazzano l’anodo al pin 1.

Nota
Nelle ultime revisioni delle impronte KiCad su github l’anodo è stato impostato al pin 2 per i componenti a fori passanti e SMD.

Per dispositivi DIP (N.d.T. Dual In Line) il centro del profilo deve essere al centro del rettangolo descritto dalle posizioni dei pin e il pin 1 è preferibilmente nell’angolo in alto a sinistra; questo manterrà la consistenza con l’orientamento standard dei componenti SMD; comunque, tale modello sarà ruotato di -90 gradi relativamente a molte impronte di componenti di KiCad e modelli VRML esistenti. Per elementi come condensatori con terminali radiali orizzontali o contenitori orizzontali TO-220, è preferibile piazzare i terminali in fila sull’asse X e il corpo del dispositivo che si estende in alto (vedere figura 4). I componenti con terminali verticali non polarizzati devono avere i fili sulla destra; i componenti con terminali assiali verticali polarizzati possono avere i fili su entrambi i lati, a seconda se il pin 1 è sulla parte bassa (fili a destra) o sulla parte alta (fili sulla sinistra).

Nota
Nell’attuale revisione delle impronte di KiCad, i componenti a fili passanti sono stati organizzati con i pin lungo l’asse Y invece che lungo l’asse X e il pin 1 del dispositivo è sull’origine invece che al centro del contenitore. Orientare e posizionare il profilo del componente conformemente all’impronta specifica; ciò eviterà la necessità di specificare una rotazione non zero per i profili IDF del componente. Dato che l’esportatore IDF attualmente ignora i valori di dislocazione (X,Y) è vitale che si usi l’origine corretta nel profilo IDF del componente.

Per compomenti SMD l’orientamento, il centro del contenitore, e i profili sono definiti da vari standard. Usare lo standard appropriato per il lavoro. Considerare inoltre che molti dispositivi non sono conformi a nessuno standard; in tal caso il dispositivo in questione è probabilmente meglio identificato usando il numero di modello del fabbricante nel nome del file del profilo. In generale, un profilo SMD è il rettangolo che comprende il contenitore del componente inclusi i terminali; il contenitore viene orientato in modo tale che il pin 1 sia il più possibile vicino all’angolo in alto a sinistra e che solitamente è smussato come riferimento visuale.

Contorni di esempio
Figura 4. Contorni di esempio generati dai programmi idfcyl e idfrect e renderizzati da SolidWorks.

Da sinistra a destra ci sono (a) cilindro verticale a terminali radiali (b) cilindro verticale con terminali assiali con filo sulla sinistra, (c) cilindro verticale con terminali assiali con filo sulla destra, (d) cilindro orizzontale con terminali assiali, (e) cilindro orizzontale con terminali radiali, (f) profilo rettangolare, normale, (g) profilo rettangolare con smussatura, (h) profilo rettangolare con terminali assiali sulla destra. I profili in cima sono stati specificati con unità in millimetri mentre quelli sul fondo con unità in pollici.

4.5. Suggerimenti sulle dimensioni

Lo scopo dei profili estrusi è dare al progettista meccanico un’idea della posizione e dello spazio fisico occupati da ogni componente. In un tipico scenario il progettista meccanico sostituirà alcuni profili grezzi con modelli meccanici più dettagliati, per esempio durante la verifica che un LED montato angolato a destra entri in un foro in un pannello. In molte situazioni l’accuratezza di un profilo non è importante, ma è considerata buona pratica creare profili che corrispondano alle informazioni meccaniche il più possibile. In alcuni casi un utente potrebbe voler inserire il componente in uno scatolo con poco spazio, per esempio in un lettore audio digitale portatile. In tale situazione, se la maggior parte dei profili estrusi sono abbastanza rappresentativi dei componenti, allora il progettista meccanico dovrà rimpiazzare solo pochi modelli durante la progettazione della scatola. Se i profili non sono una rappresentazione affidabile della realtà allora il progettista meccanico dovrà perdere molto tempo per rimpiazzare i modelli per assicurarsi che il tutto riesca a stare dentro il contenitore. Inserendo dati spazzatura si otterrà spazzatura in uscita. Se si inseriscono dati affidabili, ci si può aspettare ovviamente migliori risultati.

5. Strumenti per i contorni del componenti IDF

Un certo numero di strumenti a riga di comando sono disponibili per aiutare la generazione di contorni di componenti IDF. Questi strumenti sono:

  1. idfcyl: crea un contorno di un cilindro orientato verticalmente o orizzontalmente e con terminali assiali o radiali

  2. idfrect: crea un contorno di un rettangolo che può avere sia un termiale assiale che una smussatura sull’angolo alto a sinistra

  3. dxf2idf: converte un disegno in formato DXF in un contorno di componente IDF

5.1. idfcyl

Quando idfcyl viene invocato senza argomenti, questo emette una nota sul suo uso ed un elenco dei suoi valori in ingresso:

idfcyl: This program generates an outline for a cylindrical component.
    The cylinder may be horizontal or vertical.
    A horizontal cylinder may have wires at one or both ends.
    A vertical cylinder may have at most one wire which may be
    placed on the left or right side.

Input:
    Unit: mm, in (millimeters or inches)
    Orientation: V (vertical)
    Lead type: X, R (axial, radial)
    Diameter of body
    Length of body
    Board offset
    *   Wire diameter
    *   Pitch
    **  Wire side: L, R (left, right)
    *** Lead length
    File name (must end in *.idf)

    NOTES:
        *   only required for horizontal orientation or
            vertical orientation with axial leads

        **  only required for vertical orientation with axial leads

        *** only required for horizontal orientation with radial leads

Le note possono essere soppresse inserendo un argomento arbitrario sulla riga di comando. Un utente può inserire le informazion manualmente sulla riga di comando o creare degli script per generare i profili. Lo script seguente crea un singolo profilo cilindrico con terminali assiali sulla destra:

#!/bin/bash
# Generate a cylindrical IDF outline for test purposes
# vertical 5mm cylinder,  nominal length 8mm + 3mm board offset,
# axial wire on right,  0.8mm wire dia., 3.5mm pitch
idfcyl - 1 > /dev/null <<  _EOF
mm
v
x
5
8
3
0.8
3.5
r
cylvmm_1R_D5_L8_Z3_WD0.8_P3.5.idf
_EOF

5.2. idfrect

Quando idfrect viene invocato senza argomenti, stampa una nota sull’uso e l’elenco di dati che si aspetta in ingresso:

idfrect: This program generates an outline for a rectangular component.
    The component may have a single lead (axial) or a chamfer on the
    upper left corner.
Input:
    Unit: mm, in (millimeters or inches)
    Width:
    Length:
    Height:
    Chamfer: length of the 45 deg. chamfer
    *  Leaded: Y,N (lead is always to the right)
    ** Wire diameter
    ** Pitch
    File name (must end in *.idf)

    NOTES:
        *   only required if chamfer = 0

        **  only required for leaded components

Le note possono essere soppresse inserendo un argomento arbitrario sulla riga di comando. Un utente può inserire manualmente le informazioni sulla riga di comando o creare script per generare i profili. Lo script seguente crea un profilo rettangolare smussato con terminali assiali:

#!/bin/bash
# Generate various rectangular IDF outlines for test purposes
# 10x10, 1mm chamfer, 2mm height
idfrect - 1 > /dev/null <<  _EOF
mm
10
10
2
1
rectMM_10x10x2_C0.5.idf
_EOF
# 10x10x12,  0.8mm lead on 6mm pitch
idfrect - 1 > /dev/null <<  _EOF
mm
10
10
12
0
Y
0.8
6
rectLMM_10x10x12_D0.8_P6.0.idf
_EOF

5.3. dxf2idf

Il file DXF usato per specificare il profilo del componente può essere preparato con il software libero LibreCAD che assicura la migliore compatibilità. Quando dxf2idf viene invocato senza argumenti, stampa una nota d’uso insieme all’elenco degli argomenti accettati in ingresso:

dxf2idf: this program takes line, arc, and circle segments
    from a DXF file and creates an IDF component outline file.

Input:
    DXF filename: the input file, must end in '.dxf'
    Units: mm, in (millimeters or inches)
    Geometry Name: string, as per IDF version 3.0 specification
    Part Name: as per IDF version 3.0 specification of Part Number
    Height: extruded height of the outline
    Comments: all non-empty lines are comments to be added to
        the IDF file. An empty line signifies the end of
        the comment block.
    File name: output filename, must end in '.idf'

Le note possono essere soppresse inserendo un arbitrario argomento sulla riga di comando. Un utente può manualmente inserire le informazioni alla riga di comando o creare script per generare i profili. Il seguente script crea un profilo alto 5mm da un file DXF test.dxf:

#!/bin/bash
# Generate an IDF outlines from a DXF file
dxf2idf - 1 > /dev/null << _EOF
test.dxf
mm
DXF TEST GEOMETRY
DXF TEST PART
5
This is an IDF test file produced from the outline 'test.dxf'
This is a second IDF comment to demonstrate multiple comments

test_dxf2idf.idf
_EOF

6. idf2vrml

Lo strumento idf2vrml legge una scheda IDF Board (.emn) e un file componente IDF (.emp) e produce un file VRML che può essere visualizzato con un visualizzatore VRML. Questa caratteristica è utile per la visualizzazione dell’assemblaggio della scheda nei casi in cui l’utente non ha accesso a software di CAD meccanito. L’invocazione di idf2vrml senza argomenti provocherà la stampa di un messaggio di guida sull’uso:

>./idf2vrml
Usage: idf2vrml -f input_file.emn -s scale_factor {-k} {-d} {-z} {-m}
flags:
   -k: produce KiCad-friendly VRML output; default is compact VRML
   -d: suppress substitution of default outlines
   -z: suppress rendering of zero-height outlines
   -m: print object mapping to stdout for debugging purposes
example to produce a model for use by KiCad: idf2vrml -f input.emn -s 0.3937008 -k
>

[BUG: Lo strumento idf2vrml attualmente non renderizza correttamente entità OTHER_OUTLINE presenti in un file .emn se tale entità viene specificata sullo strato retro del circuito stampato; comunque non si noterà questo bug usando file esportati da KiCad dato che non c'è meccanismo per specificare tali entità. Essenzialmente questo bug è un problema solo in rare occasioni dove si voglia renderizzare un file emn di terze parti che presenta entità sul lato posteriore della scheda.]