Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  VBA - SelectionSet

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:  VBA - SelectionSet (416 mal gelesen)
RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Autodesk Building Design Suite Premium 2021
Windows 10 Pro 64bit
HP Workstation Z620, 24GB
GeForce GTX 970

erstellt am: 05. Nov. 2002 14:47    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 VBA-Spezialisten,
habe folgendes Problem mit Filtern bei SelectionSet
Code:
    Dim SS As AcadSelectionSet
    Dim FltTypes(0) As Integer
    Dim FltData(0) As Variant
 
     
    ' Frage nach den zu bearbeitenden Blöcken
    Set SS = CreateSelectionSet("LayerUpdateAuswahl")
    FltTypes(0) = 8: FltData(0) = "Test-FL01"
   
    ' Selectionset erstellen und Filter anwenden
    SS.Select acSelectionSetAll, FltTypes, FltData
'    SS.SelectOnScreen FltTypes, FltData


ich möchte alle Objekte einer Zeichnung die auf dem Layer "Test-FL01" liegen herausfiltern.
Mit SS.Select acSelectionAll übernimmt er mir alle Objekte, auch die die nicht auch dem Layer liegen.
Wenn ich es mit SelectOnScreen versuche filtert er mir alles richtig aus. Warum, mach ich etwas falsch?

------------------
Roland

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Autodesk Building Design Suite Premium 2021
Windows 10 Pro 64bit
HP Workstation Z620, 24GB
GeForce GTX 970

erstellt am: 05. Nov. 2002 14:49    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

Es hat sich erledigt, ich hab nur zwei Komma vergessen.

------------------
Roland

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

eilovliz
Mitglied
Technischer Zeichner


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

Beiträge: 48
Registriert: 24.06.2004

erstellt am: 03. Dez. 2008 09: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 Nur für RoSiNiNo 10 Unities + Antwort hilfreich

hab das selbe problem

        Set SS = CreateSelectionSet("auswahl")
        FltTypes(0) = 0: FltData(0) = "INSERT"

bei mir gibts einen fehler??
weis jemand weiter?
MFG

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


Ex-Mitglied

erstellt am: 03. Dez. 2008 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

[EDIT]falsch gelesen, Korrektur:

wenn Du verrätst, was hinter 'CreateSelectionSet' steckt, dann können wir helfen

[/EDIT]

- alfred -

[Diese Nachricht wurde von a.n. am 03. Dez. 2008 editiert.]

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Autodesk Building Design Suite Premium 2021
Windows 10 Pro 64bit
HP Workstation Z620, 24GB
GeForce GTX 970

erstellt am: 03. Dez. 2008 09:11    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

Stell doch bitte etwas mehr von deinem Code hier rein, sonst kann man dir nicht helfen ;-)
Zitat:
Original erstellt von eilovliz:
hab das selbe problem

        Set SS = CreateSelectionSet("auswahl")
        FltTypes(0) = 0: FltData(0) = "INSERT"

bei mir gibts einen fehler??
weis jemand weiter?
MFG


------------------
Roland Feletic
PAUSER ZT-GMBH

Acad 2009-deutsch Update 2, Express Tools, Bonus Pack 1
3ds Max 2009 - SP1
WinXP-Professional
HP Workstation xw4400, 3GB
Quadro FX1500

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

eilovliz
Mitglied
Technischer Zeichner


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

Beiträge: 48
Registriert: 24.06.2004

erstellt am: 03. Dez. 2008 09: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 Nur für RoSiNiNo 10 Unities + Antwort hilfreich

Hab den Code vor einiger zeit in einem Forum gefunden.
jetzt hab ich ihn rausgekramt und wollt ihn so umschreiben
das ich keine Farbnummer eingebe sondern VONLAYER
irgendwie haut jetzt garnichts mehr hin :-)


