Documentation

Difference between revisions of "Package Generator"

(Quick creation of a package using the N-Pole type)
Line 27: Line 27:
  
 
Die Idee ist, einfach einen bestimmten Gehäuseumriss mit einer bestimmten Art und Anzahl Pads zu erstellen und in der Bauteildatenbank abzuspeichern. Zwar mag das Gehäuse nicht unbedingt einen Schönheitspreis gewinnen, aber der Generator hat Ihnen schon mal nicht wenige Konstruktionsschritte abgenommen. Diesen "Rohling" holt man später ins Layout herein, schiebt die Pads in Position und speichert erneut (ggf. unter einem anderen Namen) ab. Im Layout können Sie das Bauteil jederzeit verfeinern und erneut abspeichern.
 
Die Idee ist, einfach einen bestimmten Gehäuseumriss mit einer bestimmten Art und Anzahl Pads zu erstellen und in der Bauteildatenbank abzuspeichern. Zwar mag das Gehäuse nicht unbedingt einen Schönheitspreis gewinnen, aber der Generator hat Ihnen schon mal nicht wenige Konstruktionsschritte abgenommen. Diesen "Rohling" holt man später ins Layout herein, schiebt die Pads in Position und speichert erneut (ggf. unter einem anderen Namen) ab. Im Layout können Sie das Bauteil jederzeit verfeinern und erneut abspeichern.
 
 
  
 
== How to create a package script ==
 
== How to create a package script ==

Revision as of 17:40, 13 January 2014

The Package generator dialog

The "package generator" is made for easy creation of component packages including 3D view. It can be found in layout menu "Packages" and opens like this:

The package generator dialog
Image: The package generator dialog


It consists of three parts: A technical drawing to the left, which contains the definition of the parameters of the part. Such a drawing can be found in any data sheet. This image can not be modified here. Middle of the dialog you find the list of parameters, where all parameters can be entered according to the specifications of the data sheet. It is the basis for how the package later will look like. The abbreviations left of the equal sign are the same as in the technical drawing to the very left. Up to the right the package image can be seen the way it appears in the layout later. Below the 3D image can be seen.

The component type to be created can be selected from the list top left:

The list of component types
Image: The list of component types

If you select a DIL (Dual-In-Line) from the list, the dialog changes the way that DIL parameters can be entered.

The dialog for a DIL
Image: The dialog for a DIL


The button Unit mm (top center) wants to make clear that metric scale has prevailed against inch in component drawing. There is no inch-scale here.

The buttons Default, Load, Save in the center of the dialog refer to the set of values currently entered. One can save certain sets of values under an individual name and load them again. Or you might use the default setting.

The button Generate! opens the well known dialog for saving the part to the data base. Component type, component name, package description and manufacturer can be entered as usual and the process is finished. Regarding the buttons Edit and Debug please see the following chapters.


Quick creation of a package using the N-Pole type

If you are not a programmer and won't like to create a script on your own for a part which isn't represented here, you might use the package type N-Pole. Find it in the list here:

Der Gehäusetyp N-Pole
Image:Der Gehäusetyp N-Pole


Die Idee ist, einfach einen bestimmten Gehäuseumriss mit einer bestimmten Art und Anzahl Pads zu erstellen und in der Bauteildatenbank abzuspeichern. Zwar mag das Gehäuse nicht unbedingt einen Schönheitspreis gewinnen, aber der Generator hat Ihnen schon mal nicht wenige Konstruktionsschritte abgenommen. Diesen "Rohling" holt man später ins Layout herein, schiebt die Pads in Position und speichert erneut (ggf. unter einem anderen Namen) ab. Im Layout können Sie das Bauteil jederzeit verfeinern und erneut abspeichern.

How to create a package script

What is a package script?

Jedem Bauteiltypen, den Sie in der Liste zur Auswahl finden, liegt genau ein Script zugrunde. Was man also im Dialogfenster bei Auswahl eines bestimmten Bauteiltyps sieht, ist durch ein Script bestimmt. Ein Gehäusescript ist ein Programm, das den geometrischen Zusammenhang der Zeichnungselemente eines Gehäuses beschreibt. Script heißt es deswegen, weil es textbasiert hinterlegt ist. Man erstellt ein Script nicht für ein einzelnes, kompliziertes Gehäuse, sondern für eine Gattung, einen Gehäusetypen. Ein solcher ist nach gleichartigen Regeln aufgebaut, seine endgültige äußere Erscheinung wird aber nur von wenigen Parametern bestimmt. Man ruft das Script des vorliegenden Bauteiltyps auf durch betätigen des Knopfes: Button edit.jpg

