| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Linie in Polylinie umwandeln (2516 mal gelesen)
|
Abele Mitglied

 Beiträge: 71 Registriert: 09.06.2004
|
erstellt am: 14. Mrz. 2005 08:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich möchte eine Linie in eine Polylinie umwandeln und danach andere zu dieser Polylinie hinzufügen. (AutoCAD: Linie in Polylinie umwandeln & Verbinden) Leider schaffe ich es nicht einmal eine vorhandene Linie in als Polylinie zu definieren. Kann mir jemand helfen? Viele Grüße Ralph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4191 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 14. Mrz. 2005 12:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Abele
|
Abele Mitglied

 Beiträge: 71 Registriert: 09.06.2004
|
erstellt am: 14. Mrz. 2005 12:22 <-- editieren / zitieren --> Unities abgeben:         
Habe leider mit Polylinien noch nie was gemacht. Dachte mir ich kann eine bestehende Linie als Polylinie mit Set definieren. Klappt aber nicht. Ich habe mehrere Zeichnungen, in denen Konturen als einzelne Fetzen sind, von denen ich ein Offset machen muß. Will aus den einzelnen Fetzen Polylinien machen und diese dann automatisch einen Offset machen lassen. Leider scheiter ich schon bei der definierung der Linie als Polylinie. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
    
 Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ..., einige AutoCADs 200x & SWX 2kX
|
erstellt am: 14. Mrz. 2005 13:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Abele
Als kleiner Denkanstoss: Code:
Public Sub StartEndPoint() Dim oAcadLine As AcadLine Dim oAcadPoly As AcadLWPolyline Dim oEntity As AcadEntity Dim Point As Variant On Error Resume Next ThisDrawing.Utility.GetEntity oEntity, Point, "Objekt wählen: " If oEntity Is Nothing Then Exit Sub Select Case oEntity.ObjectName Case "AcDbLine" Set oAcadLine = oEntity With oAcadLine MsgBox "Start: " & .StartPoint(0) & ", " & .StartPoint(1) & ", " & .StartPoint(2) & vbCrLf & "End: " & .EndPoint(0) & ", " & .EndPoint(1) & ", " & .EndPoint(2) End With Case "AcDbPolyline" Set oAcadPoly = oEntity With oAcadPoly MsgBox "Start: " & .Coordinates(0) & ", " & .Coordinates(1) & vbCrLf & "End: " & .Coordinates(UBound(oAcadPoly.Coordinates) - 1) & ", " & .Coordinates(UBound(oAcadPoly.Coordinates)) End With Case Else Exit Sub End Select End Sub
dann paar schleifen für den SelectionSet der Linien, paar Filterfunktionen und Doppelgänger zu eliminieren und eine Funktion die aus den ausgelesenen Koordinaten dir eine Polylinie macht ThisDrawing.ModelSpace.AddPolyline(points) . Dabei sollte die Reihenfolge der Punkte auf keinen Fall getauscht werden, sonst sieht die neue Polylinie etwas komisch aus. Sonstige Baussteine sind in der AutoCAD 200X Developer Help dokumentiert. ------------------ "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?" Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Abele Mitglied

 Beiträge: 71 Registriert: 09.06.2004
|
erstellt am: 14. Mrz. 2005 13:46 <-- editieren / zitieren --> Unities abgeben:         
Danke erstmal Proxy. Aber wenn ich mir den Code so anschaue, löst er nicht mein Problem. Vielleicht habe ich mich nicht ausführlich genug ausgedrückt. Folgende Situation: Habe z. B. eine Zeichnung mit aneinanderhängenden Linien. Möchte nun aus diesen Linien !eine! Polylinie machen. Wenn ich nun in VBA eine normale Linie mit SET in eine Variable des Formats AcadPolyline legen will, geht das nicht, da der Typ nicht passt. Wie kann ich also in VBA eine normale Linie als Polylinie umwandeln und anschließend an diese noch weitere anbinden. Bin für jeden Tip dankbar. Gruß Ralph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 14. Mrz. 2005 14:23 <-- editieren / zitieren --> Unities abgeben:          Nur für Abele
Hi, ein Polylinie ist immer ein eindimensionales Feld von Doubles (0 to x) eine Linie wird über Startpoint(0 to 2) und Endpoint(0 to 2) definiert. Du musst faktisch erstmal Anzahl der x [Stützpunkte] ermitteln und dann das Array der Pline mit Redim festzurren zu können. Schau' Dir mal als Bsp. diesen relativ schwachsinnigen *gg* Code an, vor allem das 'Dummy'. Dummy ist da 'ne Linie die x-mal gedreht wird und aus deren Endpoints wird dann 'ne Pline erzeugt. Ist zwar nicht das was du möchtest, aber nurmal vom Prinzip her. Gruss Nancy [Diese Nachricht wurde von startrek am 14. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |