| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Koordinaten einer Polylinie bearbeiten (1516 mal gelesen)
|
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 10. Mai. 2012 15:33 <-- editieren / zitieren --> Unities abgeben:         
|
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4191 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 10. Mai. 2012 15:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Theo37
Hallo Theo, ein Beispiel weiß ich nicht, welches man im Internet anschauen könnte - gibt's aber bestimmt. Wie weit bist du denn mit deinen Versuchen .. und hakt es konkret? Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 10. Mai. 2012 16:28 <-- editieren / zitieren --> Unities abgeben:         
Hallo Holger, ich bräuchte das End und das Start Segment einer Polylinie. Ich möchte wissen welches Ende näher an einem Punkt liegt. Um dieses Segment dann zu verändern. In dem Codestück unten, stelle ich eigentlich nur fest ob es sich um eine Polylinie handelt. Dann komm ich nicht weiter. Gruß, Theo For i = 1 To LineNumber1 Select lines1(i).GetType.Name Case "Line" Myline = lines1(i) PointA = New Point3d(Myline.StartPoint.X, Myline.StartPoint.Y, 0) PointB = New Point3d(Myline.EndPoint.X, Myline.EndPoint.Y, 0) Case "Xline" MyKLine = lines1(i) PointA = New Point3d(MyKLine.BasePoint.X, MyKLine.BasePoint.Y, 0) PointB = New Point3d(MyKLine.SecondPoint.X, MyKLine.SecondPoint.Y, 0) Case "Ray" MyRay = lines1(i) PointA = New Point3d(MyRay.BasePoint.X, MyRay.BasePoint.Y, 0) PointB = New Point3d(MyRay.SecondPoint.X, MyRay.SecondPoint.Y, 0) Case "Polyline2d" MyPoly2d = lines1(i) MyPoly2d....hier bräuchte ich zugriff auf die Koordinaten der Polylinie PointA = New Point3d(Myline.StartPoint.X, Myline.StartPoint.Y, 0) PointB = New Point3d(Myline.EndPoint.X, Myline.EndPoint.Y, 0) End Select Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4191 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 10. Mai. 2012 16:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Theo37
Hallo Theo, dann solltest du dir mal das Polylinienobjekt anschauen, welche Eigenschaften dieses zur Verfügung stellt, und du solltest dich mit dem Aufbau einer Polylinie ansich beschäftigen. Mal Grundsätzliches dazu: Eine Polyline hat Verticies, welche die Kontrollpunkte darstellen. Diese sind in der Reihenfolge, wie diese in der PL vorkommen indiziert. Nun nennt man diese Indizies bei Polylines aber Parameter. Diese Parameter sind vom Typ Double, was ansich verwundern sollte, da die Scheitelpunkt-Indizies als ganzzahlige Werte erwartet werden müssten. Im Umkehrschluss könnte es aber auch sein, dass man über diesen Parameter auch Punkte auf PolylinienSegmenten bestimmen kann - dem ist so. Wenn du also die Eigenschaft EndParameter anschaust, dann steht dort ein ganzzahliger DoubleWert drinn, der dir die Anzahl der Scheitelpunkte mitteilt. Das Endsegment-Kontrollpunkte sprichst du also über den Index Endparam - 1 und Endparam an. Das Startsegment analog über Startparam und Startparam + 1. Willst du die Mitte eines Segments haben, dann ist der Punkt über den SegmentStartparam + 0.5 zu ermitteln. Ich denke, mit diesen Informationen kannst du dir die Schleife bauen, die dir die Koordinaten der Polylinie ermittelt. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
 
 Beiträge: 426 Registriert: 08.10.2008 ACAD 2024 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 10. Mai. 2012 17:00 <-- editieren / zitieren --> Unities abgeben:         
Hallo Holger, ich glaub das ist die Lösung: Punkt1 = MyPoly2d.GetPointAtParameter(0) Punkt2 = MyPoly2d.GetPointAtParameter(1) .... auf GetpointAtParameter bin ich einfach nicht gekommen. Erst als Du das mit den Parametern geschrieben hast, bin ich dann auf Getpoint.. gestoßen. Ich hatte immer versucht eine Point3dcollection auszulessen, weil ich gesehen habe, daß wenn man eine Polylinie neu erstellt, dann eine Point3dcollection angegeben werden muß. OK, jetzt bastle ich mal weiter. Danke, Gruß, Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |