Seite 1 von 1

Linienkoordinaten auslesen

Verfasst: Di 17. Jan 2006, 09:29
von DerDani
Hallo,
ich habe eine einfache kleine Zeichnung aus simplen Linien und möchte die Koordinaten von Anfangs- und Endpunkt jeder Linie und von evtl. Schnittpunkten in bestimmter Form in eine Ascii-Datei auslesen. Gibt es dazu eine Lisp-Routine?
Wer kann mir helfen?

Danke

Verfasst: Mi 18. Jan 2006, 08:33
von CADwiesel
passt das?

Code: Alles auswählen

(defun c:line2txt ( / as doc p1 p2 ename)
(if(setq as(ssget "_X" '((0 . "LINE"))))
  (progn
    (setq doc(open "c:\\temp\\linienkoordinatenliste.txt" "w"))
  (repeat(sslength as)
    (setq ename(ssname as 0))
    (if (and
          (setq p1(vlax-curve-getstartpoint(vlax-ename->vla-object ename)))
          (setq p2(vlax-curve-getendpoint(vlax-ename->vla-object ename)))
          )
      (progn
      (princ "\n;;;Startpunkt:\n" doc)
      (prin1 p1 doc)
      (princ "\n;;;Endpunkt:\n" doc)
      (prin1 p2 doc)
      )
      )
    (setq as (ssdel (ssname as 0)as))
    )
    (close doc)
    )
  )
  )

Verfasst: Mi 18. Jan 2006, 14:17
von DerDani
Hallo CADwiesel,
vielen Dank erst einmal für deine Mühe.

Aber es kommt eine Fehlermeldung, und zwar erscheint:

Befehl: line2txt
;;;Startpunkt:
(-1000.64 -12.068 0.0)
;;;Endpunkt:
(-821.858 13.6159 0.0)
;;;Startpunkt:
(-1014.34 135.757 0.0)
;;;Endpunkt:
(-1000.64 -12.068 0.0)
; error : bad argument type <NIL> ; expected FILE at [CLOSE] :cry:

Nun habe ich keine Ahnung von Lisp-Programmierung und weiß mir deshalb nicht zu Helfen.

Ziel soll sein, die Knotenpunkte der Zeichnung (Linienanfang und -ende und evtl. Schnittpunkte) für ein anderes Programm in Form einer Ascii-Datei zur Verfügung zu stellen. Der Ascii-Text sollte wie folgt aussehen:

bla bla bla

Punkt x y
P1 0 1
P2 1 1
P3 1 2
...

also Leerzeichen-, Semikolon- oder Kommagtrennt.

Kannst du oder jemand anderes helfen?

Gibt es eigentlich die Möglichkeit, die Zeichnungsdaten in Excel auszulesen, um dann dort die wichtigen Daten zu selektieren und als txt abzuspeichern?

Vielen Dank!!!!!!

DerDani

Ps: Ich werde Lisp lernen. Brauch nur noch ein Online-Tutorium :D

Verfasst: Mi 18. Jan 2006, 22:02
von CADmium
Betreffs Tutorial schau dir mal Mapcars Seiten an.

Re: Linienkoordinaten auslesen

Verfasst: Mo 16. Sep 2013, 16:17
von toshni
Ohne Lisp geht's auch:
Befehl: DATENEXTRAKT
Bei Seite 3 von 8 nur das Objekt "LINIE" auswählen
Bei Seite 4 von 8 Kategorienfilter auf "Geometrie" und Eigenschaften Start X, Start Y, Start Z, Ende X, Ende Y, Ende Z auswählen
Bei Seite 6 von 8 kannst du eine Exceldatei angeben wo das ganze hingeschrieben werden soll.
Achtung: Wenn du "vernünftige" Zahlen in EXCEL möchtest, musst du das Zahlenformat in AutoCAD anpassen (von "." auf ",")
Siehe auch:
http://docs.autodesk.com/ACD/2011/DEU/f ... c-7fb8.htm

Re: Linienkoordinaten auslesen

Verfasst: Do 19. Sep 2013, 09:29
von CADffm
Ja, heute - 7 bis 8 Jahre nach dem jemand diese Aufgabe hatte, geht das.
Damals war eine Version mit dem Befehl 'Datenextrakt' nicht existent, mit eattext konnte man nur Blockinformationen auslesen.

Aber da wir hier in einer total eingestaubtes LISPecke sind, wird die Lösung wohl auch zwingend von programmiertechnischer Natur erwünscht gewesen sein, vor 7 bis 8 Jahren.