DAAAANKE
hat geholfen, hatte nur eben erst Zeit dafür.
Hier das Programm in der "ersten Version".
Kann man ja noch ausbauen
Code:
(defun k_satz->objlist (satz)
;;; Objektliste aus Auswahlsatz erstellen
(mapcar 'vlax-ename->vla-object (k_satz->entlist satz))
)(defun k_get-textstring (ent_name / ent_data)
;;; wie vla-get-textstring, aber aus Elementdaten zusammengebaut um auch Sonderzeichen lesen zu können die im Textstring vom Objekt nicht vorhanden sind
(setq ent_data
(cond
((= (type ent_name) 'VLA-OBJECT)
(entget (vlax-vla-object->ename ent_name))
)
((= (type ent_name) 'ENAME)
(entget ent_name)
)
((= (type ent_name) 'LIST)
ent_name
)
)
)
(cond
((= (cdr (assoc 0 ent_data)) "ATTDEF")
(apply 'strcat
(mapcar 'cdr
(vl-remove-if-not
'(lambda (data) (member (car data) '(1 3)))
(vl-remove (assoc 3 ent_data) ent_data)
)
)
)
)
((member (cdr (assoc 0 ent_data)) '("TEXT" "MTEXT" "ATTRIB"))
(strcat (cdr
(last (vl-remove-if-not
'(lambda (data) (= (car data) 1))
ent_data
)
)
)
(apply 'strcat
(mapcar 'cdr
(vl-remove-if-not
'(lambda (data) (= (car data) 3))
ent_data
)
)
)
)
)
((member (cdr (assoc 0 ent_data)) '("MULTILEADER"))
(vla-get-textstring
(vlax-ename->vla-object (cdr (assoc -1 ent_data)))
)
)
(t nil)
)
)
(defun c:k_txt->tbl (/ COL DUMMY P PIC ROW TBL TBL_LIST TEXT_LISTE)
;;; Textinhalte in Tabellenzellen übertragen
(if
(setq
tbl_list
(k_satz->objlist
(ssget
"x"
(list '(0 . "ACAD_TABLE") (cons 410 (getvar "ctab")))
)
)
)
(progn
(setq text_liste nil)
(while (setq pic (nentsel))
(setq text_liste (cons (k_get-textstring (car pic)) text_liste))
)
(setq text_liste (reverse text_liste))
(foreach text text_liste
(setq p (getpoint))
(if
(setq dummy
(car
(vl-remove
'nil
(mapcar
'(lambda (tbl)
(if
(k_is (vla-hittest
tbl
(VLAX-3D-POINT p)
(vlax-3D-point (trans '(0 0 1) 0 1))
'row
'col
)
)
(list tbl row col)
)
)
tbl_list
)
)
)
)
(vla-SetText (nth 0 dummy) (nth 1 dummy) (nth 2 dummy) text)
)
)
)
)
)
------------------
Geht nicht, gibts nicht
Gruß
Andreas
http://kraus-cad.de
[Diese Nachricht wurde von Andreas Kraus am 04. Nov. 2019 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP