(in-package :BFE_TOOLS) (use-package '(:OLI )) (sd-defdialog 'bfe-Plot2 :toolbox-button t :dialog-title '(sd-multi-lang-string "PDF" :german "PDF erstellen") :after-initialization ' (progn (rahmen-identifizieren) (if (not (find blatt ' (".sfeld_rahmen_A0" "A0" "DINA0" ".sfeld_rahmen_A1" "A1" "DINA1" ".sfeld_rahmen_A2" "A2" "DINA2" ".sfeld_rahmen_A3" "A3" "DINA3" ".sfeld_rahmen_A4" "A4" "DINA4" ) :test #'string=) ); end not (progn (sd-display-message (format nil "Blattformat nicht gefunden!~%Bitte manuell auswählen") :title "Blattformat" :push "Weiter") (setf blatt :pdf_a4) (setf ausr :portrait) );end Fehlermeldung kein Blattformat (progn (setf ausr (if (find blatt '("A4" "DINA4" ".sfeld_rahmen_A4") :test #'string=) :portrait :landscape)) (cond ((find blatt '("A4" "DINA4" ".sfeld_rahmen_A4") :test #'string=) (setf blatt :pdf_a4)) ((find blatt '("A3" "DINA3" ".sfeld_rahmen_A3") :test #'string=) (setf blatt :pdf_a3)) ((find blatt '("A2" "DINA2" ".sfeld_rahmen_A2") :test #'string=) (setf blatt :pdf_a2)) ((find blatt '("A1" "DINA0" ".sfeld_rahmen_A1") :test #'string=) (setf blatt :pdf_a1)) ((find blatt '("A0" "DINA0" ".sfeld_rahmen_A0") :test #'string=) (setf blatt :pdf_a0)) ) ;end cond ) ;end else ); end if );end progn :variables '( (file :value-type :directory :Prompt-text "Ordner zum Speichern angeben" :title "Ordner" :initial-value (sd-get-current-working-directory) :after-input (sd-set-current-working-directory file) ) (blatt :range ((:pdf_a0 :label "A0") (:pdf_a1 :label "A1") (:pdf_a2 :label "A2") (:pdf_a3 :label "A3") (:pdf_a4 :label "A4")) :prompt-text "Blattformat auswählen" :title "Blattformat" :initial-value "Automatisch" ) (ausr :range ((:portrait :label "Hoch") (:landscape :label "Quer")) :title (sd-multi-lang-string "orientation" :german "Ausrichtung") :prompt-text (sd-multi-lang-string "Ausrichtung" :german "Blattausrichtung definieren") :initial-value "Standard" ) ("-") (einpassen :value-type :boolean :toggle-type :right-toggle :title (sd-multi-lang-string "fit" :german "Einpassen") :prompt-text (sd-multi-lang-string "Einpassen" :german "Zeichnung automatisch einpassen") :initial-value nil ) (anzeigen :value-type :boolean :toggle-type :grouped-toggle :title (sd-multi-lang-string "view PDF" :german "PDF anzeigen") :prompt-text (sd-multi-lang-string "PDF anzeigen" :german "Zeichnung anzeigen") :initial-value t ) (kasten_ein :value-type :boolean :toggle-type :grouped-toggle :title (sd-multi-lang-string "print box" :german "Kasten") :prompt-text (sd-multi-lang-string "print box" :german "Kasten drucken") :initial-value nil :next-variable (if (equal kasten_ein t) 'point_one) ) (point_one :value-type :docupntcnp :toggle-type :invisible :title "Erste Ecke" :prompt-text "Erste Ecke des rechteckigen Plot-Ausgabebereich angeben" :next-variable 'point_two ) (point_two :value-type :docupntcnp :toggle-type :invisible :title "Zweite Ecke" :prompt-text "Zweite Ecke des rechteckigen Plot-Ausgabebereich angeben" :after-input (progn (sd-call-cmds (am_plot_ex :output_box :output_pick point_one point_two)) (when (not (string= blatt :pdf_a4)) (progn (sd-display-message (format nil "Achtung!!!~%Blattformat größer als A4") :title "Blattformat" :push "Weiter"))) ) ;end progn ) ) ;; end variables :local-functions '( (rahmen-identifizieren () (defun get-frame-name () (let ((sht-struct (oli:sd-am-inq-sheet (oli:sd-am-inq-curr-sheet)))) (oli:sd-am-inq-name (sd-am-sheet-struct-frame sht-struct)))) (setf blatt (get-frame-name)) ) ;end rahmen-identifizieren (do-plot () (am_plot_ex :Plot_style blatt :output_drawing :destination (Format nil "~a\\~a.pdf" file (sd-am-inq-drawing-no)) :scale (if (equal einpassen t) :fit :factor) :value 1 :ORIENTATION ausr :POSITION :CENTER :output (if (equal kasten_ein t) :box :sheet) :yes :plot ) ;end am_plot ) ) ;end local-functions :ok-action '(let () (pprint (format nil "~a" "-")) (pprint (format nil "~a" blatt)) (pprint (format nil "~a" ausr)) (pprint (format nil "~a ~a" "Fit" einpassen)) (pprint (format nil "~a ~a" "Box" kasten_ein)) (do-plot) ;PDF anzeigen (when (equal anzeigen t) (oli:sd-display-url (Format nil "~a\\~a.pdf" file (sd-am-inq-drawing-no))); open PDF ); end when );end let ok action ) ;; end dialog