(in-package :examples) (use-package :oli) (sd-defdialog 'sd-exemplareausblenden :dialog-title "Exemplare ausblenden" :toolbox-button t :after-initialization '(progn (sd-set-variable-status 'Exemplare_anz :enable nil) ) :variables '(("Besitzerangabe") (Besitzer :value-type :assembly :title "Baugr.:" :prompt-text "Besitzer-Baugruppe angeben." :initial-value nil :after-input (progn (setf Teil nil) (setf Baugruppe nil) (setf Anzahl nil) (sd-set-variable-status 'Exemplare_anz :enable nil) ) ) ("Exemplarangabe") (Teil ;;:value-type :part :selection (*sd-part-seltype*) :face-part-allowed t :show-select-menu nil :multiple-items nil :title "Teil:" :prompt-text "Teil angeben." :initial-value nil :after-input (progn (setf Auswahl "Teil") (exemplare-anzahl Teil Besitzer) (if (> Anzahl_nummer 1) (progn (sd-set-variable-status 'Exemplare_anz :enable t) ) (progn (sd-set-variable-status 'Exemplare_anz :enable nil) ) ) ) ) (Baugruppe ;;:value-type :assembly :selection (*sd-assembly-seltype*) :face-part-allowed t :show-select-menu nil :multiple-items nil :title "Baugr.:" :prompt-text "Baugruppe angeben." :initial-value nil :after-input (progn (setf Auswahl "Baugruppe") (exemplare-anzahl Baugruppe Besitzer) (if (> Anzahl_nummer 1) (progn (sd-set-variable-status 'Exemplare_anz :enable t) ) (progn (sd-set-variable-status 'Exemplare_anz :enable nil) ) ) ) ) ("-") ("Abfrage - Ergebnis:") (Anzahl :value-type :display-only :title "Gesamt-Anz.:" :value-visibility-alignment :left ) (Exemplare_anz :title "Alle Exemplare ausblenden" :toggle-type :wide-toggle :push-action (progn (when (equal Auswahl "Teil") (exemplare-anzeigen Teil Besitzer) ) (when (equal Auswahl "Baugruppe") (exemplare-anzeigen Baugruppe Besitzer) ) ) ) ) :mutual-exclusion '(Teil Baugruppe) :local-functions '((exemplare-anzahl (Exemplar Besitzer) (let (System-id-name Alle_elemente Element) (setf System-id-name (sd-inq-obj-contents-sysid Exemplar)) (setf Alle_elemente (sd-call-cmds (get_selection :focus_type (list *sd-part-seltype* *sd-assembly-seltype*) :check_function #'(lambda (pseudo) ;;(display (sd-inq-obj-contents-sysid pseudo)) (if (string= System-id-name (sd-inq-obj-contents-sysid pseudo)) :ok :filter ) ) :select :recursive :in_assembly Besitzer ) :failure (display "=> Fehler beim ermitteln der Exemplar-Anzahl") ) ) (setf Anzahl_nummer (list-length Alle_elemente)) (setf Anzahl (format nil "~a StĪck" Anzahl_nummer)) (setf Aktuelles_fenster (oli::sd-inq-current-vp)) ) ) (exemplare-anzeigen (Exemplar Besitzer) (let (System-id-name Alle_elemente Element Zaehler) (setf System-id-name (sd-inq-obj-contents-sysid Exemplar)) (setf Alle_elemente (sd-call-cmds (get_selection :focus_type (list *sd-part-seltype* *sd-assembly-seltype*) :check_function #'(lambda (pseudo) (if (string= System-id-name (sd-inq-obj-contents-sysid pseudo)) :ok :filter ) ) :select :recursive :in_assembly Besitzer ) :failure (display "=> Fehler beim anzeigen der Exemplare.") ) ) (setf Zaehler 0) (uic_set_vp_direction -1.0,3.0,-1.0 (oli::sd-inq-current-vp)) (dolist (Element Alle_elemente) (sd-call-cmds (remove_from_vp_drawlist Aktuelles_fenster Element) :failure (progn (decf Zaehler) (display "=> Kann Exemplare nicht entfernen.") ) ) ) ) ) ) :ok-action '() :cancel-action '() )