|
Lisp : Ignoriere alles außer...
C4DP4P57 am 10.12.2018 um 13:46 Uhr (1)
So ganz kapiere ich es nicht...um nicht zu sagen: Wo bin ich und was mach ich hier überhaupt :-DWie kann ich (if (wcmatch (strcase LayoutName) "E_*,SM_*") testen? Ich habe mal nur (wcmatch (strcase LayoutName) "E_*,SM_*") in einem Layout getestet (kann man das so?), aber es gibt immer T zurück, egal ob das Layout mit E_* oder Sm_* anfängt.(setvar "CTAB" LayoutName) setze das Layout mit dem Namen wasauchimmersichhinterderVariable LayoutName verbirgt aktuellBrauch ich dann das (foreach Layout... noch? Welche ...
|
| In das Form Lisp wechseln |
|
Lisp : Ignoriere alles außer...
C4DP4P57 am 11.12.2018 um 12:02 Uhr (1)
...ich prüfe hier ob der Layoutname dem Muster "E_*" oder "SM_*" entspricht... Ich dachte bei E_* UND bei SM_* soll das Layout bearbeitet werden, nur bei allen anderen nicht?Ja soll es, überrascht hat mich, das es auch bei Layouts die nicht mit "E_*" oder "SM_*" anfangen T zurück gibt. Nachgesehen Ja, verstanden anscheinend noch nicht.Das foreach hast du doch um "einmal für alle Layout(name)" zu realisieren. Du hast dir schon mal angesehen was FOREACH oder CTAB ist und was (layoutlist) zurück gibt?Foreach ...
|
| In das Form Lisp wechseln |
 |
Lisp : Ignoriere alles außer...
C4DP4P57 am 07.12.2018 um 16:33 Uhr (15)
Hallo,kann man in Lisp irgendwie sagen "ignoriere alles außer..."?Hintergrund ist folgender: Das LISP schaltet mir in allen Layouts die Layer entsprechend der ersten zwei Zeichen des Layoutnamens (diese sind in der Regel bei Layout und Layernamen gleich).Das Problem sind Layoutbezeichnungen zu denen es keine Layerentsprechung gibt. Im Fall dieses Codes wären das alle Layouts außer die mit "E_*" und "Sm_*" beginnen.Ich will praktisch erreichen, dass der Code nicht nach Layernamen sucht, die nicht mit "E_*" ...
|
| In das Form Lisp wechseln |
|
Lisp : Ignoriere alles außer...
C4DP4P57 am 10.12.2018 um 10:47 Uhr (1)
Zitat:Original erstellt von cadffm:mal sehen..Ignoriere Layout deren Namen..Mögliche Lösung: IF(if (wcmatch (strcase LayoutName) "E_*,SM_*") (progn (setvar "CTAB" LayoutName) (alert "DoMyLayoutStuff") ))uOk, das ist mir dann doch noch etwas zu Hoch. Ich habe zwar was zu den einzelnen Funktionen gelesen, aber ich wüsste jetzt gar nicht wo ich die Zeilen einsetzen sollte und ob das geht oder ich noch etwas dazu Tippen oder an meinem Code ändern muss.Trotzdem vielen Dank, wenn ichs versteh ...
|
| In das Form Lisp wechseln |
|
Lisp : Ignoriere alles außer...
C4DP4P57 am 11.12.2018 um 16:57 Uhr (1)
Das ich es so schreiben muss (foreach LayoutName (layoutlist) habe ich mir gedacht, die Variable Layout hatte ja nirgens Verwendung.Aber das(setq Lay12 (strcat(substr LayoutName 1 2) "*")) habe ich gar nicht auf dem Schirm gehabt. Vielen Dank!!!Code:(setvar "CTAB"(car(layoutlist)))(command "aflayer" "f" "E_*,Sm_*" "al" "")Das habe ich jetzt anders gelöst, das war noch so eine kleine Baustelle die ich später ändern wollte.So bleiben in allen Layouts die nicht mit E_* oder Sm_* anfangen die Layer geschaltet ...
|
| In das Form Lisp wechseln |