Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Mtext Eigenschaften ändern

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Mtext Eigenschaften ändern (1695 mal gelesen)
lbcad
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3835
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2024
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 23. Jan. 2006 12: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 Leute,

in einem Block habe ich einen Mtext. An diesem Text möchte ich die Laufweite ändern.

Das Ganze soll mit VBA gemacht werden.

Wenn die Zeichnung geöffnet ist, kann ich mittlerweile diesen betreffenden MText in der Zeichnung finden.    Aber die Änderung klappt nicht      .

Frage:

Muß ich den Bloch irgendwie zur Beabeitung öffnen ?

bisher habe ich das so gemacht:

    For Each oBlock In oBlocks
        sText = sText + oBlock.Name + vbCrLf
        If oBlock.Name = sBlockName Then
            bFound = True
            For iZaehler = 1 To oBlock.Count - 1
            Set oEntity = oBlock.Item(iZaehler)
                On Error Resume Next
                If oEntity.TextString = "{DIN ISO 2768 - mK}" Then
                    Set oEntity.TextString = "{\W0.55;DIN ISO 2768 - mK}"          <======
                    oEntity.Update
                    sMsgDone = " -> done <- "
                End If
                On Error GoTo 0
            Next iZaehler
           
        Else
            sMsgBlock = sBlockName & " nicht gefunden"
        End If
       
    Next


Nur - es ändert sich nix     


------------------
Gruß Lothar

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

Während man es aufschiebt, verrinnt das Leben.
�Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)

[Diese Nachricht wurde von lbcad am 23. Jan. 2006 editiert.]

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: 1526
Registriert: 17.08.2005

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

erstellt am: 23. Jan. 2006 16:33    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 lbcad 10 Unities + Antwort hilfreich

Hallo Lothar,

entferne doch mal dein On error Resume Next

Zitat:
Original erstellt von lbcad:
    For Each oBlock In oBlocks
        sText = sText + oBlock.Name + vbCrLf
        If oBlock.Name = sBlockName Then
            bFound = True
            For iZaehler = 1 To oBlock.Count - 1
            Set oEntity = oBlock.Item(iZaehler)
                On Error Resume Next
                If oEntity.TextString = "{DIN ISO 2768 - mK}" Then
                    Set oEntity.TextString = "{\W0.55;DIN ISO 2768 - mK}"          <======
                    oEntity.Update
                    sMsgDone = " -> done <- "
                End If
                On Error GoTo 0
            Next iZaehler
           
        Else
            sMsgBlock = sBlockName & " nicht gefunden"
        End If
       
    Next


Code:

'' ungetestet
    For Each oBlock In oBlocks
        sText = sText + oBlock.Name + vbCrLf
        If oBlock.Name = sBlockName Then
            bFound = True
            for each oEntity in oBlock
                if oEntity.ObjectName = "AcDbBlockReference" then
                  If oEntity.TextString = "{DIN ISO 2768 - mK}" Then
                      Set oEntity.TextString = "{\W0.55;DIN ISO 2768 - mK}"
                      oEntity.Update
                      sMsgDone = " -> done <- "
                  End If
                end if
            Next oEntity
           
        Else
            sMsgBlock = sBlockName & " nicht gefunden"
        End If
       
    Next

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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