kan ik uit de tekeningen een lijstje genereren met alle getallen die bijv -99.00 bevatten?
liefst met hun x en y coordinaat?
werk met autocad 2004 en kan alleen extracten als iets een block is.
dat werkt dus helaas niet
Groet, Jan-Pieter
Beste Jan-Pieter,
Zoiets:
(defun C:Ftxt(/ ss2 i ed Txt)
(setq ss2 nil SS2 (ssget "_X" '((-4 . "<OR")(0 . "TEXT")(0 . "MTEXT")(-4 . "OR>"))))
(setq i 0)
(repeat (sslength ss2)
(setq ed (entget (ssname ss2 i)) Txt (cdr (assoc 1 ed)))
(if (wcmatch Txt "*-99.00*")
(progn
(setq p (cdr (assoc 10 ed)))
(princ (strcat "\nX=" (rtos (car p) 2 8) " Y= " (rtos (cadr p) 2 8) " Z= " (rtos (caddr p) 2 8) " Tekst= " Txt))
))
(setq i (1+ i))
)
(textpage)
(princ)
)
Met vriendelijke groet, HofCAD CSI.
Iets anders opgebouwd dan het voorstel van HofCAD. Maar met in principe dezelfde werking:(defun c:FindTxt ( / str ss i lst)
(if
(and
(setq str (getstring "\nZoektekst: "))
(setq ss (ssget "_X" (list '(0 . "TEXT") (cons 1 (strcat "*" str "*")))))
)
(progn
(setq i -1)
(repeat (sslength ss)
(setq lst (cons (cdr (assoc 10 (entget (ssname ss (setq i (1+ i)))))) lst))
)
(princ lst)
)
(princ "\nNiets gevonden ")
)
(princ)
)
<EDIT>Bij tekeningen met veel teksten zal deze functie sneller zijn dan die van HofCAD</EDIT>
Allebeide bedankt maar voor mijn werk voldoet die van Roy momenteel het beste, alleen zou ik graag de coordinaten in excel willen plakken voor het overzicht in een x en een y kolom, maar anders moet ik maar wat meer knippen en plakken.
Dank in elk geval.
Groet Jan-Pieter
Bij deze variant hoef je maar 1x te knippen en te plakken.
Scheidingsteken "cellen" en decimaal teken naar wens aanpassen.
Omdat ik zelf Open Office gebruik kan ik je niet helpen met een directe koppeling naar Excel.
(defun c:FindTxt ( / str ss i lst sep dec)
(vl-load-com)
(setq
sep ";" ; scheidingsteken "cellen"
dec "," ; decimaal teken
)
(if
(and
(setq str (getstring "\nZoektekst: "))
(setq ss (ssget "_X" (list '(0 . "*TEXT") (cons 1 (strcat "*" str "*")))))
)
(progn
(setq i -1)
(repeat (sslength ss)
(setq lst (cons (cdr (assoc 10 (entget (ssname ss (setq i (1+ i)))))) lst))
)
(princ (strcat "\nX" sep "Y"))
(mapcar
'(lambda (a)
(princ
(strcat
"\n"
(vl-string-subst dec "." (rtos (car a) 2 8))
sep
(vl-string-subst dec "." (rtos (cadr a) 2 8))
)
)
)
lst
)
(textpage)
)
(princ "\nNiets gevonden ")
)
(princ)
)
Dank jullie wel.
werkt goed voor mij.
Groet,
Jan-Pieter
OPGELOST