Hallo, ich habe ein kleines Verständnisproblem mit den Design-Rules von Altium. Hier mal die Regel: First Object: InLayerClass('Top and Bottom') AND InNetClass('Extern') Second Object: InLayerClass('Top and Bottom') AND (InNetClass('All Nets') AND NOT InNetClass('EXTERN')AND NOT InNetClass('PE')) Nun habe ich die Regel bewusst verletzt, indem ich einen Track auf Toplayer der Netzklasse "Extern" mit einem der Netzklasse "Intern" zu dicht herangeführt habe. Warum löst die Regel aus? Die Abfrage: InLayerClass('Top and Bottom') müsste doch strenggenommen immer false sein, da nur entweder Top oder Bottom gleichzeitig erfüllt ist. Altium scheint die Regel selbsttätig als InLayerClass('Top or Bottom') zu behandeln, also mit einer Oder-Verknüpfung, die dort aber nicht steht. Auch wenn man die Regel InLayerClass() aufstellt und sich die Vorschläge zur Autovervollständigung per Space-Taste anzeigen lässt, dann gibt Altium entweder "Mid" oder "Top and Bottom" zur Auswahl, aber kein "Top or Bottom" Wenn man die Regel selbsttätig zu "Top or Bottom" ändert, funktioniert sie übrigens gar nicht mehr.
Alzium schrieb: > Die Abfrage: InLayerClass('Top and Bottom') müsste doch strenggenommen > immer false sein, da nur entweder Top oder Bottom gleichzeitig erfüllt > ist. Nein. Es gibt eine Layer-Klasse, die "Top and Bottom" heißt. Es ist aber nur eine Layerklasse, die den Top-Layer UND den Bottom-Layer beinhaltet. Und in dieser einen Layer-Klasse kann ein Objekt natürlich vorkommen oder nicht.
Wühlhase hat es ja schon geschrieben, wenn es in Anführungszeichen steht ist es ein String z.B. 'Max und Moritz'. Mich wundert es nur, dass Du eine Klasse mit Namen 'Top and Bottom' hast, die habe ich nicht per Default. Aber warum ich antworte ist, weil ich glaube InLayerClass('Top and Bottom') ist nicht was Du willst. Objekte auf dem Multilayer wie Pads und VIAs werden nicht erfasst. Onlayer() wäre daher auch nicht das Richtige. Ich denke, was Du haben möchtest ist (ExistsOnLayer('Top Layer') or ExistsOnLayer('Bottom Layer')) and ... PS: InNetClass('All Nets') lässt sich abkürzen durch InAnyNet. Zudem nimmst Du NoNet Objekte damit aus, ich weiss nicht ob bewusst. Einfach mal überlegen ob NoNet Element von dieser Rule betroffen sein sollen oder nicht.
:
Bearbeitet durch User
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.