Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  MLine

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
  
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.

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

Beiträge: 6
Registriert: 28.04.2015

erstellt am: 04. Mai. 2015 08:09    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

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



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

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 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 verwegener 10 Unities + Antwort hilfreich

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.

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

Beiträge: 6
Registriert: 28.04.2015

erstellt am: 04. Mai. 2015 11:43    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

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



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

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 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 verwegener 10 Unities + Antwort hilfreich

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.

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

Beiträge: 6
Registriert: 28.04.2015

erstellt am: 04. Mai. 2015 15:40    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

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



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

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 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 verwegener 10 Unities + Antwort hilfreich

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.

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

Beiträge: 6
Registriert: 28.04.2015

erstellt am: 04. Mai. 2015 19:09    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

Moin,

ja, klar kann ich beliebig viele Stützpunkte angeben.
Hab ich nur nicht erwähnt, hielt ich für logisch.

Danke
verwegener

------------------
AutoCAD 2007
Windows 8.1 (64)

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

verwegener
Mitglied
Ing.

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

Beiträge: 6
Registriert: 28.04.2015

erstellt am: 05. Mai. 2015 17:43    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

Moin,
kennt jemand eine Möglichkeit per VBA die MLinientypen zu laden ??

Oder wie ich die direkt anlegen kann ??

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



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

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 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 verwegener 10 Unities + Antwort hilfreich

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.

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

Beiträge: 6
Registriert: 28.04.2015

erstellt am: 05. Mai. 2015 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

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



Anzeige:Infos zum Werbeplatz >>

cseTools Kanalbestandserfassung CAD APP für GIS, Vermessung und Kartografie, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Mit cseTools Kanalbestandserfassung lässt sich aus reinen Vermessungsdaten (Vermessungspunkten) ein kanal-/fachspezifischer Datenbestand mit erforderlichen Sachdaten zu Kanalnetzen erstellen. Dieses Kanalnetz kann dann auf Knopfdruck als ISYBAU-XML oder DWA-M 150 Datei weitergegeben werden.

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



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

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 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 verwegener 10 Unities + Antwort hilfreich

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

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)2025 CAD.de | Impressum | Datenschutz