Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  MText Position und Text

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:  MText Position und Text (1600 mal gelesen)
Stelli1
Ehrenmitglied
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 2-2014
VS6, VS.net 2010

erstellt am: 20. Jan. 2014 18: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

Hallo zusammen,

habe ein kleines Problem. Wie lese ich die Eigenschaften aus einem MText aus?
Ich brauche das für die automatische Übernahme von Texten in die Datenbank.

Code:
  Public Function GetTextFeatures(Fieldname As String, LabelID As Long) As Long

        ' Labelfeatureklasse
        Dim LabelFeatureClass As Autodesk.Map.IM.Data.FeatureClass

        ' Mögliche Elemente für Elementfilter
        _AcadTypen = "TEXT,MTEXT"

        ' Auswahlfilter bilden
        Dim values() As TypedValue = {New TypedValue(DxfCode.Start, _AcadTypen)}
        Dim Filter As New SelectionFilter(values)

        ' Optionen für Auswahl
        Dim SelOptionen As New PromptSelectionOptions
        SelOptionen.MessageForAdding = "Objekte (" & _AcadTypen & ") zur Übernahme wählen"
        SelOptionen.AllowDuplicates = False

        ' Auswahl
        Dim SelResult As PromptSelectionResult
        SelResult = _Editor.GetSelection(SelOptionen, Filter)

        If Not SelResult.Status = PromptStatus.OK Then
            Return 0
        End If

        ' In selectionset übernehmen
        _SelectionSet = SelResult.Value
        Dim IdArray As ObjectId()
        IdArray = _SelectionSet.GetObjectIds()

        ' Transactionmanger
        Dim TransactionM As Autodesk.AutoCAD.DatabaseServices.TransactionManager
        TransactionM = _Database.TransactionManager
        ' Transaction
        Dim mTransaction As Transaction
        mTransaction = TransactionM.StartTransaction()

        Dim acEntity As Entity
        Dim acMText As MText
        Dim acText As DBText

        Dim Layername As String
        Dim EntityName As String = ""
        Dim Farbindex As Integer
        Dim LinienTyp As String

        Dim Rechts As Double
        Dim Hoch As Double
        Dim Z As Double
        Dim Orientation As Double = 0
        Dim Feature As Autodesk.Map.IM.Data.Feature
        Dim LabelFeature As Autodesk.Map.IM.Data.Feature
        Dim Height As Double = 1
        Dim Textvalue As Double


        ' FID Liste zurücksetzen
        Dim FIDs As String = ""

        Try
            _Editor.WriteMessage((ControlChars.Lf & "Gewählte Objekte " & _SelectionSet.Count))

            Dim Oid As ObjectId
            For Each Oid In IdArray
                Height = 1
                Textvalue = ""
                acEntity = TransactionM.GetObject(Oid, OpenMode.ForRead, True)

                Orientation = 0
                Layername = acEntity.Layer
                Farbindex = acEntity.ColorIndex
                LinienTyp = acEntity.Linetype

                Feature = _TB_FeatureClass.CreateFeature()

                If TypeOf (acEntity) Is Autodesk.AutoCAD.DatabaseServices.DBText Then
                    acText = acEntity
                    EntityName = "TEXT"
                    Rechts = acText.Position.X
                    Hoch = acText.Position.Y
                    Z = acText.Position.Z
                    Textvalue = acText.TextString
                    Orientation = acText.Rotation
                    Height = acText.Height
                End If
                Dim xx As Autodesk.AutoCAD.DatabaseServices.MTextFragment

                If TypeOf (acEntity) Is Autodesk.AutoCAD.DatabaseServices.MText Then
                    acMText = acEntity
                    EntityName = "MTEXT"
                    ' Position ???
                    ' ????????????????????????????
                    ' Text ohne Formatierung ???
                    Textvalue = acMText.Text
                    Orientation = acMText.Rotation
                    Height = acMText.Height
                End If

                Feature = _TB_FeatureClass.CreateFeature()

                If Feature.Attributes.Contains(Fieldname) Then
                    Feature.Attributes.Item("Fieldname").Value = Orientation
                End If

                Dim ParentFID As Long = Feature.FID
                Dim LabelDefID As Long = LabelID
                Dim TextField As String = Fieldname

                ' Je nach Zielobjektklasse
                If Feature.FeatureClass.Type = Autodesk.Map.IM.Data.FeatureClassType.Attribute Then
                    ' Labelfeatureklasse
                    LabelFeatureClass = _TB_FeatureClass.LabelFeatureClass

                    ' Neues Labelfeature anlegen
                    LabelFeature = LabelFeatureClass.CreateFeature()

                    ' Feld zuweisen
                    TextField = Fieldname

                ElseIf Feature.FeatureClass.Type = Autodesk.Map.IM.Data.FeatureClassType.Point Then
                    ' Labelfeatureklasse
                    LabelFeatureClass = _TB_FeatureClass.LabelFeatureClass

                    ' Neues Labelfeature anlegen
                    LabelFeature = LabelFeatureClass.CreateFeature()

                    ' Textposition auch als Punkt
                    Feature.Geometry = New Autodesk.Map.IM.Graphic.Point(Rechts, Hoch)

                    ' Feld zuweisen
                    TextField = Fieldname

                ElseIf Feature.FeatureClass.Type = Autodesk.Map.IM.Data.FeatureClassType.Label Then
                    LabelFeatureClass = _TB_FeatureClass

                    ' LabelFeature ist bereits Feature
                    LabelFeature = Feature

                    ' Feld zuweisen
                    TextField = "Label_Text"
                    ' Kein Parentobjekt
                    ParentFID = 0

                End If

                ' Geometrie zuweisen
                LabelFeature.Geometry = New Autodesk.Map.IM.Graphic.Point(Rechts, Hoch)
                LabelFeature.Attributes.Item(TextField).Value = Textvalue
                ' Labeldefinition und Relation (wenn nicht schon Labelfeatureklasse
                If ParentFID > 0 Then
                    LabelFeature.Attributes.Item(Autodesk.Map.IM.Data.Feature.FIDParentColumn).Value = ParentFID
                    LabelFeature.Attributes.Item(Autodesk.Map.IM.Data.Feature.LabelDefIdColumn).Value = LabelDefID
                End If

                ' Richtung
                If LabelFeature.Attributes.Contains("ORIENTATION") Then
                    Feature.Attributes.Item("ORIENTATION").Value = Orientation
                End If


Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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



Ingenieur (m/w/d) Produktentwicklung

Ovesco Endoscopy ist ein forschendes Medizintechnikunternehmen in der flexiblen Endoskopie. Wir entwickeln, produzieren und vertreiben innovative Instrumente und Systeme zur Behandlung von gastrointestinalen Erkrankungen. Dabei bieten wir umfassende Verfahren und begleiten unsere Kunden auf dem gesamten Weg von der Schulung bis hin zur Intervention. Unsere ausgeprägte Innovationskultur, die Sinnhaftigkeit ...

Anzeige ansehenMedizintechnik
Brischke
Moderator
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

AutoCAD 20XX, defun-tools

erstellt am: 20. Jan. 2014 18: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 Stelli1 10 Unities + Antwort hilfreich

MText.Contents (Lesen/Schreiben)
oder
MText.Text (Lesen/ ich meine ohne Steuerzeiche - bin mir aber nicht sicher)

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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