Gehäuse-Generator
Film zum Thema (3:42 Min) |
Der Gehäuse-Generator-Dialog
Der Gehäuse-Generator dient dem schnellen Erstellen von Bauteilgehäusen (=Lötfüßchenmuster) einschließlich 3D-Ansicht. Er befindet sich im Layoutmenü: Gehäuse und öffnet wie folgt:
Bild: Der Gehäuse-Generator-Dialog
Er besteht aus vier Teilen, links die Liste der Gehausevorlagen, daneben eine technische Gehäusezeichnung, die die Definition der Parameter des Bauteils enthält. Eine solche Zeichnung findet man in jedem beliebigen Bauteildatenblatt. Man kann dieses Bild hier nicht manipulieren. Mitte rechts findet sich die Liste der Parameter, die es gemäß der individuellen Gehäusespezifikation zu füllen gilt. Sie ist die Grundlage für die spätere Gestalt des Gehäuses. Die Kürzel links vom Gleichheitszeichen entsprechen den Variablen/Parametern der technischen Zeichnung. Gant rechts dann das Gehäusebild wie es sich später im Layout darstellt, darunter die 3D Ansicht.
Welchen Gehäusetypen man erzeugen will, wählt man aus der Liste links:
Bild: Die Liste der Gehäusetypen
Wählt man beispielsweise DIL (Dual-In-Line) aus der Liste, verändert sich die Dialogansicht so, dass ein DIL-Gehäuse erzeugt werden kann.
Bild: Die Dialogansicht für ein DIL-Gehäuse
Der Knopf Einheit mm (oben mitte) dient nicht dem Umschalten auf imperiale Maßeinheit (Zoll) sondern verdeutlicht, dass sich im Bereich Bauteilzeichnung metrische Maßeinheit durchgesetzt hat. Demzufolge ist kein zölliges Zeichnen in diesem Generator möglich.
Die Knöpfe Standard, Laden, Speichern im Zentrum des Dialoges beziehen sich auf die aktuell vorliegende gesamte Feldbelegung. Man kann also bestimmte Parametersets unter eigenem Namen speichern.
Der Knopf Generieren öffnet den bekannten Dialog für den Export des Gehäuses in die Datenbank. Gehäusetyp, Gehäusename, Gehäusebeschreibung und Hersteller können dann wie üblich angegeben werden und der Vorgang ist beendet. Was es mit den Knöpfen Edit und Debug auf sich hat, wird im Folgenden erklärt.
Ein schnelles Bauteil mit der N-Pole-Variante erzeugen
Unterschiedliche Gehäusetypen der Liste oben links basieren auf einem "Skript". Sie können einen neuen Bauteiltypen ins Leben rufen, indem Sie ein Skript in einem speziellen TARGET-Verzeichnis abspeichern. Wer kein Programmierer ist und keine Scripte erstellen will, wendet einfach den Bauteiltyp N-Pole an. In der Liste finden Sie ihn hier:
Die Idee des N-Poles 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 einige 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 ein Bauteil jederzeit verfeinern und erneut abspeichern.
Wie erstellt man ein eigenens Gehäusescript
Was ist ein Gehäusescript?
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:
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: öffnet den "Debugger" des Scriptes.
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 Bildes, das links gezeigt wird. PNG-Bild 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 ist: 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, Padnummer, 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).
|
31 Line:X,-Y,X,Y,0.3 |
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung 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).
|
33 Line:-X,Y,-X,-Y,0.3 |
Linie im Layout zeichnen. X1, Y1, X2, Y2, (Linienbreite=0.3), (Ebenenfunktion=4=Bestückung 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).
|
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-Abbildung |
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:
- SCRIPT: Name des Scripts, der oben in der Auswahlbox gezeigt wird. Wirkt erst beim nächsten Öffnen des Generators.
- HINT: Hinweis, der oben neben der Auswahlbox gezeigt wird.
- COMMENT: Alles Folgende in dieser Zeile ist Kommentar
- AUTHOR: Autor des Scriptes
- DATE: Datum der letzten Änderung. Muss manuell geführt werden.
- IMAGE: Dateiname des Bildes, das links gezeigt wird. PNG-Bild immer 350x580 Pixel.
- TYPE: Gehäusetyp. Bitte aus der Datenbank aus package_types entnehmen.
- NAME: So wird ein Vorschlag für den Gehäusenamen beim Generieren erzeugt.
- NUM: Numerische Variable deklarieren. 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.
- STR: Text-Variable deklarieren. Name, Defaultwert, Hinweis, Anzeige. Anzeige fehlt=wird nicht gezeigt, EDT=editierbar, RDO=Read-Only.
- CALC: Berechnungen ankündigen. Variable=Ausdruck. Mehrere Berechnungen mit Komma trennen. Operatoren im Ausdruck: +, -, *, /, (), mathematische Funktionen:
- ABS(x) Absolutwert,
- SIN(x) Sinus [°],
- ASIN(x) Arcus Sinus,
- COS(x) Cosinus,
- ACOS(x) Arcus Cosinus,
- TAN(x) Tangens,
- ATAN(x) Arcus Tangens,
- MAX(x,y) Größerer Wert der Ausdrücke x und y,
- MIN(x,y) Kleinerer Wert der Ausdrücke x und y,
- INT(x) Gerundete Ganzzahl,
- SQR(x) Quadrat,
- SQRT(x) Quadratwurzel,
- EVEN(x) 1 wenn gerade, 0 wenn ungerade,
- ODD(x) 1 wenn ungerade, 0 wenn gerade.
- Berechnungen für Zeichenketten kennen nur den Operator + für Anhängen und die folgenden Funktionen:
- NCH(i) Number-Character: 1=A, 2=B, ... 20=Y, 21=AA, 22=AB, ... 40=AY, 41=BA ... (z.B. für die Zeilen-Namen von BGA-Gehäusen ohne I,O,Q,S,X und Z)
- NCZ(i) Number-Character: 1=A, 2=B, ... 21=Z, 22=AA, 23=AB, ... 42=AZ, 43=BA ... (z.B. für die Zeilen-Namen von BGA-Gehäusen ohne I,O,Q,S und X aber mit Z)
- CHR(i) ASCII-Zeichen: 33=!, ... 65=A, 66=B, ... 90=Z, ... 97=a, 98=b, ... 122=z, ... 219=Ω
- INT(i) Gerundete Ganzahl
- REAL(i) Dezimalzahl mit maximal 3 Stellen
- FOR: For-Schleife beginnen. Variablenname, Startwert, Endwert, (Schritt=1). Startwert und Endwert können Ausdrücke sein.
- ENDFOR: Ende der For-Schleife. For-Schleifen können auch geschachtelt sein (nested). Doppelpunkt optional.
- IF: If-Abfrage beginnen. Ausdruck Operator Ausdruck. Operatoren: =, <, >, <=, >=. Mehrere Bedingungen mit & (=and) bzw. | (=or) verbindbar (gleichwertig!).
- ELSE: Else Zweig. Doppelpunkt optional.
- ENDIF: Ende der If-Abfrage. If-Abfragen können geschachtelt sein (nested). Doppelpunkt optional.
- PAD: Pad im Layout erzeugen. X, Y, Breite, Höhe, Bohrdurchmesser, Padnummer, Ebene, Form, Rotation, (Padname=), (Lötpaste=True), (Lötstopp=True).
- Ebene = Top oder Bot oder All
- Form = Rnd oder Oct oder Rct oder Ovl
- Lötpaste = True oder False
- Lötstopp = True oder False
- Angaben in Klammern sind optional. Default wird verwendet.
- LINE: 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
- ARC: Bogen im Layout zeichnen. X, Y, Radius, Linienbreite, Startwinkel, Endwinkel, (Ebenenfunktion=4=Bestückung oben).
- CIRC: Scheibe im Layout zeichnen. X, Y, Radius, (Ebenenfunktion=4=Bestückung oben).
- TRI: Dreieck im Layout zeichnen. X1, Y1, X2, Y2, X3, Y3, (Ebenenfunktion=4=Bestückung oben).
- RECT: Rechteck im Layout zeichnen. X, Y, Breite, Höhe, Rotation, (Ebenenfunktion=4=Bestückung oben).
- TEXT: Text im Layout ausgeben. X, Y, Höhe, Breite, Rotation, Textinhalt, Zeichensatz, (Ebenenfunktion=4=Bestückung oben).
- !NAME und !VALUE als Textinhalt werden später in den Namen und den Wert des Bauteils gewandelt.
- Zeichensatz= TARGET oder DIN-ISO-ANSI oder Arial oder Times New Roman ...
- SOLID: Quader in 3D ausgeben. X1, Y1, Z1, X2, Y2, Z2, Breite, Höhe, Farbe, (Abrundungsradius=0).
- CYLINDER: Zylinder in 3D ausgeben. X1, Y1, Z1, X2, Y2, Z2, Durchmesser, Farbe, (Abrundungsradius=0).
- TORUS: Bogen in 3D ausgeben. X oder Y oder Z, Xm, Ym, Zm, Radius, Durchmesser, Startwinkel, Endwinkel, Farbe.
- SPHERE: Kugel in 3D ausgeben. Xm, Ym, Zm, Durchmesser, Farbe.
- POLYGON3D: In Z-Richtung extrudiertes Polygon in 3D ausgeben. N, X1, Y1, X2, Y2, ... Xn, Yn, Z1, dZ, Farbe.
- TEXT3D: Text in 3D ausgeben. X1, Y1, Z1, Höhe, Breite, Rotation, Zeichensatz, Textinhalt, Farbe.
- 3D: Zeile für 3D zusammenbasteln.
- EXIT: Programm sofort beenden.
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- Bilder gespeichert, die die technische Zeichnung beinhalten und die im Dialog links dann auftauchen. Es ist sinnvoll (kein Muss), wenn das Bild 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.