Hallo Wolfgang
mit (sd-am-inq-dim-text-cen-pnt) bekomme ich den Text-Mittelpunkt. Das sollte auch nicht das Problem sein.
Aber der Befehl müsste ja ausgeführt werden mit "Mouse over" oder sowas.
Und da finde ich nix im IKit. Wenn das überhaupt geht?
Okay bin jetzt anders an mein Ziel gekommen.
(sd-execute-annotator-command :cmd "CATCH PERMANENT NO_VIEWPORT_RANGE 2")
Das war der Schlüssel.
Hier mal ein Auszug:
(tp_pnt1
:selection (*sd-anno-geo-seltype*)
:toggle-type :invisible
:prompt-text (sd-multi-lang-string "Specify point to start." :german "xxPunkt angeben")
:title (sd-multi-lang-string "Start Point" :german "1.Punkt")
:after-input
(progn
(setq tp_tp_pnt1_str_split (sd-string-split (sd-get-annotator-position :object tp_pnt1) ","))
(setq tp_pnt1_x (sd-read-from-string (first tp_tp_pnt1_str_split)))
(setq tp_pnt1_y (sd-read-from-string (second tp_tp_pnt1_str_split)))
(setq tp_p1 (make-gpnt2d :x tp_pnt1_x :y tp_pnt1_y))
(setq tp_ist_da_was1 (sd-call-cmds (get_selection :focus_type *sd-anno-geo-seltype* :select tp_p1)))
(if tp_ist_da_was1
(progn
(setq tp_view (or
(first(sd-call-cmds (get_selection :focus_type *sd-anno-view-seltype* :select tp_p1)))
(first(sd-call-cmds (get_selection :focus_type *sd-anno-flat-seltype* :select tp_p1)))
))
(setq tp_scale (/ 1 (sd-am-view-struct-scale (sd-am-inq-view tp_view))))
(setq tp_unique (sd-am-inq-unique-name tp_view))
(setq tp_unique_sheet (sd-am-inq-unique-name (sd-am-inq-curr-sheet)))
(sd-execute-annotator-command :cmd "CATCH PERMANENT NO_VIEWPORT_RANGE 2")
(sd-execute-annotator-command :cmd
(format nil "EDIT_PART '~A' DA_DIM_LINE ~A ASSIST AUTO ~A,~A"
tp_unique
tp_ausrichtung
(*(oli::gpntdocu_x tp_p1)tp_scale)
(*(oli::gpntdocu_y tp_p1)tp_scale)
))
)
(progn
(setq tp_pnt1 nil)
));;ende if
;
);;ende progn
:next-variable
(progn
(if tp_pnt1
(progn (unless tp_pnt2 'tp_pnt2))
(progn (unless tp_pnt1 'tp_pnt1))
);;ende if
);;ende progn
)
(tp_pnt2
; :value-type :docupntcnp
:selection (*sd-anno-geo-seltype*)
:toggle-type :invisible
; :initial-visible t
:prompt-text (sd-multi-lang-string "Specify point to start." :german "Punkt angeben")
:title (sd-multi-lang-string "Start Point" :german "1.Punkt")
:after-input
(progn
(setq tp_tp_pnt2_str_split (sd-string-split (sd-get-annotator-position :object tp_pnt2) ","))
(setq tp_pnt2_x (sd-read-from-string (first tp_tp_pnt2_str_split)))
(setq tp_pnt2_y (sd-read-from-string (second tp_tp_pnt2_str_split)))
(setq tp_p2 (make-gpnt2d :x tp_pnt2_x :y tp_pnt2_y))
(setq tp_ist_da_was2 (sd-call-cmds (get_selection :focus_type *sd-anno-geo-seltype* :select tp_p2)))
(if tp_ist_da_was2
(progn
(sd-execute-annotator-command :cmd
(format nil "~A,~A"
(*(oli::gpntdocu_x tp_p2)tp_scale)
(*(oli::gpntdocu_y tp_p2)tp_scale)
))
)
(progn
(setq tp_pnt2 nil)
));;ende if
)
:next-variable
(progn
(if tp_pnt2
(progn (unless tp_pnt3 'tp_pnt3))
(progn (unless tp_pnt2 'tp_pnt2))
);;ende if
);;ende progn
)
(tp_pnt3
:value-type :docupntcnp
:toggle-type :invisible
; :initial-visible nil
:prompt-text (sd-multi-lang-string "Specify point to start." :german "Punkt angeben")
:title (sd-multi-lang-string "Start Point" :german "1.Punkt")
:after-input
(progn
(sd-execute-annotator-command :cmd
(format nil "~A,~A end EDIT_PART '~A'"
(oli::gpntdocu_x tp_pnt3)
(oli::gpntdocu_y tp_pnt3)
(sd-am-inq-unique-name (sd-am-inq-curr-sheet))
))
);;ende progn
:next-variable 'tp_pnt1
)
Gruß
[Diese Nachricht wurde von taino am 22. Mai. 2018 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP