(in-package :ROWI) (use-package :OLI) (sd-defdialog 'rowi_teile_umfärben :dialog-title "Teile umfärben" :variables '( (rowi_bgr :value-type :assembly :prompt-text "Bitte Baugruppe angeben" :title "Baugruppe" ) (rowi_quel :value-type :part :prompt-text "Bitte das Quellteil angeben" :title "Quellteil" :after-input (setq quellfarbe (sd-inq-part-color rowi_quel)) ) (rowi_teil ;:value-type :part :selection (*sd-part-seltype*) :face-part-allowed nil :multiple-items t :show-select-menu t :incremental-selection t :prompt-text "Bitte die Zielteil(e) angeben" :title "Zielteil" ) (rowi_v1 :expand-shrink (rowi_bgr rowi_quel) :title "bestimmte Teile einer BG" :expand-shrink-toggle-type :boolean :initial-value T :after-input (setq rowi_v2 NIL) ) (rowi_v2 :expand-shrink (rowi_teil) :title "ausgewaehlte Teile" :expand-shrink-toggle-type :boolean :initial-value NIL :after-input (setq rowi_v1 NIL) ) ("Zielfarbe") (rowi_farb :value-type :rgb-color :prompt-text "Bitte Zielfarbe auswählen" :title "Zielfarbe" ) ("Farbe vergeben") (rowi_grundfarbe_vergeben :value-type :grouped-boolean :title "Basis" :initial-value T ) (rowi_exemplarfarbe_vergeben :value-type :grouped-boolean :title "Exemplar" :initial-value NIL ) ("Farbe entfernen") (rowi_grundfarbe_entfernen :value-type :grouped-boolean :title "Basis" :initial-value NIL ) (rowi_exemplarfarbe_entfernen :value-type :grouped-boolean :title "Exemplar" :initial-value T ) ) :local-functions '( (rowi_suche_in_baugruppe (rowi_bgr) (setf teiletyp (sel_item-type rowi_bgr)) (if (and (equal teiletyp *sd-part-seltype*) (equal (sd-inq-part-color rowi_bgr) quellfarbe)) (progn (if rowi_grundfarbe_vergeben (part_prop rowi_bgr :BASE_COLOR rowi_farb) ) (if rowi_exemplarfarbe_vergeben (part_prop rowi_bgr :COLOR rowi_farb) ) (if rowi_grundfarbe_entfernen (part_prop rowi_bgr :BASE_COLOR :OFF) ) (if rowi_exemplarfarbe_entfernen (part_prop rowi_bgr :COLOR :OFF) ) ) ; end progn (when (equal teiletyp *sd-assembly-seltype*) (progn (setf sohn (sd-inq-obj-children rowi_bgr)) (dolist (vater sohn) (rowi_suche_in_baugruppe vater) ) ) ; end progn ) ; end when ) ; end if ) ; end rowi_suche...... (rowi_suche_in_teilen () ;(display rowi_farb) (progn (dotimes (counter (length rowi_teil) "done") (if rowi_grundfarbe_vergeben (part_prop (nth counter rowi_teil) :BASE_COLOR rowi_farb) ) (if rowi_exemplarfarbe_vergeben (part_prop (nth counter rowi_teil) :COLOR rowi_farb) ) (if rowi_grundfarbe_entfernen (part_prop (nth counter rowi_teil) :BASE_COLOR :OFF) ) (if rowi_exemplarfarbe_entfernen (part_prop (nth counter rowi_teil) :COLOR :OFF) ) ) ) ; end progn ) ; end rowi_suche...... ) ; end local-functions :ok-action '(if rowi_v1 (rowi_suche_in_baugruppe rowi_bgr) (rowi_suche_in_teilen) ) ) ; end sd-defdialog ;....................................................................;