(in-package :custom) (use-package :oli) ;;----------------------------------------------------------------------------------------------* ;; Vorgaben setzen: ;; Moegliche Vorgabewerte: ;;----------------------------------------------------------------------------------------------* ;;----------------------------------------------------------------------------------------------* (sd-defdialog 'Strecke_teilen ;;:dialog-title "Strecke teilen" :toolbox-button nil ; damit erscheint das Makro nicht in der toolbox (sonst "t") :PRECONDITION '(if (sd-inq-curr-wp) :OK (values :error (format nil "Sie haben keine aktive Arbeitsebene auf der der Text erstellt werden koennte!~aBitte erstellen Sie zuerst eine Arbeitsebene." '#\newline)) ) :dialog-control :sequential :variables '( (Pkt1 :value-type :point-2d :title "Pkt1" :prompt-text "Bitte ersten Punkt antippen." ) (Pkt2 :value-type :point-2d :title "Pkt2" :prompt-text "Bitte zweiten Punkt antippen." ) (teile :value-type :positive-number :title "Teile" :prompt-text "Bitte die Teilung eingeben." ) ) :local-functions '( (Split() (setf u1 (gpnt2d_x Pkt1));; U-Koordinaten selectieren (setf v1 (gpnt2d_y Pkt1));; V-Koordinaten selectieren (setf u2 (gpnt2d_x Pkt2));; U-Koordinaten selectieren (setf v2 (gpnt2d_y Pkt2));; V-Koordinaten selectieren (let ((counter 1)) (loop ;(display counter) (C_LINE_INF :BISECT (/ counter teile) Pkt1 Pkt2) (incf counter);; counter + 1 (when (= counter teile) (return "done") ); end when );end loop ); end let ) ) :ok-action '(Split) :cancel-action '() :cleanup-action '() )