Mit VBA Linien Länge 0 löschen


  
 Bezieht sich auf 
  
 Produkt(e):MicroStation
 Version(en):08.11.09.578
 Umgebung: Windows 7 64 bit
 Produktbereich: Programmierung
 Produktunterbereich: VBA
 Ursprünglicher Autor:Artur Goldsweer, Bentley Technical Support Group
  

 

Hintergrundinformation

Es kommt gelegentlich vor, dass Zeichnungen eine Vielzahl von Punkten enthält. Dies können durch vielfältige Manipulationen entstanden sein und sind zunächst vielleicht nicht weiter störend, aber beim Plotten können diese aufgrund von Strichbreiten plötzlich sichtbar werden und sollten aus der Zeichnung entfernt werden.
Diese Punkte zu finden und zu löschen kann von Hand zeitraubend sein und kann durch VBA schnell ausgeführt werden.

Erforderliche Schritte

Punkte werden in MicroStation durch Linien der Länge repräsentiert. Eine Lösung mit VBA könnte also so aussehen, dass zunächst einmal alle Linien gewählt werden und diese auf ihre Länge geprüft werden. Ist die Länge 0, können sie dann gelöscht werden.
Eine mögliche Umsetzung in VBA könnte dann so aussehen:

Sub LinienLaenge0Loeschen()
    Dim Ee As ElementEnumerator
    Dim Sc As New ElementScanCriteria
    Dim Anzahl As Long   ' Zähler der gelöschten Elemente
    
    ' Punkte = Linien der Länge 0, nur Linien gesucht und geprüft:
    Sc.ExcludeAllTypes
    Sc.IncludeType msdElementTypeLine
    Set Ee = ActiveModelReference.Scan(Sc)
    Anzahl = 0
    Do While Ee.MoveNext
        With Ee.Current.AsLineElement
            ' Wenn Linie die Länge 0 dann wird sie gelöscht:
            If Ee.Current.AsLineElement.Length = 0 Then
                ActiveModelReference.RemoveElement Ee.Current
                Anzahl = Anzahl + 1
            End If
        End With
    Loop
    MessageCenter.AddMessage "Es wurden " + str(Anzahl) + " Linien der Länge 0 gelöscht", , msdMessageCenterPriorityInfo
End Sub

Das Ergebnis, d.h. die Anzahl der gelöschten Elemente wird in der Nachrichtenzentrale als Information ausgegeben.

Sehen Sie hierzu auch

Daten in einer Zeichnung mit VBA suchen und auswerten, Teil 2 – Eigenschaften von Elementen auslesen