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
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
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.
@ 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
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.
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.
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
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.