| |
 | 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: MLine (1947 mal gelesen)
|
verwegener Mitglied Ing.
 Beiträge: 6 Registriert: 28.04.2015
|
erstellt am: 04. Mai. 2015 08:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo erst mal, seit einigen Tagen versuche ich ein Problem zu lösen. Da ich aber nicht weiterkomme frage ich mal hier in der Expertenrunde. Ich möchte mit VBA eine Multilinie ( MLINE) erstellen, die aus einer oberen und einer unteren Linie besteht. Das gelingt aber leider nicht so, wie es in der Doku steht, erst wenn ich eine Multilinie mit 4 Einzellinien erzeuge ( als Rechteck) wird die Linie fast wie gewollt dargestellt, allerdings will ich ja eine offene MLinie und kein Rechteck. Ausserdem wird diese Linie aufgrund von Daten aus einer Datenbank erzeugt. Nun möchte ich diese Linie mit der Maus anklicken und verschieben. Die neuen Koordinaten sollen dann wieder in der Datenbank gespeichert werden. Das mit dem Anklicken ist gelöst, aber wie kann ich die Linie ( das Objekt) mit einer Bezeichnung versehen und diese Bezeichnung wieder ermitteln ?? Kann mir jemand helfen ? Mfg verwegener Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 04. Mai. 2015 10:38 <-- editieren / zitieren --> Unities abgeben:          Nur für verwegener
Hallo Verwegener, willkommen im Forum. Für uns ist es immer einfacher wenn man Beispielcode zur Verfügung hat (auch wenn es noch nicht so funktioniert wie geplant) damit man sieht wo das Problem liegen könnte. Grüße Klaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
verwegener Mitglied Ing.
 Beiträge: 6 Registriert: 28.04.2015
|
erstellt am: 04. Mai. 2015 11:43 <-- editieren / zitieren --> Unities abgeben:         
Moin, hier der Code : Dim mLineObj As AcadMLine Dim Rohr(0 To 11) As Double Rohr(0) = 202: Rohr(1) = 166.2: Rohr(2) = 0 Rohr(3) = 271.6: Rohr(4) = 164.9: Rohr(5) = 0 Rohr(6) = 202: Rohr(7) = 169.2: Rohr(8) = 0 Rohr(9) = 271.6: Rohr(10) = 167.9: Rohr(11) = 0 ' Create the line in model space Set mLineObj = ThisDrawing.ModelSpace.AddMLine(Rohr) ThisDrawing.Application.ZoomAll Das wird eine Zick Zack Linie, sollte aber zwei parallele Linie ergeben. Mfg verwegener
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 04. Mai. 2015 13:27 <-- editieren / zitieren --> Unities abgeben:          Nur für verwegener
Und wie sind die Einstellungen beim MLStil? Hast Du dort Deine gewünschten Einstellungen auf aktuell stehen? PS: Kannst Du bitte noch die SysInfo ergänzen? Einfach beim nächsten Antworten unter dem eigentlichen Text ergänzen. Autocad / Bricscad ? Welche Version? [Diese Nachricht wurde von KlaK am 04. Mai. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
verwegener Mitglied Ing.
 Beiträge: 6 Registriert: 28.04.2015
|
erstellt am: 04. Mai. 2015 15:40 <-- editieren / zitieren --> Unities abgeben:         
Moin, Problem erkannt. Ich bin davon ausgegangen, das die Definition der Multilinie im Befehl AddMline gemacht wird. Ist aber falsch. Es werden nur die Anfangs- und Endkoordinaten angegeben und über die gesetzte MLinienArt mit mlStilName = "700" ThisDrawing.SetVariable "CMLSTYLE", mlStilName wird die Definition der Linie festgelegt. Bei der Standard Definition ist dann die Achse der MLine anzugeben. Fein, damit ist das erste Prob. gelöst. Wie kann ich jetzt diese Linie benennen( z.B. R1020 ) und diesen Namen dann später ermitteln ?? Mfg verwegener AutoCAD 2007 auf Windows 8.1 (64) ------------------ AutoCAD 2007 Windows 8.1 (64) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 04. Mai. 2015 15:58 <-- editieren / zitieren --> Unities abgeben:          Nur für verwegener
Hallo, So ganz verstehe ich Deine Angaben von nur Anfangs- uns Endpunkt nicht. Du kannst doch beliebig viele Stützpunkte der MLinie angeben. Aber egal, Du scheinst ja eine Lösung gefunden zu haben. Benennen kannst Du diese Linie nicht direkt. Eine Möglichkeit wäre erweiterte Daten (XData) der Linie hinzuzufügen (object.SetXData XDataType, XData). Diese können mit getXData wieder abgefragt werden. Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
verwegener Mitglied Ing.
 Beiträge: 6 Registriert: 28.04.2015
|
erstellt am: 04. Mai. 2015 19:09 <-- editieren / zitieren --> Unities abgeben:         
|
verwegener Mitglied Ing.
 Beiträge: 6 Registriert: 28.04.2015
|
erstellt am: 05. Mai. 2015 17:43 <-- editieren / zitieren --> Unities abgeben:         
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 05. Mai. 2015 19:23 <-- editieren / zitieren --> Unities abgeben:          Nur für verwegener
Hallo, Ich habe dazu alle MLinien in einer Vorlagenzeichnung (mit WBlock herausgeschrieben) Diese wird über Insert eingelesen, damit sind die MLinien dann auch in der neuen Zeichnung. Die eingefügte Blockreferenz und den Block noch löschen, dann kann der Stil auch geändert werden. Oder Du schreibst den Stil in eine MNL-Datei und ladest diese nach. Direkt erzeugen aus VBA dürfte nicht so einfach sein, ein Beispiel für .NET findest Du hier Grüße Klaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
verwegener Mitglied Ing.
 Beiträge: 6 Registriert: 28.04.2015
|
erstellt am: 05. Mai. 2015 20:59 <-- editieren / zitieren --> Unities abgeben:         
Moin, erst mal danke für das Mitdenken. Teil meines vorigen Beitrages war ja die Frage, wie ich die mnl Datei mit den Liniendefinitionen per VBA einlese. Wenn du da noch einen Hinweis hättest ?? Mfg verwegener ------------------ AutoCAD 2007 Windows 8.1 (64) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 06. Mai. 2015 12:15 <-- editieren / zitieren --> Unities abgeben:          Nur für verwegener
Hallo, Direktes Einlesen über VBA weiß ich jetzt keine Möglichkeit. Es gab mal hier einen Beitrag über das Erzeugen eines Multilinienstils mit Lisp Man müßte nun die MLN - Datei einlesen und entsprechend auswerten. Hilfe dazu findest Du in der DXF-Referenz und in der Onlinehilfe. Über das Ausführen von Lispcode unter VBA findest Du über die Suchfunktion hier im Forum auch Hinweise. Grüße Klaus PS: MNL-Datei ist eine Menüdatei für Lisp, Du möchtest aber eine MLN-Datei = Multilinie einlesen PPS: Wissenswertes zur Systeminformation bzw. Systeminformation anpassen Ich vermute mal Du hast die Ergänzung unten falsch verstanden, denn normalerweise stehen die Angaben unter Deinem Usernamen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |