Linienkoordinaten auslesen

Fragen und Anmerkungen zu den Lispprogrammen von CADwiesel
Antworten
DerDani

Linienkoordinaten auslesen

Beitrag von DerDani » Di 17. Jan 2006, 09:29

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

Benutzeravatar
CADwiesel
Administrator
Beiträge: 392
Registriert: Mo 11. Jun 2018, 13:07
Kontaktdaten:

Beitrag von CADwiesel » Mi 18. Jan 2006, 08:33

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)
    )
  )
  )
Gruß
BildCADwiesel
Besucht uns im CHAT

DerDani

Beitrag von DerDani » Mi 18. Jan 2006, 14:17

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

Benutzeravatar
CADmium
Schlauberger
Beiträge: 144
Registriert: Sa 6. Mär 2004, 20:42

Beitrag von CADmium » Mi 18. Jan 2006, 22:02

Betreffs Tutorial schau dir mal Mapcars Seiten an.

Benutzeravatar
toshni
Newbie
Beiträge: 9
Registriert: Sa 2. Jan 2010, 18:20
Kontaktdaten:

Re: Linienkoordinaten auslesen

Beitrag von toshni » Mo 16. Sep 2013, 16:17

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

CADffm
Newbie
Beiträge: 1
Registriert: Mo 8. Mär 2004, 09:12
Wohnort: Groß-Gerau

Re: Linienkoordinaten auslesen

Beitrag von CADffm » Do 19. Sep 2013, 09:29

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.

Antworten