GPNTDOCU ist eine LISP Struktur. Sehr einfach erkennbar an dem "#S(...)" wenn man einen schnoeden print darauf macht (
Ihr habt das schon 1024 beim (pprint sel-item) gesehen)
#S(GPNTDOCU
LISP Strukturen bestehen aus verschiendenen Komponenten und werden mit eine "special" funktion erzeugt.
Der aus 3D bekannte Punkt auf einer Arbeitsebenen verhaelt sich recht aehnlich, siehe Intergration kit -> "GPNT2D [structure]" :
integration_kit/reference/util_vec.html#gpnt2d
- (make-gpnt2d :x x :y y) ; die punkt struktur erzeugen, in dem man X und Z werte vorgibt
- (copy-gpnt2d vec2d) ; den punkt kopieren
- (gpnt2d-p gpnt3d) ; checken ob es genaus DIESE Struktur ist
- (gpnt2d_x vec2d) ; die X komponente des Punktes erfragen
- (gpnt2d_y vec2d) ; die Y komponente des Punktes erfragen
2D Punkte kann man sogar addieren (IKIT funktionen): sd-vec-add und andere Sachen damit treiben.
Im annotation gibt es 2 Konvertierungsfunktionen
● gpnt2d-to-gpntdocu
● gpntdocu-to-gpnt2d
die Konvertieren von der einen Struktur in die andere.
__________________________________________
Ein direktes Setzen des Wertes einer Komponente ist AFAIK nicht moeglich (habe es aber nicht probiert).
__________________________________________
Also bliebe nur das Erzeugen eines neuen Punktes:
Code:
(defparameter *annotation-view-port* "Annotation" )(setq newpnt (MAKE-GPNTDOCU :x (+ old-value-x offest-x)
:y (+ old-value-y offest-y)
:gport *annotation-view-port*))
Du siehst, x und y musst du eh wieder einzeln handhaben. Ob die obige Variante dann 'einfacher' ist musst du selbst entscheiden.
------------------
● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ●
[Diese Nachricht wurde von der_Wolfgang am 01. Feb. 2018 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP