Hallo Michael,
Da sind verschiedene Dinge, die ich anders machen wuerde.
Code:
:check_function
#'(lambda (blend)
(setf hk_filter (getf (sd-inq-blend-face blend) :radius))
(unless (member hk_filter hk_radien_liste)
(push hk_filter hk_radien_liste))
: ok ;ein Rueckgabewert
) ;;lambda
Wozu hast du den 2ten lambda-Block geschrieben? Das funktioniert so nicht. Ich habe einfach mal ganz normale debug-Ausgaben in den Code gebaut (mit print) und da kann man sehen, der Code wird nicht durchlaufen.
Die check-function bekommt eine Flaeche uebergeben und da fragst du den Radius der Blend-Flaechen ab. Das einzige was jetzt noch fehlt ist zu entscheiden, ob der gefundene Radius bereits in der Liste ist oder nicht. Da kann man einfach schreiben (unless (member .....))
Die cond-Anweisung waere aber auch ok.
Zum Schluss habe ich noch das keyword :filter rausgenommen. Der Rueckgabewert der check-function ist immer der letzte 'Wert' der im Code durchlaufen wird. Eine Aufeinanderfolge von : ok und :filter ist also nicht sinnvoll.
Hoffe das ist es, was du auch erreichen wolltest.
Gruss Dorothea
P.S. Denk dir bitte die : und ok zusammen als ein keyword.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP