Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Maßüberschreibungen finden

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 präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Maßüberschreibungen finden (985 mal gelesen)
PBPaul
Mitglied
Konstrukteur


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

Beiträge: 48
Registriert: 28.09.2004

ACAD 2009, Vista 64

erstellt am: 26. Sep. 2006 20: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

Hallo,

nachdem ich eine Weile vergeblich gesucht habe, nun doch mein Hilferuf an dieser Stelle.
Ich möchte überschriebene Bemaßungen über einen Suchlauf ausfindig machen und durch umfärben der Maßzahl oder Layerwechsel kenntlich machen. Ich weiß es gibt dafür eine Routine in Lisp, die kann ich aber nicht mehr finden.
Und da ich gern in VBA etwas dazu lernen möchte, würde ich gerne wissen wie man hier ansetzen könnte.

Mfg
Paul

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: 26. Sep. 2006 21:00    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 PBPaul 10 Unities + Antwort hilfreich

Abend Paul,

mal nur als simpler Ansatz, um ein TextOverride zu erkennen:

Code:

Sub qwe()
    Dim x As AcadEntity
    For Each x In ThisDrawing.ModelSpace
        If TypeName(x) = "IAcadDimRotated" Then
            If x.TextOverride <> "" Then x.color = acRed
        End If
    Next
End Sub

Performanter/Eleganter wird das ganze mit Filtern der Bemassungen,
hab' den für die Dimensions grade nicht im Schädel;-)
Aber gugg mal die Suche ..., dann wird perfekt;-)

Gruss, Nancy

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

PBPaul
Mitglied
Konstrukteur


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

Beiträge: 48
Registriert: 28.09.2004

ACAD 2009, Vista 64

erstellt am: 26. Sep. 2006 22:56    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 Nancy,

vielen Dank für die schnelle Hilfe.
Das hilft mir schon sehr weiter. Da ich aus 2D-Zeichnungen von vielen Zulieferern 3D-Modelle erstelle ist eine schnelle Prüfung gefäkter Maße eine große Hilfe.
Leider gibt es aber auch Überschreibungen die trotzdem assotiativ sind z.B. "%%c<>". Könnte man so etwas auch filtern?

MfG
Paul

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 27. Sep. 2006 07:03    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 PBPaul 10 Unities + Antwort hilfreich

Hallo Paul,

Wenn die Textüberscheibungen, wie "%%C<>" nicht gefunden werden, müsste es sich um ein Textprefix handeln. Diese kannst du nach Nancy`s Ansatz über if x.textprefix <> "" then... rausfischen.
Allerdings solltest du hier mit Filtern arbeiten, da das IMHOIn my humble oppinion (Meiner Meinung nach) schneller abläuft, als wenn du jedes Element der Zeichnung durchlaufen musst.

Gruß, Carsten

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

PBPaul
Mitglied
Konstrukteur


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

Beiträge: 48
Registriert: 28.09.2004

ACAD 2009, Vista 64

erstellt am: 27. Sep. 2006 22:00    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 Carsten,

nee Prefix habe ich nicht gemeint. Durch die Überschreibung des Bemaßungstextes mit "<>" bleibt die Bemaßungszahl assotiativ und bräuchte nicht als Überschreibung erkannt werden. Ich benutze das um z.B. ein Durchmesserzeichen vor der Maßzahl einzufügen (%%c<> )

MfG
Paul

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 28. Sep. 2006 07:00    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 PBPaul 10 Unities + Antwort hilfreich

Hallo Paul,

Wenn es kein Prefix ist, dann wird es doch mit Nancy'S Beiespiel auch herausgefiltert, da dort ja nur kontrolliert wird, ob eine Textüberschreibung vorhanden ist, oder nicht.

Gruß, Carsten

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

PBPaul
Mitglied
Konstrukteur


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

Beiträge: 48
Registriert: 28.09.2004

ACAD 2009, Vista 64

erstellt am: 28. Sep. 2006 17:21    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 Carsten,

ja das Programm erkennt die Textüberschreibung. Da Überschreibungen mit den Zeichen <> (kann irgendwo im Text auftauchen)immer auch die Korrkte Maßzahl wiedergeben, sollte das Tool diese nicht als Überschreibung kennzeichnen. Es müsste also ein Suchlauf eingebunden werden, der Text auf das Vorhandensein genau diese Zeichenfolge hin analysiert.

MfG
Paul

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

Lappi
Mitglied
Datenträger :)


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

Beiträge: 56
Registriert: 30.08.2006

Ich hoffe dieses kleine Feld reicht aus um alles hinein zu schrei

erstellt am: 28. Sep. 2006 18:03    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 PBPaul 10 Unities + Antwort hilfreich

Hallo.

Man könnte doch den gesamten Inhalt in einen String übergeben und diesen dann durchsuchen, ob "<>" darin enthalten ist?

Grüsse
Lappi

------------------
die EDV (weibl.)...ansonsten wäre die Kommunikation mit Computern und deren angeschlossenen Geräte in einer für jederMann verständlichen Sprache...

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 29. Sep. 2006 07: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 PBPaul 10 Unities + Antwort hilfreich

Hallo Paul,

Um zu überprüfen, ob die Maßüberschreibung den String "<>" enhält kannst du die funktion instr verwenden.

Hier ein kleines Beispiel:

Public Sub AA()
Dim a$ , a$
a = "Dieser Text enhält das Wort 'Test'"
b = "test"
If InStr(a, b) Then
MsgBox "Hallo"
End If
End Sub

Gruß, Carsten

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



Anzeige:Infos zum Werbeplatz >>

CP-Symbols Architectural Series CAD APP für Raum- und Möbeldesign, Tiefbau, TGA

PBPaul
Mitglied
Konstrukteur


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

Beiträge: 48
Registriert: 28.09.2004

ACAD 2009, Vista 64

erstellt am: 30. Sep. 2006 07: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

Hallo,

anbei nun für alle Interessierten das fertige Macro:

Sub BEMMANI()

    Dim Ele As AcadEntity
    Dim Suchtext As String
   
    Suchtext = "<>"
   
    For Each Ele In ThisDrawing.ModelSpace
        If TypeName(Ele) = "IAcadDimRotated" Then
            If Ele.TextOverride <> "" Then
                If InStr(Ele.TextOverride, Suchtext) Then
                    Ele.color = acRed
                Else
                    Ele.color = acGreen
                End If
            End If
        End If
    Next
End Sub

Auf die Verwendung eines Bemaßungsfilters bin ich nicht hier nicht eingegangen. Ich bin immer schon froh wenn die Makros machen was sie sollen. Auch habe ich das Gefühl das ganze zu sehr verschachtelt zu haben, aber wie gesagt, es macht was es soll.

Ich Danke allen Helfern und Wünsche alles Gute

Paul

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