#|=================================================================================================== SW-PDF-speichern.lsp erstellt am 25.02.2016 von Wolfgang Seel |# (in-package :sw) (use-package :oli) ;; Schnittstelle einschalten, damit Makro beim Laden richtig registriert werden kann. (act_deact_module :Act "U3D_3DPDF_CONVERTER" "MODULE-CONTROLLER-Data Interfaces-U3D_3DPDF_CONVERTER-TB" '(STARTUP::ACTIVATE-3DPDF-ADAPTER)) (sd-defdialog 'SW-PDF-speichern :dialog-title "SW-PDF-speichern" :toolbox-button nil ; t :variables ' ( (Teile :title "Teile-Auswahl" :selection (*sd-object-seltype*) :multiple-items t :prompt-text "Teile für 3D-PDF-Export waehlen (.pdf):" :initial-value nil :before-input () :after-input () ) (FILE :value-type :filename :title "Datei speichern" ;; :initialdirectory "T:/" ; alternativ anderes Laufwerk oder auch(sd-get-current-working-directory) :initialdirectory (sd-get-current-working-directory) :direction :output :initialpattern dateiname :fileType :pdf :add-suffix nil ;t ; :fileType :u3dsavemodel-3dpdf :before-input (progn (setf dateiname nil) ) ; progn :after-input (progn (setq datei (first FILE)) ;; Datum-Zeit-Benutzer abfragen (multiple-value-bind (second minute hour date month year day daylight-p zone) (get-decoded-time) (progn (if (< hour 10) (setf hour (format nil "0~a" hour)) ) ; endif (if (< minute 10) (setf minute (format nil "0~a" minute)) ) ; endif (if (< second 10) (setf second (format nil "0~a" second)) ) ; endif (if (< date 10) (setf date (format nil "0~a" date)) ) ; endif (if (< month 10) (setf month (format nil "0~a" month)) ) ; endif ; (if (< year 10) ; (setq year (format nil "0~a" year)) ; ) ; endif (setf Datum (format nil "~A-~A-~A_~A-~A-~A" year month date hour minute second )) ;; Belegt Variable Datum mit dem aktuellen Zeitstempel (setf Benutzer (oli::sd-sys-getenv "USERNAME")) ;; Belegt Variable Benutzer mit aktuellem Benutzer des Systems );;progn );;multiple-value-bind (setq Dateiname (format nil "~a_~a_~a.pdf" datei Datum Benutzer)) ;;; Dateiname für BAK-Datei generieren ; (if (sd-inq-file-status datei :existence) ; (uic_copy_file :source_fileuic_copy_file :source_file datei :destination_file bakdatei :overwrite complete) ; ) ;; Endif (act_deact_module :Act "U3D_3DPDF_CONVERTER" "MODULE-CONTROLLER-Data Interfaces-U3D_3DPDF_CONVERTER-TB" '(STARTUP::ACTIVATE-3DPDF-ADAPTER)) (sd-call-cmds(u3dsavemodel-3dpdf :objects Teile :FILENAME Dateiname :overwrite)) (act_deact_module :Deact "U3D_3DPDF_CONVERTER" "MODULE-CONTROLLER-Data Interfaces-U3D_3DPDF_CONVERTER-TB" '(STARTUP::DEACTIVATE-3DPDF-ADAPTER)) ) ; progn ) ; end file ) ; end variables :ok-action '() :cancel-action '() :help-action '(sd-display-message " SW-PDF-speichern.lsp erstellt am 25.02.2016 von Wolfgang Seel Ziel des LISP-Makro´s ist die Optimierung der Nutzung der 3D-PDF-Schnittstelle im Firmennetz. Die Blockierung der Schnittstelle durch das Vergessen, der Deaktivierung soll vermieden werden. Funktionsprinzip: 1. zu exportierende Teile/Baugruppen auswählen in Strukturliste oder im aktuellen Fenster 2. In Dateiliste Name für pdf-Datei eingeben und mit OK-Butten in Dateiliste bestätigen. Dateinamenvorschlag wird wie folgt zusammengestellt : Name der Zeichnung in Annotation + Teilename des 1. Teiles 3. 3D-PDF-Schnittstelle wird gestartet 4. pdf-Datei wird exportiert 5. PDF-Schnittstelle wird wieder ausgeschaltet Vorraussetzungen: eine freie Lizens für 3D-PDF-Schnittstelle " :title "SW-pdf-speichern" :push "Weiter") ) ; sd-defdialog ;; 3D-PDF-Schnittstelle wieder ausschalten, damit 3D-PDF-Schnittstelle wieder freigegeben wird. (act_deact_module :Deact "U3D_3DPDF_CONVERTER" "MODULE-CONTROLLER-Data Interfaces-U3D_3DPDF_CONVERTER-TB" '(STARTUP::DEACTIVATE-3DPDF-ADAPTER))