(in-package :examples) (use-package :oli) ;;----------------------------------------------------------------------------------------------* ;; Vorgaben setzen: ;; Moeglicher Vorgabewerte: ;;----------------------------------------------------------------------------------------------* (setf Bildmerker t) ;; t nil ;;----------------------------------------------------------------------------------------------* (sd-defdialog 'gif-animationsbilder :dialog-title "GIF-Animationsbilder" :toolbox-button t :precondition '(if (sd-search-file "c:/Temp/Bild001.jpg") (progn (sd-display-error "Vorhandene Einzelbilder im Zielverzeichnis: 'C:\Temp' mÏssen vorher gelÎscht werden.") (sd-sys-background-job (format nil "explorer ~a" (sd-convert-filename-to-platform "C:/Temp"))) ) :ok ) :variables '((Objekt :value-type :part-assembly :show-select-menu t :modifies nil :multiple-items t :no-highlight t :initial-value nil :title "Teil/Baugr.:" :prompt-text "Teil oder Baugruppe angeben." ) (viewport :value-type :string :initial-value (sd-inq-current-vp) :title "Viewport:" :prompt-text "Viewport angeben." ) (achse :value-type :measure-axis :title "Achse:" :prompt-text "Achse angeben." ) (grad :title "Einzelschritt:" :prompt-text "Winkel fÏr Einzelschritt angeben." :range ((5 :label "5 Grad") (10 :label "10 Grad") (15 :label "15 Grad") (30 :label "30 Grad") (45 :label "45 Grad") (60 :label "60 Grad") (90 :label "90 Grad") ) :initial-value 15 :after-input (setf schritt (/ 360 grad)) ) (schritt :value-type :display-only :initial-value 24 :title "Bildanzahl:" ) (Bilder :value-type :boolean :title "Letztes Bild wie das erste" :toggle-type :wide-toggle :initial-value (if Bildmerker t nil) :after-input (if Bilder (setf Bildmerker t) (setf Bildmerker nil) ) ) ("-") ("FenstermaÞe in Pixel") (xsize :value-type :integer :title "Breite:" :initial-value 400 ) (ysize :value-type :integer :title "HÎhe:" :initial-value 300 ) ) :local-functions '((doit () (progn (create_thumbnail :vp viewport :size :user :size_x xsize :size_y ysize :fit :off :filename (format nil "c:/Temp/Bild~3,'0D.jpg" 1)) (loop for i from 2 to (+ schritt 1) do (sd-call-cmds (position_pa Objekt :rotate :axis (nth 0 achse) (nth 1 achse) :rotation_angle (sd-deg-to-rad grad) :done) ;;:failure (display "Fehler bei Drehung") ;;:success (display "Drehung war OK") ) (create_thumbnail :vp viewport :size :user :size_x xsize :size_y ysize :fit :off :filename (format nil "c:/Temp/Bild~3,'0D.jpg" i)) ) (when (not Bilder) (delete-file (format nil "c:/Temp/Bild~3,'0D.jpg" (+ Schritt 1))) ) (sd-sys-background-job (format nil "explorer ~a" (sd-convert-filename-to-platform "C:/Temp"))) ) ) ) :ok-action '(doit) )