Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Polyline Koordinaten in Datei schreiben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Polyline Koordinaten in Datei schreiben (679 mal gelesen)
gms76
Mitglied
Student

Sehen Sie sich das Profil von gms76 an!   Senden Sie eine Private Message an gms76  Schreiben Sie einen Gästebucheintrag für gms76

Beiträge: 2
Registriert: 13.08.2003

erstellt am: 13. Aug. 2003 16:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Gleich vorweg: Ich habe die Suche benutzt und auch einiges gefunden. Besonders angetan haben es mir die folgenden zwei Beiträge:

Koordinaten von mehreren Linien auslesen lassen von Tanja S: http://ww3.cad.de/foren/ubb/Forum54/HTML/003266.shtml
hier gibt es ein VBA Programm von autogis.

Koordinaten der Kontrollpunkte von 3D-Polylinien von Hubert Ammer http://ww3.cad.de/foren/ubb/Forum54/HTML/002858.shtml
hier gibt es ein Lisp-Programm geschickt von Assi.

Jetzt sollte man denken, dass alle Fragen zu dem Thema geklärt wären. Aber ich bin ein DAU. Mein Problem ist: ich würde gerne die x,y UND z Koordinaten von den Punkten einer Polylinie in eine Textdatei bekommen (um es später in Excel zu importieren).

Die oben genannten Programme funktionieren leider nicht richtig. Bei 3dPolylinien bekomme ich überhaupt keine Koordinaten. Bei 2d Polylinien bekomme ich bei PLINETYPE = 0 nur für den ersten Punkt die  z Koordinate und für PLINETYPE = 2 bekomme ich überhaupt keine z Koordinate.
Was mache ich falsch?

Zusatzfrage: ich möchte aus den Höhenschichtenlinien dann 3d Körper oder Flächen machen. Sollte egal sein ob ich 2d oder 3d Polylinien verwende, oder?

danke
georg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Karsten HST
Mitglied
Bauingenieur


Sehen Sie sich das Profil von Karsten HST an!   Senden Sie eine Private Message an Karsten HST  Schreiben Sie einen Gästebucheintrag für Karsten HST

Beiträge: 54
Registriert: 22.04.2003

erstellt am: 13. Aug. 2003 17:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gms76 10 Unities + Antwort hilfreich

Die Koordinaten einer Polylinie kannst Du in VBA über die Coordinates-Eigenschaft abrufen. Da alle Polylinientypen diese Eigenschaft besitzen, ist es egal welchen Art verwendet wird. Der Unterschied zwischen den Polylinientypen besteht darin, das eine optimierte Polylinie lediglich X und Y speichert, die 3D- und 2D-Polylinie zusätzlich den Z-Wert. Einzelne Stützpunktkoordinaten kannst Du mit der Coordinate-Eigenschaft abrufen. Hier muss dann lediglich diue Nummer des Stützpunktes und eventuell die Koordinate angegeben werden.

X = Pl.Coordinate(0)(0) 'X-Wert des ersten Stützpunktes
Y = Pl.Coordinate(0)(1) 'Y-Wert des ersten Stützpunktes

Bei 3D-Polylinien währe der Z-Wert im dritten Feld des Arrays gespeichert
Z = Pl.Coordinate(0)(2) 'X-Wert des ersten Stützpunktes

Bei 2D-Polylinien müsstest Du den Wert der Elevation-Eigenschaft als Z-Koordinate verwenden.

Nachfolgend ein kleines Beispiel, wie der ganze Fall abgehandelt werden könnte.

Public Sub ExportPolylineCoords()
  Dim AcSSet As AcadSelectionSet
  On Local Error Resume Next
  If TypeName(SelectionSets("Auswahl")) = "Nothing" Then
      SelectionSets.Add "Auswahl"
  End If
  Set AcSSet = SelectionSets("Auswahl")
  AcSSet.Clear
  AcSSet.SelectOnScreen
  Open "C:\Coords.txt" For Output As #1
  If AcSSet.Count > 0 Then
      For X = 0 To AcSSet.Count - 1
          Set Object = AcSSet.Item(X)
          Select Case TypeName(Object)
              Case "IAcadPolyline", "IAcad3DPolyline", "IAcadLWPolyline"
                  For i = 0 To GetVertexCount(Object) - 1
                    OutStr = Utility.RealToString(Object.Coordinate(i)(0), acDefaultUnits, 3)
                    OutStr = OutStr & " " & Utility.RealToString(Object.Coordinate(i)(1), acDefaultUnits, 3)
                    If TypeName(Object) = "IAcad3DPolyline" Then
                        OutStr = OutStr & " " & Utility.RealToString(Object.Coordinate(i)(2), acDefaultUnits, 3)
                    Else
                        OutStr = OutStr & " " & Utility.RealToString(Object.Elevation, acDefaultUnits, 3)
                    End If
                    Print #1, OutStr
                  Next
          End Select
      Next
  End If
  Close
  AcSSet.Delete
End Sub

Public Function GetVertexCount(Polyline) As Integer
On Error Resume Next
Select Case TypeName(Polyline)
  Case "IAcadLWPolyline"
      VertList = Polyline.Coordinates
      GetVertexCount = (UBound(VertList) + 1) / 2
  Case "IAcadPolyline", "IAcad3DPolyline"
      VertList = Polyline.Coordinates
      GetVertexCount = (UBound(VertList) + 1) / 3
End Select
End Function

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 13. Aug. 2003 20:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gms76 10 Unities + Antwort hilfreich

Hallo Georg,

bei Catwiesel

"http://www.cadwiesel.de/"

kannst du unter ->Bauglötze -> P-Line, eine Lispdatei finden, die Koordinaten ausgibt.

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 14. Aug. 2003 13:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gms76 10 Unities + Antwort hilfreich

Servus

Ich möchte aus den Höhenschichtenlinien dann 3d Körper oder Flächen machen. Sollte egal sein ob ich 2d oder 3d Polylinien verwende, oder?

Wenn du es ohne Zusatzprogramm schafft´s sag mir wie.
Oder wenn es wer anderer kann soll´s bitte sagen

------------------

Wer Rechtschreibfehler findet, darf sie der Analphabetenvereinigung schenken.

mfG Bernd P.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

gms76
Mitglied
Student

Sehen Sie sich das Profil von gms76 an!   Senden Sie eine Private Message an gms76  Schreiben Sie einen Gästebucheintrag für gms76

Beiträge: 2
Registriert: 13.08.2003

erstellt am: 14. Aug. 2003 17:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Viiielen Dank für Eure Antworten!!!

Vor allem an Karsten HST!
Es funktioniert ganz toll mit allen Polylinien. Und die Erklärung vom Backround finde ich auch super. Ich will/sollte sowieso etwas VBA lernen und da helfen mir solche Erklärungen sehr viel weiter.

Danke auch an Theodor Schoenwald!
Guter Link! Ich muss aber gestehen, ich habe es nicht geschafft das Programm zum laufen zu bringen. Das liegt aber an mir. Ich kann gerade Copy&Paste.

Danke noch mal an alle!

@Bernd P:
Ich habe bis dato mit Regeloberflächen also Ruled Surface versucht. Mit eher mäßigen Erfolg. Solange die Linien halbwegs parallel sind geht es irgendwie. Man muss sich etwas mit den Variablen Surftab1 (legt die Teilung des Netzes entlang der Definitionslinien fest) und Surftab2 spielen. Das ist aber keine Lösung.

georg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 19. Aug. 2003 07:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gms76 10 Unities + Antwort hilfreich

Servus

Mit Surface hab ich´s auch schon Probiert.

Nur leider sind es nur "Oberflächen" un keine "Körper".

Man müsste wahrscheinlich mit Zusatzprogs arbeiten, die einen Körper aus schcichtenlinien erstellen.

------------------

Wer Rechtschreibfehler findet, darf sie der Analphabetenvereinigung schenken.

mfG Bernd P.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz