(in-package :sf) (use-package :OLI) (sd-defdialog 'xba2 :dialog-title "Behaelter ausblenden 2" :dialog-type :interrupt :dialog-control :sequential :prompt-variable 'Teile :variables '( (Teile :preselection (get-matching-preselected-objects) :selection *sd-object-seltype* :multiple-items t :face-part-allowed t :wire-part-allowed t :prompt-text "Behaelter von Darstellungsliste entfernen: Teil, das zum Behaelter gehoert, angeben" :title "Teil" :toggle-type :invisible :modifies nil :next-variable 'Teile :after-input (dolist (Teil Teile) (sd-call-cmds (xesf-behaelter-ausblenden-2 Teil))) ) ) ) (defun xesf-behaelter-ausblenden (selitem Beh) (let (Kind Kinder) (setf Kinder (sd-inq-obj-children selitem)) (dolist (Kind Kinder) (if (sd-inq-container-p Kind) (progn (remove_from_vp_drawlist (sd-inq-current-vp) :without-wp Kind) (setf Beh t) ) ) (xesf-behaelter-ausblenden Kind Beh) ) Beh ) ) (defun xesf-behaelter-ausblenden-2 (selitem) (let (BG Beh) (setf BG (sd-inq-parent-obj selitem)) (loop (if BG (if (sd-inq-container-p BG) (return) (setf BG (sd-inq-parent-obj BG))) (return) ) ) (if BG (remove_from_vp_drawlist (sd-inq-current-vp) :recursive :in_assembly BG) (progn (setf Beh (sd-call-cmds (xesf-behaelter-ausblenden selitem nil))) (if Beh (display "Teil gehoert weder zu einem Behaelter noch besitzt es Behaelter")) ) ) ) )