Code:
(sd-defdialog 'Pfostenpunkt_und_Text
:precondition
'(if (sd-inq-curr-part) ;(AND (sd-inq-curr-wp-exists-p) (sd-inq-curr-part))
:ok
(values :error "Es existiert keine aktuelle Arbeitsebene und/oder kein aktives Teil")
)
:dialog-title "Pfostenpunkt und Text"
:variables
'(
(Mittel_Punkt_Pfosten
:title "Pfostenmittelpunkt"
:value-type :point-3d
:initial-value nil
:prompt-text "Bitte wählen Sie den Mittelpunkt des Pfostens aus"
:multiple-items nil
:after-input (setq Richtung_Text nil)
:next-variable 'Richtung_Text
)
(Richtung_Text
:title "Richtung Text"
:initial-value nil
:value-type :point-3d
:prompt-text "Bitte wählen Sie die Richtung des Textes aus"
:multiple-items nil
:after-input (sd-set-variable-status 'sel_der_naechste :enable t)
)
("-")
(Schablonen_Text1
:title "Präfix Schablone"
:value-type :string
:initial-value "LD"
:prompt-text "Bitte geben Sie den Postfix für die Schablonenbeschriftung ein"
)
(Namen_Trenner
:title "Trenner Schablone"
:value-type :string
:prompt-text "Bitte geben Sie den Trenner für die Schablonenbeschriftung ein"
:initial-value "-"
)
(Schablonen_Text2
:title "Postfix Schablone"
:value-type :string
:prompt-text "Bitte geben Sie den Postfix für die Schablonenbeschriftung ein"
:initial-value "01"
)
(Text_Hoehe_Schablone
:value-type :positive-integer
:size :third
:title "Texthöhe"
:initial-value 25
:prompt-text "Bitte geben Sie die Texthöhe der Beschriftung der Schablone ein"
)
("-")
(sel_der_naechste
:title "nächster"
:initial-enable nil
:next-variable 'Mittel_Punkt_Pfosten
:push-action (sd-call-cmds (Schablonen_Loch_erstellen))
)
; (back :title "Zurueck"
; :push-action (zurueck_funktion)
; )
);ende variables
:local-functions
'(
(Schablonen_Loch_erstellen ()
(let ()
(progn
(setq Mittel_Punkt_Pfosten_WP (sd-gpnt3d-to-2d Mittel_Punkt_Pfosten))
(setq Mittel_Punkt_Pfosten_WP (sd-gpnt3d-to-2d Mittel_Punkt_Pfosten))
(create_workplane :new :pt_dir :origin Mittel_Punkt_Pfosten :normal :z :u_dir :two_pt Mittel_Punkt_Pfosten Richtung_Text)
(circle :cen_rad 0,0 3 )
(setq Text_Position (make-gpnt2d :x 10 :y (/ Text_Hoehe_Schablone -2.0)))
(create_geo_text :size Text_Hoehe_Schablone :font "laser_sans_serif" :text (format nil "~A~A~A" Schablonen_Text1 Namen_Trenner Schablonen_Text2) :pos Text_Position)
(punch :keep_wp :no :keep_profile :no )
(sd-set-variable-status 'Text_Hoehe_Schablone :enable t :optional t)
(sd-set-variable-status 'Text_Hoehe_Schablone :value 27)
(setf Mittel_Punkt_Pfosten nil)
(setq Text_Hoehe_Schablone 27)
);progn
); let
)
); ende local functions
:cancel-action
'()
:ok-action '()
); ende sd-defdialog