;;;----------------------------------------------------------------------------- ;;; Dialog zur Erzeugung einer 3D-PDF-Datei ;;;----------------------------------------------------------------------------- ;;; (c) 2009 by COP Informatik AG ;;;----------------------------------------------------------------------------- ;;; COP Informatik AG ;;; Technikumstrasse 38 ;;; 8400 Winterthur ;;; Switzerland ;;; www.copag.ch ;;; fon +41 (0)52 269 07 77 ;;; fax +41 (0)52 269 07 79 ;;;----------------------------------------------------------------------------- ;;; 12.8.2009, D. Schärer, Datei erzeugt ;;; 25.8.2009, D. Schärer, neue Version ohne starten den Acrobat Readers ;;;----------------------------------------------------------------------------- (in-package :COP) (use-package :OLI) (use-package :UI) ;;;----------------------------------------------------------------------------- ;(defconstant *paper-orientations* '("portrait" "landscape" "auto")) ;(defconstant *paper-sizes* '("A0" "A1" "A2" "A3" "A4" "A5" "Legal" "Letter")) ;(defconstant *u3d-bin* (format nil "~A/~A/u3d_bin" (oli::sd-inq-install-dir) si:*platdir* )) ;(defconstant *pdf-generator* (format nil "~A/pdfgen/PDFGen.exe" *u3d-bin*)) (defconstant *pdf-generator* "C:/Programme/CoCreate/COCREA~1/binNT/u3d_bin/pdfgen/PDFGen.exe") (defconstant *cop-3dpdf-path* "C:/temp/elma/COP/3DPDF/") (defconstant *cop-3dpf-postfix* "_3d.pdf") (defconstant *cop-log-path* "C:/temp/elma/COP/LOG/") ;;;----------------------------------------------------------------------------- (sd-defdialog 'cop-create-3d-pdf-dialog :dialog-title "3D PDF erzeugen" :start-variable 'objects :variables '((objects :value-type :part-assembly :modifies nil :selection (*sd-object-seltype*) :multiple-items nil ;;:show-select-menu t :prompt-text "Teil oder Baugruppe angeben" :title "Teil" :initial-value nil )) :ok-action '(cop-create-3d-pdf :objects objects) ) ;;;----------------------------------------------------------------------------- (defun cop-create-3d-pdf (&key (objects 1)) (when (startup::activate-3dpdf-adapter) (let* ( (l-stream nil) (l-part-name (sd-inq-obj-basename objects)) (l-name (nth 0 (sd-string-split l-part-name "_"))) (l-3dpf-file (format nil "~a~a~a" *cop-3dpdf-path* l-name *cop-3dpf-postfix*)) (l-log-file (format nil "~a~a~a" *cop-log-path* l-name *cop-3dpf-postfix*)) (l-output-u3d-path (sd-gen-unique-filename (sd-inq-temp-dir) :extension ".u3d")) (l-output-xml-path (format nil "~A.xml" l-output-u3d-path)) (l-export-function (intern "EXPORT-MODEL-TO-U3D" :u3d)) (l-exec-pdfgen (format nil "~a ~a ~a" (sd-convert-filename-to-platform *pdf-generator*) (sd-convert-filename-to-platform l-output-xml-path) (sd-convert-filename-to-platform l-3dpf-file))) (l-exec-del-u3d (format nil "del ~a" (sd-convert-filename-to-platform l-output-u3d-path))) (l-exec-del-xml (format nil "del ~a" (sd-convert-filename-to-platform l-output-xml-path))) ) (when (funcall l-export-function (list objects) :viewport-name (oli:sd-inq-current-vp) :export-containers t :export-labels t :export-descriptor t :papersize "A4" :paper-orientation "auto" :output-file l-output-u3d-path ) (sd-sys-exec l-exec-pdfgen) (sd-sys-exec l-exec-del-u3d) (sd-sys-exec l-exec-del-xml) (when (setq l-stream (open l-log-file :direction :output)) (close l-stream) ) ; when stream ) ; when u3d exportieren ) ; let (startup::deactivate-3dpdf-adapter) ) ; when 3dpdf aktiviert ) ;;;-----------------------------------------------------------------------------