;;--------------------------------------------------------------------------* ;; Copyright 2017 IWG * ;; * ;;--------------------------------------------------------------------------* ;; Dateiname: dichte_suchen_v2.lsp ;; Version : 2.0 ;; Datum : 29.03.2017 ;; Author : Gt ;;--------------------------------------------------------------------------* (in-package :custom) (use-package :OLI) ;;--------------------------------------------------------------------------* ;; dialogs * ;;--------------------------------------------------------------------------* (sd-defdialog 'iwg-dichte-suchen-dialog :dialog-title "Dichte suchen" ;;:dialog-control :sequential :toolbox-button t :variables '( (bgr :value-type :assembly :prompt-text "Baugruppe angeben" :title "Baugruppe" :modifies nil ) ("Dichte") (dichtu :value-type :number :prompt-text "unteren Wert eingeben" :title "von" ;;:initial-value nil ) (dichto :value-type :number :prompt-text "oberen Wert eingeben" :title "bis" ;;:initial-value nil ) (teil :value-type :part :prompt-text "Teil, dessen Dichte uebernommen werden soll angeben" :title "von Teil" :modifies :nil :initial-value nil :initial-optional t :after-input (after-teil-action) ) (show :value-type :boolean :toggle-type :wide-toggle :title "Teile anzeigen" :initial-value nil ) (next :title "Suchen" :toggle-type :wide-toggle :push-action (sd-call-cmds (next-action)) ) (hide :title "Anzeige umkehren" :toggle-type :wide-toggle :push-action (sd-call-cmds (invert-action)) ) ) :local-functions '( (after-teil-action () (let () (setf dichtu (sd-inq-part-density teil :realized)) (setf dichto (sd-inq-part-density teil :realized)) );;let ) (next-action () (iwg-suche-dichte-in-bgr bgr dichtu dichto show) ) (invert-action () (let (sichtblist sichtb) (setf sichtblist (sd-inq-vp-drawlist-objects (oli::sd-inq-current-vp))) (uic_draw_all (oli::sd-inq-current-vp)) (dolist (sichtb sichtblist) (sd-call-cmds (remove_from_vp_drawlist (oli::sd-inq-current-vp) :with-wp sichtb)) );;dolist );;let ) ) :ok-action '(sd-call-cmds (iwg-suche-dichte-in-bgr bgr dichtu dichto)) ) ;;--------------------------------------------------------------------------* (defun iwg-suche-dichte-in-bgr (teil_bgr dichtu dichto show) (let (teiletyp kind kinder teildicht) (setf teiletyp (sel_item-type teil_bgr)) (if (equal teiletyp *sd-part-seltype*) (progn (setf teildicht (sd-inq-part-density teil_bgr)) (if (and (<= dichtu teildicht) (>= dichto teildicht)) (progn (display (format nil "~a:~a~a" (sd-inq-obj-pathname teil_bgr) (code-char 9) teildicht)) (when show (add_to_vp_drawlist (oli::sd-inq-current-vp) teil_bgr) ) );;progn nil);;if );;progn ;; else (when (equal teiletyp *sd-assembly-seltype*) (progn (setf kinder (sd-inq-obj-children teil_bgr)) (dolist (kind kinder) (iwg-suche-dichte-in-bgr kind dichtu dichto show) ) ;; dolist ) ;; progn ) ;; when ) ;; if ) ;; let ) ;;--------------------------------------------------------------------------*