Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Text selectieren / auslesen

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
Autor Thema:  Text selectieren / auslesen (1067 mal gelesen)
Armand
Mitglied


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

Beiträge: 3
Registriert: 13.09.2005

CPU Intel P4 3.00GHz
Ram 1GB
Win 2000 SP4
Mechanical Desktop 2004 DX

erstellt am: 14. Sep. 2005 10:48    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 zusammen,

ich bin neu in diesem Geschäft (VBA ACAD) und habe ein gleich ein Problem.

Ich habe ein Serie von Zeichnungen in denen sich links unten ein MText befindet (Koordinaten 42.5,11,0). Diesen Text möchte ich auslesen und mit dem Zeichnungsnamen in eine txt schreiben lassen. Das mit dem Namen ist kein Problem aber das Selectieren des Textes erweist sich als würg. Wo liegt mein (der) Fehler? Ich habe das Exempel aus der „Hilfe“ genommen siehe unten.


Sub Example_SelectAtPoint()
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET2")
    Dim point(0 To 2) As Double
    point(0) = 42.5: point(1) = 11: point(2) = 0
    ssetObj.SelectAtPoint point
End Sub

MfGrüße
Armand

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 14. Sep. 2005 12:18    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 Armand 10 Unities + Antwort hilfreich

Hi & welcome,

ja, sendcommand "_mtedit" und sendkeys "^a" und sendkeys "^c"
geht schonmal nicht, bzw. halt nur zu Fuss, da während der Texteditor aktiv ist, acadbefehle nicht ausgeführt werden.
Damit hättest Du wenigstens den Text in der Zwischenablage ohne Formatierungsmüll.
Na was soll's, is halt alles nich so einfach ...
Für 'einfache' Mtexte kannste den Textstring auslesen, also so in etwa:

Code:

Sub a()
  Dim sset As AcadSelectionSet
  Dim pnt#(2), i%, s$
  pnt(0) = 42.5: pnt(1) = 11
  With ThisDrawing
      Set sset = .SelectionSets.Add("newset")
      sset.SelectAtPoint pnt
      s = Replace(sset.Item(0).TextString, "\P", Chr(13))
      Open "d:\" & Left(.Name, Len(.Name) - 3) & "txt" For Output As #1
      Print #1, s
      Close #1
      sset.Delete
  End With
End Sub

Gruss Nancy 

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 14. Sep. 2005 12: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 Nur für Armand 10 Unities + Antwort hilfreich

Hallo Armand,

hab gerade gesehen das schon eine Antwort da war.
Hatte das Beispiel gerade fertig gestückelt und schickst halt mal.
Ist aber der gleiche Ansatz wie bei Nancy.

Code:

Dim Ausgabedatei As String
Dim SelSet As AcadSelectionSet
Dim SelPkt(0 To 2) As Double
Dim MyText As AcadMText
Dim Text As String
Dim intAusgabe As Integer

Dim GpType(0 To 0) As Integer
Dim GpValue(0 To 0) As Variant
Dim FilterType As Variant
Dim FilterValue As Variant

On Error Resume Next
Err.Clear
' Versuch Zuweisung MySelSet
Set SelSet = ThisDrawing.SelectionSets("MySelSet")
If Err.Number <> 0 Then
  ' Selektionset war noch nicht da
  Set SelSet = ThisDrawing.SelectionSets.Add("MySelSet")
End If

On Error GoTo 0

' Punkt angeben
SelPkt(0) = 50: SelPkt(1) = 50
' Filter für Mtext
GpType(0) = 0
GpValue(0) = "MTEXT"
' Nach Variant
FilterType = GpType
FilterValue = GpValue
' Selektion an diesem Punkt holen
SelSet.Clear
SelSet.SelectAtPoint SelPkt, FilterType, FilterValue

If SelSet.Count = 0 Then
  MsgBox "Nichts gefunden"
ElseIf SelSet.Count > 1 Then
  MsgBox "Mehrere Texte gefunden"
Else
  ' Nur eins gefunden
  Set MyText = SelSet(0)
  Text = MyText.TextString
  intAusgabe = FreeFile
  Ausgabedatei = "C:\Temp\Zeichnungen.txt"
  Open Ausgabedatei For Append As #intAusgabe
  Print #intAusgabe, "Zeichnung: " & ThisDrawing.FullName & "  " & Text
  Close
End If


Gruß
Stelli1

------------------

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

Armand
Mitglied


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

Beiträge: 3
Registriert: 13.09.2005

CPU Intel P4 3.00GHz
Ram 1GB
Win 2000 SP4
Mechanical Desktop 2004 DX

erstellt am: 14. Sep. 2005 13:19    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

Hi Nancy,

hat super geklappt.
Warum findet man so etwas nicht in der Hilfe?

DANKE

Armand

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4171
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 14. Sep. 2005 13:26    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 Armand 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Armand:
...Warum findet man so etwas nicht in der Hilfe?...

Weil in der Hilfe nur die einzelnen Funktionen und Objekte beschrieben sind, und nicht die für den Anwendungsfall sinnvolle Kombination dergleichen.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

Jackpot on demand - Wir eröffnen den Spätsommer mit einer Verlosung!

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

Armand
Mitglied


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

Beiträge: 3
Registriert: 13.09.2005

CPU Intel P4 3.00GHz
Ram 1GB
Win 2000 SP4
Mechanical Desktop 2004 DX

erstellt am: 14. Sep. 2005 13:31    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

Hi Stelli1,

Auch das script hilft mir sehr weiter.

Gruß
Armand

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