Sie können es modifizieren, unter einem anderen Namen abspeichern ("Speichern als...") und dann verwenden. Beim erneuten Öffnen des Gehäuse-Generator-Dialoges erscheint Ihr Script später im Auswahlfenster.


Der Knopf: Button debug.jpg öffnet den "Debugger" des Scriptes.

Debug Dialog
Image: Der Debug Dialog

Wenn Sie im Debug-Dialog die Taste "Step" betätigen, gehen Sie schrittweise durch das Script und sehen sofort die Auswirkungen einer jeden Script-Zeile. Wenn also Fehler im Script auftreten sollten, können Sie sie leicht erkennen und schnell beseitigen. Im obigen Dialog beispielsweise ist Zeile 52 zuständig für den horizontalen Strich am rechten Ende des Gehäuseumrisses.

Der Aufbau eines Skriptes an einem Beispiel

Für den Bauteiltyp SIL (Single-In-Line) hat das Script folgende Gestalt (Syntax linke Spalte, Erklärung rechte Spalte):

Zeilenweise Syntax des Scriptes Erklärung
01 Script:"SIL (Single-In-Line)" Name des Scripts, der oben in der Auswahlbox gezeigt wird. Wirkt erst beim nächsten Öffnen des Generators.
02 Hint:"Single-In-Line SIL/SIP THT packages" Hinweis, der oben neben der Auswahlbox gezeigt wird.
03 Comment:"TARGET 3001! package script, Unit mm" Alles Folgende in dieser Zeile ist Kommentar
04 Author:"Harald Friedrich" Autor des Scriptes
05 Date:"28.11.2013" Datum der letzten Änderung. Muss manuell geführt werden.
06 Image:"SIL.png" Dateiname des Imagees, das links gezeigt wird. PNG-Image immer 350x580 Pixel.
07 Num:N,7,"Number of pins",Edt Numerische Variable deklarieren. Hier wird das Eingabefeld "Number of pins" definiert. Name, Defaultwert, Hinweis, Anzeige. Anzeige fehlt=wird nicht gezeigt, EDT=editierbar, RDO=Read-Only. Variablennamen müssen mit einem oder mehreren Buchstaben beginnen. Dann können Ziffern folgen. Groß- und Klein-Schreibung wird nicht unterschieden.
08 Num:W,2.5,"Width of case",Edt dito. Hier wird das Eingabefeld "Width of case" definiert.
09 Num:L,18,"Length of case",Edt dito. Hier wird das Eingabefeld "Length of case" definiert.
10 Num:H,5.1,"Height of case",Edt dito. Hier wird das Eingabefeld "Height of case" definiert.
11 Num:P,2.54,"Pitch of pins",Edt dito. Hier wird das Eingabefeld "Pitch of pins" definiert.
12 Num:A,0.6,"Width or radius of pins",Edt dito. Hier wird das Eingabefeld "Width or radius of pins" definiert.
13 Num:B,0.3,"Thickness of pins or zero",Edt dito. Hier wird das Eingabefeld "Thickness of pins or zero" definiert.
14 Num:C,1.5,"Width of pads",Edt dito. Hier wird das Eingabefeld "Width of pads" definiert.
15 Num:D,2.5,"Height of pads",Edt dito. Hier wird das Eingabefeld "Height of pads" definiert.
16 Num:E,0.9,"Diameter of drill holes",Edt dito. Hier wird das Eingabefeld "Diameter of drill holes" definiert.
17 Num:F,0.1,"Distance to PCB",Edt dito. Hier wird das Eingabefeld "Distance to PCB" definiert.
18 Str:Col,"$225522","Package color",Edt Text-Variable deklarieren. Name, Defaultwert, Hinweis, Anzeige. Anzeige fehlt=wird nicht gezeigt, EDT=editierbar, RDO=Read-Only. Farben werden immer nach dem Muster $BBGGRR als Hexadezimalzahl angegeben. Die beiden B stehen für Blau, die beiden G für Grün und die beiden R für Rot.
19
Leerzeile
20 Comment:------------> Drawing
Kommentar: Hier beginnt die Syntax für das Gehäuse (Lötfüßchenmuster mit Gehäuseumriss)
21
Leerzeile
22 Name:("SIL-"+N+"/"+L+"x"+W+"x"+H)
So wird ein Vorschlag für den Gehäusenamen beim Generieren erzeugt. Es handelt sich um eine Zeichenkette =String. Das Sichtbare steht in Anführungszeichen. Das was durch Pluszeichen angehängt wird, sind Variable.
23 Type:"SIL / SIP (single in-line package)"
Gehäusetyp. Bitte aus der Datenbank aus package_types entnehmen.
24 Calc:X1=(N/2-0.5)*P
Berechnungen ankündigen. Variable=Ausdruck. Mehrere Berechnungen mit Komma trennen. Operatoren im Ausdruck: +, -, *, /, (), mathematische Funktionen s. u.
25 For:I,1,N
For-Schleife beginnen. Hierdurch werden iterativ das ausgeführt, was in Zeile 26 definiert Variablenname, Startwert, Endwert, (Schritt=1). Startwert und Endwert können Ausdrücke sein.
26 Pad:-X1+P*(I-1),0,C,D,E,I,All,Oct
Pad im Layout erzeugen. X, Y, Breite, Höhe, Bohrdurchmesser, Ebene, Form, Rotation, (Padname=), (Lötpaste=True), (Lötstopp=True).
27 EndFor
Ende der For-Schleife. For-Schleifen können auch geschachtelt sein (nested). Doppelpunkt optional.
28 Calc:X=L/2
Berechnungen ankündigen. Variable=Ausdruck. Mehrere Berechnungen mit Komma trennen. Operatoren im Ausdruck: +, -, *, /, (), mathematische Funktionen s. u.
29 Calc:Y=W/2
Berechnungen ankündigen. Variable=Ausdruck. Mehrere Berechnungen mit Komma trennen. Operatoren im Ausdruck: +, -, *, /, (), mathematische Funktionen s. u.
30 Line:-X,-Y,X,-Y,0.3
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung oben).
  • Ebenenfunktion: 3=Bestückung unten, 4=Bestückung oben, 12=Lötstopp oben, 15=Lötpaste oben, 16=Gold oben, 18=Kleber oben
31 Line:X,-Y,X,Y,0.3
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung oben).
  • Ebenenfunktion: 3=Bestückung unten, 4=Bestückung oben, 12=Lötstopp oben, 15=Lötpaste oben, 16=Gold oben, 18=Kleber oben
32 Line:X,Y,-X,Y,0.3
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung oben).
  • Ebenenfunktion: 3=Bestückung unten, 4=Bestückung oben, 12=Lötstopp oben, 15=Lötpaste oben, 16=Gold oben, 18=Kleber oben
33 Line:-X,Y,-X,-Y,0.3
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung oben).
  • Ebenenfunktion: 3=Bestückung unten, 4=Bestückung oben, 12=Lötstopp oben, 15=Lötpaste oben, 16=Gold oben, 18=Kleber oben
34 Calc:X=X1-P/2
Berechnungen ankündigen. Variable=Ausdruck. Mehrere Berechnungen mit Komma trennen. Operatoren im Ausdruck: +, -, *, /, (), mathematische Funktionen s. u.
35 Line:-X,Y,-X,-Y,0.3
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung oben).
  • Ebenenfunktion: 3=Bestückung unten, 4=Bestückung oben, 12=Lötstopp oben, 15=Lötpaste oben, 16=Gold oben, 18=Kleber oben
36 Text:-X+1.5,W/2+1,2.5,1.6,0,"!Name","DIN-ISO-ANSI"
Text im Layout ausgeben. X, Y, Höhe, Breite, Rotation, Textinhalt, Zeichensatz, (Ebenenfunktion=4=Bestückung oben).
37 Text:-X+1.5,-W/2-3.2,2.5,1.6,0,"!Value","DIN-ISO-ANSI"
Text im Layout ausgeben. X, Y, Höhe, Breite, Rotation, Textinhalt, Zeichensatz, (Ebenenfunktion=4=Bestückung oben).
38 Comment:------------> 3D
Kommentar: Hier beginnt die Syntax für die 3D-AbImageung
39 Solid:0,0,F,0,0,F+H,L,W,Col,0.4
Quader in 3D ausgeben. X1, Y1, Z1, X2, Y2, Z2, Breite, Höhe, Farbe, (Abrundungsradius=0). Es gilt die Syntax für die 3D-Modellierung
40 Text3D:-X1+1.5,-0.5,F+H+0.01,1.2,0.5,0,"DIN-ISO-ANSI","!Value",$FFFFFF
Text in 3D ausgeben. X1, Y1, Z1, Höhe, Breite, Rotation, Zeichensatz, Textinhalt, Farbe. Es gilt die Syntax für die 3D-Modellierung
41 Cylinder:-X1,0,F+H-0.1,-X1,0,F+H+0.01,1,$FFFFFF
Zylinder in 3D ausgeben. X1, Y1, Z1, X2, Y2, Z2, Durchmesser, Farbe, (Abrundungsradius=0). Es gilt die Syntax für die 3D-Modellierung
42 For:I,1,N
For Schleife zum iterativen Erzeigen der 3D Bauteilbeinchen
43 Calc:X2=-X1+P*(I-1),Y2=0,Z=(F+H)/2
Ankündigung einenr Berechnung
44 IF:B>0
If-Abfrage beginnen. Ausdruck Operator Ausdruck. Operatoren: =, <, >, <=, >=. Mehrere Bedingungen mit & (=and) verbindbar.
45 Solid:X2,Y2,-3,X2,Y2,0.1,A,B,$CCCCCC,0
Quader in 3D ausgeben. X1, Y1, Z1, X2, Y2, Z2, Breite, Höhe, Farbe, (Abrundungsradius=0). Es gilt die Syntax für die 3D-Modellierung
46 ELSE
Else Zweig. Doppelpunkt optional.
47 Cylinder:X2,Y2,-3,X2,Y2,0.1,A,$CCCCCC
Zylinder in 3D ausgeben. X1, Y1, Z1, X2, Y2, Z2, Durchmesser, Farbe, (Abrundungsradius=0). Es gilt die Syntax für die 3D-Modellierung
48 ENDIF
Ende der If-Abfrage. If-Abfragen können geschachtelt sein (nested). Doppelpunkt optional.
49 EndFor Ende der For-Schleife. For-Schleifen können auch geschachtelt sein (nested). Doppelpunkt optional.



Bitte beachten: Die aktuell vorliegenden Variablenwerte für das konkrete SIL-Bauteil findet man im Debugger-Dialog auf der rechten Seite.

Skript-Befehle

Allgemeines

Textuelle Angaben (=Zeichenkette=String) werden immer in doppelte Anführungszeichen gesetzt. Beispiel: "Hallo".

Koordinaten-Angaben sind immer in der Einheit [mm]. Wenn man auf die X-Y-Ebene schaut, zeigt die positive Z-Achse nach oben zum Betrachter. Alle Zahlen werden jederzeit auf 1/1000 gerundet.

Winkel-Angaben sind immer in 0...360 Grad [°]. Der Drehsinn ist immer CCW = CounterClockWise = gegen den Uhrzeigersinn. 0° ist immer Richtung Osten. Es gilt die Rechte-Hand-Regel für alle Achsen.

Farben werden immer nach dem Muster $BBGGRR als Hexadezimalzahl angegeben. Die beiden B stehen für Blau, die beiden G für Grün und die beiden R für Rot.


Script Befehle im Einzelnen

Folgende Script-Befehle gibt es derzeit:


Wenn ein Array z. B. n=16 Pole hat, braucht es unten Pad 1 und Pad 8=n/2 und eine Reihe von Pad 2 bis Pad 7=n/2-1.
Oben benötigt man rechts Pad 9=n/2+1 und Pad 16=n. Dazwischen die Reihe von Pad 10=n/2+2 bis Pad 15=n-1.
Im 3D braucht es ein linkes und ein rechtes Endstück und (n-4)/2 Zwischenstücke.


Speichern und aktivieren des Skriptes

Ein Script wird im Edit-Dialog erzeugt, verändert und gespeichert. Speicherort ist das Verzeichnis:

Benutzer\Name\AppData\Roaming\ibf\TarVxx\<Ausbaustufe>\PCK_gen

An diesem Ort werden auch die *.png- Imageer gespeichert, die die technische Zeichnung beinhalten und die im Dialog links dann auftauchen. Es ist sinnvoll (kein Muss), wenn das Image den gleichen Namen hat wie das Script.

Ein Script aus der Liste löschen

Löschen Sie es einfach aus diesem Verzeichnis:

Benutzer\Name\AppData\Roaming\ibf\TarVxx\<Ausbaustufe>\PCK_gen

Dann ist es beim nächsten Öffnen auch aus der Liste verschwunden.






Zu diesem Thema habe ich eine Frage