Private Sub CommandButton65_Click()

    Dim SS As AcadSelectionSet
    Dim FltTypes(0) As Integer
    Dim FltData(0) As Variant
 
    Dim BlRef As AcadBlockReference 
    Dim Bl As AcadBlock               
    Dim pt As Variant               
    Dim BlElem As AcadEntity         
 
    Dim Bag As Collection
    Dim Search As Object
 
    Dim Farbe As Long
   
    Set SS = CreateSelectionSet("BlöckeNeuzeichAuswahl")
    FltTypes(0) = 0: FltData(0) = "INSERT"
 
    SS.SelectOnScreen FltTypes, FltData
 
    If SS.Count = 0 Then GoTo ENDE
 
    On Error GoTo ENDE
    Farbe = ThisDrawing.Utility.GetReal("Farbnummer: ")
 
    If Farbe < 0 Or Farbe > 256 Then GoTo ENDE
 
    Set Bag = New Collection
    For Each BlRef In SS
 
        On Error Resume Next
        Set Search = Bag(BlRef.Name)
        If Err Then Bag.Add BlRef, BlRef.Name
     
    Next BlRef
 
    Dim Anzahl As Integer
    Dim I As Integer
 
    Anzahl = Bag.Count
    Do
        I = I + 1
        Set BlRef = Bag(I)
        Set Bl = ThisDrawing.Blocks(BlRef.Name)
     
        For Each BlElem In Bl
         
            If BlElem.ObjectName = "AcDbBlockReference" Then
                On Error Resume Next
                Set Search = Bag(BlElem.Name)
                If Err Then
                    Bag.Add BlElem, BlElem.Name
                    Anzahl = Anzahl + 1
                End If
             
            End If

            BlElem.color = Farbe
     
        Next BlElem
 
    Loop Until I = Anzahl
    ThisDrawing.Regen acAllViewports
     
ENDE:
    SS.Delete
 
End Sub

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


Ex-Mitglied

erstellt am: 03. Dez. 2008 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ich nehme an, dass der Code bei 'CreateSelectionSet(...' fliegt

Das gibt es nicht, wenn Du nicht eine eigene Funktion geschrieben hast, die so heisst.

In AutoCAD gibt es

Code:
a) ThisDrawing.Selectionsets.Add(...
b) ThisDrawing.Selectionsets("NameBestehendesSelSet")

BTWBy the way (So nebenbei bemerkt), gewöhn Dir nicht an, in Bezeichnungen (in Deinem Fall Name des SelectionSets) Umlaute oder Sonderzeichen zu verwenden.

- alfred -


Ex-Mitglied

erstellt am: 03. Dez. 2008 09:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

...nächster Fehler

aus SS.SelectOnScreen FltTypes, FltData
mach SS.SelectOnScreen, , FltTypes, FltData

weiter les ich mal nicht, lass mich/uns wissen, wie weit Du dann kommst und bitte bei Meldungen mit Code auch den Codeteil markieren, wo Du hängst.

Viel Erfolg,

- alfred -

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Autodesk Building Design Suite Premium 2021
Windows 10 Pro 64bit
HP Workstation Z620, 24GB
GeForce GTX 970

erstellt am: 03. Dez. 2008 09:40    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

Wenn du schon kopierst ;-), dann richtig.
Code:
Public Function CreateSelectionSet(Optional ssName As String = "SS") As AcadSelectionSet

    Dim objSelSet As AcadSelectionSet
    Dim objSelCol As AcadSelectionSets
   
    Set objSelCol = ThisDrawing.SelectionSets
    For Each objSelSet In objSelCol
      If objSelSet.Name = ssName Then
        objSelCol.Item(ssName).Delete
        Exit For
      End If
    Next
    Set objSelSet = objSelCol.Add(ssName)
    Set CreateSelectionSet = objSelSet

End Function


------------------
Roland Feletic
PAUSER ZT-GMBH

Acad 2009-deutsch Update 2, Express Tools, Bonus Pack 2
3ds Max 2009 - SP1
WinXP-Professional
HP Workstation xw4400, 3GB
Quadro FX1500

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