(in-package :custom) (use-package :oli) (sd-defdialog 'tp_am_ans_massstab :toolbox-button t :dialog-title "Maßstab" :variables '( (tp_element :selection (*sd-anno-seltype*) :title "Objekt" :after-input (progn (tp_werte_ermitteln) ) );ende tp_element (tp_massstab :value-type :display-only :title "Maßstab" );ende tp_massstab );;ende variablen :ok-action '() :cancel-action '() :local-functions '( (tp_werte_ermitteln () (setf pseudo_ausgangsteil (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a" "INQ_PART '.'" "let pid (STR (INQ 302))" "let pid_s (DOCU_CSTRING_TO_LSTRING pid)" "(DOCU_OPEN_CONNECTION_TO_SD)" "(DOCU_ADD_LINE_TO_SD pid_s)" "(DOCU_CLOSE_CONNECTION_TO_SD)" ) ) ) (setf Elementtyp (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a ~a" "INQ_ELEM" (sd-get-annotator-position :object tp_element) "let pid (STR (INQ 403))" "let pid_s (DOCU_CSTRING_TO_LSTRING pid)" "(DOCU_OPEN_CONNECTION_TO_SD)" "(DOCU_ADD_LINE_TO_SD pid_s)" "(DOCU_CLOSE_CONNECTION_TO_SD)" ) ) ) (setf Teilenummer (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a ~a" "INQ_PART" (sd-get-annotator-position :object tp_element) "let pid (STR (INQ 302))" "let pid_s (DOCU_CSTRING_TO_LSTRING pid)" "(DOCU_OPEN_CONNECTION_TO_SD)" "(DOCU_ADD_LINE_TO_SD pid_s)" "(DOCU_CLOSE_CONNECTION_TO_SD)" ) ) ) (setf Pfadnummer (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a ~a ~a" (format nil "EDIT_PART '~a'" Teilenummer) "INQ_ENV 7" "let pid (STR (INQ 303))" "let pid_s (DOCU_CSTRING_TO_LSTRING pid)" "(DOCU_OPEN_CONNECTION_TO_SD)" "(DOCU_ADD_LINE_TO_SD pid_s)" "(DOCU_CLOSE_CONNECTION_TO_SD)" (format nil "EDIT_PART '~a'" pseudo_ausgangsteil) ) ) ) (setf Pfad_id (sd-string-replace Pfadnummer "//" "")) (setf Pfad_id (sd-string-split Pfad_id "/")) (when (equal Elementtyp "HATCH") (progn ;;(setf Elementtyp nil) (setf Teilenummer nil) (setf Pfadnummer nil) (setf tp_element nil) (sd-display-error "Schraffur darf nicht als Element gewaehlt werden !") ));ende when (setf tp_list_views (sd-am-sheet-struct-views (sd-am-inq-sheet (sd-am-inq-curr-sheet)))) (if (> (length Pfad_id) 1) (progn (setf tp_tmp_view (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a" (format nil "INQ_PART '~a'" (nth 1 Pfad_id)) "let pid (STR (INQ 301))" "let pid_s (DOCU_CSTRING_TO_LSTRING pid)" "(DOCU_OPEN_CONNECTION_TO_SD)" "(DOCU_ADD_LINE_TO_SD pid_s)" "(DOCU_CLOSE_CONNECTION_TO_SD)" ) ) );ende tp_tmp_view (loop for x from 0 to (-(length tp_list_views)1) do (progn (setf tp_view_name (sd-am-view-struct-name (sd-am-inq-view (nth x tp_list_views)))) (setf tp_view (nth x tp_list_views)) (when (string= tp_tmp_view tp_view_name) (return) );ende when ));ende loop (setf tp_view_scale (sd-am-view-struct-scale (sd-am-inq-view tp_view))) (if (or (< tp_view_scale 1) (= tp_view_scale 1)) (progn (setf tp_tmp1 (/ 1 tp_view_scale)) (setf tp_massstab (concatenate 'string "1:" (sd-num-to-string tp_tmp1 0))) ) (progn (setf tp_massstab (concatenate 'string (sd-num-to-string tp_view_scale 0) ":1")) ));ende if (setf tp_element nil) ));ende if );ende tp_werte_ermitteln );ende local functions );ende dialog