Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  MicroStation/PowerDraft (J, V8, XM, V8i)
  Suchfunktionen

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
Autor Thema:  Suchfunktionen (2868 mal gelesen)
Sebastian Nold
Mitglied
Anlagenplaner

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

Beiträge: 5
Registriert: 24.10.2011

Microstation V8i

erstellt am: 24. Okt. 2011 07:23    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,

ich bin erst seit kurzem MS V8i User und wollte nachfragen ob es eine Möglichkeit gibt, vorhandene Elemente nach ihren Längen zu durchsuchen bzw. alle Elemente die die Länge <= 0.05 haben zu makieren.

Vielen Dank für eure Hilfe!

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

Sebastian Nold
Mitglied
Anlagenplaner

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

Beiträge: 5
Registriert: 24.10.2011

Microstation V8i

erstellt am: 28. Okt. 2011 08:52    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

Achso und falls dies nur durch ein Makro durchführbar ist, wäre ich dankbar wenn ihr mir Tipps für die Erstellung geben könntet. Kenne mich zwar durch Excel - Makroprogrammierung mit VBA aus, kenne aber noch kaum befehle in MicroStation.

Danke.

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

Sebastian Nold
Mitglied
Anlagenplaner

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

Beiträge: 5
Registriert: 24.10.2011

Microstation V8i

erstellt am: 09. Nov. 2011 13: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

So und noch eine Spezifikation. Es geht nicht um alle Elemente sondern nur um Linien. In meinem Fall soll er mir alle Linien makieren die unter 0.05 Meter lang sind.

Danke

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

LAG-FK
Mitglied
CAD-Techniker/Admin


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

Beiträge: 315
Registriert: 24.11.2010

MS-V8i-SS4 Vers. 08.11.09.833, PowerDraft-V8i-SS4 Vers. 08.11.09.833, MS-XM Vers. 08.09.02.82, FME-2013, Corel-X5, ACAD 2016, GeoMedia Plus

erstellt am: 22. Nov. 2011 07:59    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 Sebastian Nold 10 Unities + Antwort hilfreich


SelectLineLength.mvba.txt

 
Hallo,
Anbei ein Macro das kannst Du im ->VBA-Projektmanager->Visual Basic Editor auf die gesuchte Länge anpassen, die Elemente werden entsprechend der Vorgabe selektiert. Endung .txt entfernen

Gruß
Franz

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

Sebastian Nold
Mitglied
Anlagenplaner

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

Beiträge: 5
Registriert: 24.10.2011

Microstation V8i

erstellt am: 22. Nov. 2011 11:06    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 Franz,

vielen vielen Dank. Funktioniert super und ist genau dass, was ich gesucht habe.

Merci.

gruß Basti

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

Sebastian Nold
Mitglied
Anlagenplaner

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

Beiträge: 5
Registriert: 24.10.2011

Microstation V8i

erstellt am: 24. Nov. 2011 09:17    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,

das Makro von Franz funktioniert fast perfekt. Jetzt hab ich aber Aufgrund der Dateigröße ein kleines Problem. Ich hab das Makro noch leicht ergänzt. Es werden jetzt die makierten Linien immer auch noch gelöscht. Der Code hierzu:

Sub SelectLineLength()
    Dim ee As ElementEnumerator
    Dim elem As Element
    Dim x As Integer
    Dim Zaehler As Long
    Dim Zaehler1 As Integer
    Dim t As Long

    Zaehler = 0
    Zaehler1 = 0
   
   
    t = Timer
    Set ee = ActiveModelReference.Scan
    While ee.MoveNext
        If ee.Current.IsChainableElement Then
            Set elem = ee.Current
            If elem.AsChainableElement.Length < 0.02 Then
                ActiveModelReference.SelectElement elem
                elem.Redraw
                Zaehler = Zaehler + 1
                Zaehler1 = Zaehler1 + 1
                If Zaehler1 = 200 Then
                    Zaehler1 = 0
                    CadInputQueue.SendCommand "DELETE ELEMENT"
                End If
            End If
        End If
    Wend
 
CadInputQueue.SendCommand "DELETE ELEMENT"

MsgBox Timer - t & " sec", , "Makrolaufzeit"
   
x = MsgBox("Das Makro wurde erfolgreich ausgeführt! Es wurden " & (Zaehler) & "Linien gelöscht", , "Hinweis!")

End Sub

Er muss in der größten Datei nun 420000 Linien makieren. Deshalb hab ich einen Zaehler eingebaut der alle 200 makierten Linien ein Löschvorgang durchführt. Das hat die Ausführungsdauer des Makros auf ca. 35 min reduziert.

Jetzt ist das aber leider immernoch relativ lang.

Hat jemand eine Idee wie ich die Linien die kürzer als 0.02 m sind löschen kann bzw. wie ich das oben aufgeführte Makro optimieren kann damit es schneller läuft?

Vielen Dank.

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

cdv
Mitglied
Freiberufler


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

Beiträge: 15
Registriert: 24.11.2011

Win V7 Prof 64 bit
V8, V8i

erstellt am: 24. Nov. 2011 15:25    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 Sebastian Nold 10 Unities + Antwort hilfreich


DelLine.zip

 
Ich würde behaupten, mit mdl geht's fixer. Schick mir doch eine
Beispieldatei (muss ja nicht der riesen Klopper sein), dann
probier ich das aus.

P.S. Hab's gerade ausprobiert. Die angehängte delline.ma läuft bei mir ca. 10x so schnell, u.A., weil das Löschen der Grafik für jede Linie unterdrückt ist und erst am Ende ein Update erfolgt. Aufruf mit mdl l delline 0.03 löscht alles < 0.03, ohne Parameter ist 0.02 als Grenze eingestellt.

Grüße
Thomas

[Diese Nachricht wurde von cdv am 25. Nov. 2011 editiert.]

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