Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Wildcart * und ? und VBA

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:  Wildcart * und ? und VBA (469 mal gelesen)
molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 2000, AutoCAD 2000, PitCup 5.1

erstellt am: 19. Nov. 2003 16:08    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

Moin,

Da ich ein absoluter Neuanfänger bin, stelle ich auch absolute Neuanfängerfragen.

Ich habe im allgemeinen AutoCAD Forum von RoSiNiNo, sprich Roland eine VBA-Code bekommen, mit dem man je nach der Layerfarbe dem Layer eine Linienstärke zuweisen kann.

Gleich danach hat das Programm wie beabsichtigt alle Layer auf die Farbe 253 gesetzt.

Jetzt habe ich mir darauf basierend ein kleines Programm geschrieben, das sämtlich Layer die mit A_ras_ anfangen auf die Farbe 24 setzt und den Rest auf die Farbe 253.

Am Anfang habe ich versucht es mit
Case "A_ras_*"
versucht.

Leider ging das nicht und ich habe mir mit
Case "A_ras_" To "A_rasz"
beholfen.

Versteht VBA keine Wildcarts wie das ? und das *, oder gibt es eine andere Möglichkeit, mit Ihnen zu arbeiten.

Hier kommt noch mal der ganze Code:
----------------------------------------------------------
Public Sub LayerUpdateFarbe()
    Dim LayerListe As AcadLayers
    Dim LayerObj As AcadLayer
    Dim LF As Long      'Layerfarbe
   
    Set LayerListe = ThisDrawing.Layers
    If LayerListe.Count = 0 Then Exit Sub
   
    For Each LayerObj In LayerListe
        Select Case LayerObj.Name
            Case "A_ras_" To "A_rasz"  'Architekten Layer
                LF = 24                'RM-Farbe
            Case Else                  'Sonstige Acadfarben
                LF = 253                'Strichstärke 0.05mm
        End Select
        LayerObj.Color = LF
       
NEXTLAYER:
    Next LayerObj
   
End Sub
--------------------------------------------------------------------

------------------
Schöne Grüsse aus dem Norden

Molo

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

Karsten HST
Mitglied
Bauingenieur


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

Beiträge: 54
Registriert: 22.04.2003

erstellt am: 19. Nov. 2003 20:09    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 molo 10 Unities + Antwort hilfreich

Versuchs doch mal mit dem Like-Operator

Public Sub LayerUpdateFarbe()
    Dim LayerListe As AcadLayers
    Dim LayerObj As AcadLayer
    Dim LF As Long      'Layerfarbe
   
    Set LayerListe = ThisDrawing.Layers
    If LayerListe.Count = 0 Then Exit Sub
   
    For Each LayerObj In LayerListe
        If LayerObj.Name Like "A_ras*" Then
          LF = 24                'RM-Farbe
        Else                  'Sonstige Acadfarben
          LF = 253                'Strichstärke 0.05mm
        End If
        LayerObj.Color = LF
NEXTLAYER:
    Next LayerObj
   
End Sub


Weitere Beispiele:

"aBBBa" Like "a*a"          -> True
"F" Like "[A-Z]"            -> True
"F" Like "[!A-Z]"     -> False
"a2a" Like "a#a"     -> True
"aM5b" Like "a[L-P]#[!c-e]" -> True
"BAT123khg" Like "B?T*"    -> True
"CAT123khg" Like "B?T*"    -> False

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 2000, AutoCAD 2000, PitCup 5.1

erstellt am: 20. Nov. 2003 08:30    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

Danke Karsten,

ich wede mich dann mal mit dem Like-Operator näher auseinandersetzen.

------------------
Schöne Grüsse aus dem Norden

Molo

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

BerndE
Mitglied
Hochbautechniker


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

Beiträge: 557
Registriert: 05.07.2003

erstellt am: 27. Nov. 2003 13:46    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 molo 10 Unities + Antwort hilfreich

Hi Molo,
ich denke mal, die mid-anweisung wäre hier besser geeignet.

in deinem fall müßten dann die entsprechende zeilen lauten:

Select Case mid(LayerObj.Name,1,5)
Case "A_ras"  'Architekten Layer
  LF = 24    'RM-Farbe
'usw.

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

Bernd

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 2000, AutoCAD 2000, PitCup 5.1

erstellt am: 27. Nov. 2003 14:46    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

Schau ich mir an

------------------
Schöne Grüsse aus dem Norden

Molo

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