(in-package :custom) (use-package :OLI) (sd-defdialog 'tp_am_teile_umfaerben :dialog-title "Teile umfärben" ;;:dialog-control :sequential :variables '( ("Besitzer") (tp_anno_part :selection (*sd-anno-part-seltype*) :title "Teil" :prompt-text "Teil anklicken" :initial-visible t :after-input (progn (start_faerben) ) ;; end progn :after-input ) (linart :range (("SOLID" :label "Solid") ("DASHED" :label "Strichliert") ("LONG_DASHED" :label "Lang Strichl.") ("DOT_CENTER" :label "Strichpunkt") ("DASH_CENTER" :label "Lang Strichp.") ("PHANTOM" :label "___ _ _ __") ("CENTER_DASH_DASH" :label "__..__") ("DOTTED" :label "Punktiert")) :title "Linienart" :initial-value "DOT_CENTER" ) (tp_farbe :title "Farbe" :value-type :rgb-color ; :initial-value 10461087 ;;grau :initial-value 16711680 ;;rot ; :after-input (progn(display tp_farbe)) ) ) :local-functions '( (start_faerben () (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 Teilenummer (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a ~a" "INQ_PART" (sd-get-annotator-position :object tp_anno_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 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 "/")) (setf zaehler (length Pfad_id)) (setf Pfadname "") (loop (setf zaehler (- zaehler 1)) (setf teilename_einzeln (sd-execute-annotator-function :fnc (format nil "~a ~a ~a ~a ~a ~a" (format nil "INQ_PART '~a'" (nth zaehler 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)" ) ) ) (setf Pfadname (format nil "/~a~a" teilename_einzeln Pfadname)) (when (< zaehler 1) (return) ;; Ausstieg ) ) (setf farbe (sd-color-to-rgb tp_farbe)) (setf comstring (format nil "~a '~a'~%~a ~a ~a~%~a ~a ~a~%~a~%~a" "EDIT_PART" Pfadname "CHANGE_COLOR RGB_COLOR" farbe "SELECT GEO ALL CONFIRM END" "CHANGE_LINETYPE" linart "SELECT GEO ALL CONFIRM END" "ADD_ELEM_INFO 'GEOMETRY_ATTRIBUTES_CHANGED_IN_MEXX' SELECT GEO ALL CONFIRM END" "EDIT_PART TOP" )) (sd-execute-annotator-command :cmd comstring) (sd-execute-annotator-command :cmd "END") (setf tp_anno_part nil) );;ende start_faerben ) )