(in-package :mibr) (use-package :oli) (sd-defdialog 'kanten_waehlen :dialog-title "Kanten wählen" :dialog-type :interrupt :toolbox-button t :prompt-variable 'ref_laenge :variables '( (ref_laenge :selection *sd-edge-3d-seltype* :title "Referenz Kante" :prompt-text "Referenz Kante auswählen" :initial-visible nil :after-input (progn (sd-set-variable-status 'teil_ermit :value (sd-inq-parent-obj ref_laenge)) (sd-set-variable-status 'laenge_ermit :value (sd-call-cmds (measure_dist :edge_length ref_laenge))) (sd-set-variable-status 'k_komplett :value (sd-call-cmds (get_selection :focus_type *sd-edge-3d-seltype* :select :in_part teil_ermit))) (sd-set-variable-status 'k_gewaehlt :value (mibr::suche_die_kanten laenge_ermit k_komplett 0.01)) ) ) (teil_ermit :title "Teil" :value-type :display-only :gui-value (when teil_ermit (sd-inq-obj-basename teil_ermit)) ) (laenge_ermit :title "Länge" :value-type :display-only ) (k_komplett :title "Alle Kanten" :value-type :display-only :gui-value (when teil_ermit (length k_komplett)) ) (k_gewaehlt :title "Gewählte Kanten" :value-type :display-only :gui-value (when teil_ermit (length k_gewaehlt)) ) ) :ok-action '(sd-call-cmds (waehle_kanten k_gewaehlt)) ) (defun waehle_kanten (k_gewaehlt) (setf kantenliste_gewaehlt k_gewaehlt) (sd-put-buffer "mibr::kantenliste_gewaehlt") )