;# =========================================================================== ;# Dateiname: .../ar_intrastat.lsp ;# =========================================================================== ;# Bearbeiter: Thomas Dörner ;# Stand: 10.09.2003 ;# =========================================================================== ;# Beschreibung: Auslesen der Eigenschaften, Masse, Dichte, Volumen eines Teils ;# =========================================================================== ;# =========================================================================== ;;### alle Befehle werden in custom - frei wählbar - gepackt ;# =========================================================================== (in-package :custom) ;# =========================================================================== ;;### Lade Befehlssatz für Integration Kit ;# =========================================================================== (use-package :OLI) ;# =========================================================================== ;;### Dialog ;# =========================================================================== (sd-defdialog 'Intrastat :module "ANNOTATION" :toolbox-button :force :dialog-title "Intrastat Daten" :variables '( (ND_PART :value-type :part-assembly :multiple-items nil :modifies nil :initial-value nil :title "Teil/Bgr" :prompt-text "Bitte Teil auswählen" :check-function #'(lambda (obj) (let (part-list good) (setf part-list (sd-inq-obj-children (sd-inq-parent-obj (sd-am-inq-curr-view-set)) )) (when part-list (dolist (n part-list) (when (equal n obj) (seft good t) ) ) (unless good (when (equal (sd-inq-parent-obj (sd-am-inq-curr-view-set)) obj) (setf good t) ) ) ) (if good :ok (values :error "Teil ist nicht Bestandteil dieser Zeichnung") ) ) ) ) (DICHTE :initial-value nil) (MASSE :initial-value nil) (VOLUMEN :initial-value nil) ) ;; ende Variablen :precondition '(if (docu::docu-inq-highest-sheet-name) (progn (setf *done* nil) (when (not (docu::docu-get-current-sheet-name)) (sd-call-cmds (docu::am_current_sheet "1")) ) (when (not (sd-am-inq-curr-view-set)) (sd-display-message (sd-multi-lang-string "Please select the current viewset in \"Views\" menu first" :german "Bitte zuerst den Ansichtssatz im MenÏ \"Ansicht\" festlegen")) (sd-abort-dialog) ) :ok ) (sd-display-message (sd-multi-lang-string "There is no drawing loaded into the Annotation Module" :german "Es ist Keine Zeichnung fÏr einen Bearbeitung in Annotation geladen !!")) ) :after-initialization '(sd-call-cmds (sd-show-graphical-browser g-browser::*structure-gbrowser*)) :local-functions '( (los-gehts () (let (vals) (sd-call-cmds (get_vol_prop :for_part :part ND_PART :density) :success (setf DICHTE *SD-ACTION-RESULT*) :failure (format t "habe keine Dichte ermitteln können") ) (sd-call-cmds (get_vol_prop :for_part :part ND_PART :mass) :success (setf MASSE *SD-ACTION-RESULT*) :failure (format t "habe keine Masse ermitteln können") ) (sd-call-cmds (get_vol_prop :for_part :part ND_PART :volume) :success (setf VOLUMEN *SD-ACTION-RESULT*) :failure (format t "habe kein Volumen ermitteln können") ) (when (and DICHTE MASSE VOLUMEN) (setf vals t) ) vals ) ) ;; ende los gehts ) ;; ende local-functions :ok-action '(let (result) (when (setf result (los-gehts)) (sd-call-cmds (docu::docu-set-predef-values :text :text (list (format nil "Dichte = ~S" DICHTE) (format nil "Masse = ~S" MASSE) (format nil "Volumen = ~S" VOLUMEN)))) (sd-put-buffer "AM_CREATE_TEXT") ) ) );;ende Dialog