Hallo Heiko,
ich habe es mal ausprobiert. Hier die Routine:
Sub main()
Dim einfuege As Variant
Dim Bestxt As String
Dim Besbreite As Double
Dim objMText As AcadMText
Besbreite = 50
Bestxt = "Zusatztext: "
einfuege = ThisDrawing.Utility.GetPoint(, "Bitte den Einfügepunkt wählen")
Set blockref = ThisDrawing.ModelSpace.AddMText(einfuege, Besbreite, Bestxt)
ThisDrawing.Regen acAllViewports
End Sub
Dazu Folgendes.
1. Du brauchst nicht, wenn du im AutoCAD bist ein AutoCAD Objekt zu öffnen. Wie du oben siehst geht es auch ohne. Wenn du es jedoch machst, dann solltest du es vor dem Beenden der Routine auf Nothing setzen, sonst läuft dein Speicher u.U. über.
Set [objekt] = Nothing
2. Das Objekt BlockRef war bei dir nicht dimensioniert. Solltest du unbedingt machen. Am besten im Deklarationsbereich "Option Explicit" eintragen, dann warnt VBA dich, wenn du eine Dimensionierung vergessen hast.
3. Bei mir trat im Übrigen der Fehler mit einer Texthöhe nicht auf. Bei mir wurde der Text in einer Texthöhe von 2.5 Zeicheneinheiten eingefügt.
Ich habe noch nicht nachgeforscht warum das so ist. Stell im AutoCAD Mtext auf eine Texthöhe manuell ein und versuch es dann noch mal.
Es gibt Steuerzeichen, die die Texthöhe im Mtext definieren (such mal in der Dokumentation), vielleicht solltest du diese Steuerzeichen in den Text mit einfügen.
Viel Spaß noch.
Jürgen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP