Forum: Platinen Altium - Freiraum für NetClass außer am Footprint


von Klaus R. (klara)



Lesenswert?

Hallo,
inzwischen weiß ich wie man bei einer NetClass Abstand zum Polygon 
einrichtet. Allerdings möchte ich die Regel am Footprint beenden, da 
sonst einige Pads nicht mehr mit GND versorgt werden.

Ich habe dazu um den Footprint das Polygon RPI4_A_L01_P014 gelegt. Mit 
Hilfe des Query Helper habe folgende Query erstellt.

InNetClass('SD') and not InNamedPolygon('RPI4_A_L01_P014')

In der Regel habe ich vorerst nur Copper - Track mit einem Wert 
versehen. Der Begriff "InNetClass('SD')" schafft mir den Freiraum ein 
wie man es auch erwartet. Jetzt will ich mit "not 
InNamedPolygon('RPI4_A_L01_P014')" den Bereich begrenzen.

InNamedPolygon interpretiere ich so, alles was innerhalb des Polygons 
liegt ist nicht von der Regel betroffen.

Ich komme da einfach nicht weiter.
mfg Klaus

von Taz G. (taz1971)


Lesenswert?

InNamedPolygon, das sind alle Objekte aus denen das Polygon aufgebaut 
ist. Bei einem solid Polygon sind das die Copper Regions (sprachlich 
würde man sagen, das ist das Polygon). Not InPolygon, das sind dann alle 
Objekte außer den Polygon (Copper Regions) also der komplette Rest 
deiner Platine alle Tracks,Vias,Pads usw.

"einer NetClass Abstand zum Polygon einrichtet. Allerdings möchte ich 
die Regel am Footprint beenden"
Einfach umsetzen,
Erstes Objekt: Polygon mit einem Netz in NetClass X
Zweites Objekt: Footprint (oder Bauteil X)
1.Query:  " InNetClass('SD') and InNamedPolygon('blbla') "  (oder InPoly 
für alle, keine Beschrankung auf ein Polygon)
2.Query: " HasFootprint('DIP16') "   (oder für ein bestimmtes Bauteil 
InComponent('U1'))
Du kannst den Abstand für alle Felder gleich einstellen, durch InPoly 
ist eine Seite der Matix schon auf Copper begrenzt.

In deinem Screenshot hast Du für z.b. für Tracks in NetClass('SD') zu 
alle anderen Tracks einen Abstand von 0 definiert.

Ich hab gerade noch mal gelesen, "einige Pads werden nicht mit GND 
gesorgt". Das ist also ein 'GND' Polygon. Dann ist das erste Query 
natürlich " InNet('GND') and InPoly " . Beim dem zweiten Objekt bleibt 
es bei den den Pads vom Footprint('X') oder den Pads vom Component('x')

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Und wenn ich mir den Screenshot so anschaue, dann solltest du dir deine 
Polygoneinstellungen mal genauer ansehen. Insbesondere solche Optionen 
wie "Remove dead copper" oder "Remove Island" und evt. sinnvolle Werte 
eintragen.

von Klaus R. (klara)


Lesenswert?

@ Wühlhase
Die Polygoneinstellungen hatte ich auch schon durchgetestet und keinen 
Erfolg gehabt.

@ Taz
Zu Deinen Vorschlägen komme ich erst spät nachmittags. Sie sehen 
erfolgsversprechend aus. Passende Beispiele findet man leider nicht so 
einfach.
1
Erstes Objekt: Polygon mit einem Netz in NetClass X
2
Zweites Objekt: Footprint (oder Bauteil X)
3
1.Query:  " InNetClass('SD') and InNamedPolygon('blbla') "  (oder InPoly 
4
für alle, keine Beschrankung auf ein Polygon)
5
2.Query: " HasFootprint('DIP16') "   (oder für ein bestimmtes Bauteil 
6
InComponent('U1')

Kommen beide Query's in eine Rule oder brauche ich da jeweils eine Rule?
mfg Klaus

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Klaus R. schrieb:
> @ Wühlhase
> Die Polygoneinstellungen hatte ich auch schon durchgetestet und keinen
> Erfolg gehabt.

Ich meinte das auch eher generell. Ich sehe da mindestens eine isolierte 
Cu-Insel, jede Menge totes Cu (Halbinseln) und Stellen, die dir der DRC 
am Ende anmeckern sollte.


Klaus R. schrieb:
> Kommen beide Query's in eine Rule oder brauche ich da jeweils eine Rule?
> mfg Klaus

Beide Querys kommen natürlich in eine Regel. Das ergibt anders keinen 
Sinn, jede Regel ist für sich abgeschlossen und werden untereinander 
nicht weiter referenziert. Du kannst nicht zwei Regeln auf ein 
gemeinsames Problem anwenden.

von Wühlhase (Gast)


Lesenswert?

Und ansonsten gibt es noch den Queryhelper...der ist recht hilfreich, 
wenn man eine Query nicht selber formulieren kann.

Außerdem kann dir das Find-Similar-Tool Querys erzeugen. Unten links 
gibt es einen Haken, da steht "Create Expression" oder sowas in der Art. 
Diese String kannst du in dein Filterpanel eingeben und dann siehst du 
auch gleich, ob die Query stimmt oder ob die Regel versehentlich auch 
auf Bereiche angewendet wird, wo du das vielleicht gar nicht 
beabsichtigst.

von Taz G. (taz1971)


Angehängte Dateien:

Lesenswert?

Klaus R. schrieb:
> Kommen beide Query's in eine Rule oder brauche ich da jeweils eine Rule?
> mfg Klaus

Es ist EINE Abstandregel, die den Abstand von einem bestimmten Polygon 
zu Bauteilen mit einem bestimmten Footprint definiert. Siehe Screenshot

PS: Wenn Du InNamedPolygon verwendest ist das eindeutig, es gibt nur ein 
Polygon mit diesem Namen. Also brauchtst Du keine weitere Einschräkung 
dazu wie: AND InNetClass oder InNet(x).
InPoly sind alle Polygone, hier willst Du vielleicht weiter einschränken 
(auf Lagen, Netze oder Netzklassen)

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Taz G. schrieb:
> InPoly sind alle Polygone, hier willst Du vielleicht weiter einschränken
> (auf Lagen, Netze oder Netzklassen)

Gibt es eigentlich irgendwas, wo man das nachschlagen kann? Als ich mit 
Queries angefangen habe, habe ich sowas mal gesucht aber nirgendwo 
gefunden.

von Klaus R. (klara)



Lesenswert?

Taz G. schrieb:
> Es ist EINE Abstandregel, die den Abstand von einem bestimmten Polygon
> zu Bauteilen mit einem bestimmten Footprint definiert. Siehe Screenshot

Hallo Taz,
voller Erfolg!

Warum die Query in einer Zeile geschrieben nicht so funktionierte bleibt 
mir noch unklar.

InNetClass('SD') and not InNamedPolygon('RPI4_A_L01_P014')

Was funktioniert ist:
First Object: InNetClass('SD')
Second Object: not InNamedPolygon('RPI4_A_L01_P014')

Im ersten Screeshot hatte ich das Polygon noch rechts zu nah am 
Footprint. So ragte die Abstandregel Copper-Track noch etwas über das 
Polygon hinaus. Im zweiten Screenshot habe ich das dann verbessert.

Auch an Wühlhase ein Danke.
mfg Klaus

von Taz G. (taz1971)


Lesenswert?

Wühlhase schrieb:
> Taz G. schrieb:
>> InPoly sind alle Polygone, hier willst Du vielleicht weiter einschränken
>> (auf Lagen, Netze oder Netzklassen)
>
> Gibt es eigentlich irgendwas, wo man das nachschlagen kann? Als ich mit
> Queries angefangen habe, habe ich sowas mal gesucht aber nirgendwo
> gefunden.

Sorry für die späte Antwort.
Es gibt Videos und Dokumente für Design Rules, aber nichts aktuelles 
oder hilfreiches für uns. Das sind alles Basics, die wir schon lange 
hinter uns gelassen haben. Und gerade das Problem mit Polygonen wird 
nirgens so richtig beschrieben.
Ich glaube es ist wichtig zu verstehen, dass man mit den beiden Queries 
die beiden Objekte heraus filtert, zwischen denen man einen Abstand 
haben möchte.
Ich möchte einen Abstand zwischen einem VIA und einem Pad haben. Also 
wie lautet mein erstes Query um alle Objekte so zu filtern das nur VIAs 
herauskommen ? (IsVIA). Mein zweites Objekt soll ein Pad sein => zweites 
Query (IsPAD). Komplizierter wird es, wenn man ein ganz bestimmtes 
VIA,Pad oder Polygon ansprechen möchte.

von Klaus R. (klara)


Lesenswert?

Hallo TAZ,
Danke für die zusätzlichen Infos. Ich habe mir gleich in der Altium Doku 
die Object Type Checks angeschaut. Das dürften 138 Abfragen sein. Nun 
ja, da wird es einem nicht langweilig.

Taz G. schrieb:
> Ich möchte einen Abstand zwischen einem VIA und einem Pad haben. Also
> wie lautet mein erstes Query um alle Objekte so zu filtern das nur VIAs
> herauskommen ? (IsVIA). Mein zweites Objekt soll ein Pad sein => zweites
> Query (IsPAD). Komplizierter wird es, wenn man ein ganz bestimmtes
> VIA,Pad oder Polygon ansprechen möchte.

Mit logischen Begriffen komme ich schon klar. Nur die praktische 
Anwendung in Altium ist nicht immer so wie ich es denke. Aber beim 
letzten Projekt hat es ja letztlich dank Deinen Tipps funktioniert.😎
mfg Klaus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.