Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Auswahlsatz in Acad erzeugen!

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
  
Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
Autor Thema:  Auswahlsatz in Acad erzeugen! (1718 mal gelesen)
Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 133
Registriert: 14.09.2005

erstellt am: 21. Feb. 2006 17:16    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 Forum!
Ich habe eine Frage zum Bilden eines Auswahlsatzes. Ich möchte einen bestimmten Block anhand seines Namens herausfiltern.
CODE:
Dim FType(1) As Integer, FData(1)
    FType(0) = 0: FData(0) = "INSERT"
    FType(1) = 8: FData(1) = "BLOCKNAME"
    AWSatz.Select acSelectionSetAll, , , FType, FData

Wenn ich jetzt in den Auswahlsatz schaue, dann sind dort alle Inserts enthalten und ich muss lange suchen, bis den richtigen gefunden habe.
Was mache ich falsch?

Vielen Dank für Eure Hilfe!

Gruß Sven

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

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 21. Feb. 2006 19:22    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 Big Sven 10 Unities + Antwort hilfreich

Hallo Sven,

du filterst in deinem Auswahlsatz nach dem Elementtyp(Insert) und nach dem Layer (Bei dir Blockname).
Der Gruppencode 8 steht für den Layer.
Du benötigst den Gruppencode 2 für den Namen.

Aus der Hilfe:

DXF-Codes für häufig verwendete Filter


0 Objekttyp (Zeichenkette) Beispiel: "Line", "Circle", "Arc" usw.

2 Objektname (Zeichenkette) Der Tabellenname eines benannten Objekts

8 Layername (Zeichenkette) Beispiel: "Layer 0"

Gruß, Carsten

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 133
Registriert: 14.09.2005

erstellt am: 22. Feb. 2006 09: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

Hallo Carsten!
Natürlich war gerade ein Fehler von mir! Ich hahe ein Auswahlsatz, wo ich alle Objekte auf einem Layer absuche mit dem Gruppencode 8. Im anderen Auswahlsatz möchte ich nur diesen einen Block suchen (Gruppencode 2). Und trotzdem ignoriert er mir den Blocknamen und nimmt alle Inserts.
Wo ist mein Fehler?

Gruß Sven

CODE:
Dim FType(1) As Integer, FData(1)
    FType(0) = 0: FData(0) = "INSERT"
    FType(1) = 2: FData(1) = "BLOCKNAME"
    AWSatz.Select acSelectionSetAll, , , FType, FData

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

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 22. Feb. 2006 09:50    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 Big Sven 10 Unities + Antwort hilfreich

Hallo Sven,

warum es bei dir nicht klappt, weiß ich jetzt nicht.

Dies sollte klappen:

Sub Ch4_Filtertest()
  Dim sstext As AcadSelectionSet
  Dim FilterType(1) As Integer
  Dim FilterData(1) As Variant
  On Error Resume Next
  ThisDrawing.SelectionSets.Item("SS2").Delete
  Set sset = ThisDrawing.SelectionSets.Add("SS2")
  FilterType(0) = 0
  FilterData(0) = "Insert"
  FilterType(1) = 2
  FilterData(1) = "BLOCKNAME"
 
  sset.Select acSelectionSetAll, , , FilterType, FilterData
End Sub

Gruß, Carsten

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

Big Sven
Mitglied
Techn. Angestellter


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

Beiträge: 133
Registriert: 14.09.2005

erstellt am: 22. Feb. 2006 15:39    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,

jetzt habe ich es endlich! Vielen Dank für Deine Hilfe!!!
Du hast mich zusätzlich noch auf eine Idee gebracht: ThisDrawing.SelectionSets.Item("SS2").Delete
funktioniert, wenn ich es richtig verstehe nur, wenn der Auswahlsatz bereits einen Inhalt hat. Also muss eine kleine IF Schleife her und dann ist es fertig.
Wie ist das eigentlich generell, bleiben alle meine Variablen und Datenfelder erhalten, bis ich die DWG schliesse? Oder gibt es eine Möglichkeit alle auf Empty zurück zu setzen?
Gruß Sven

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

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 22. Feb. 2006 15: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 Big Sven 10 Unities + Antwort hilfreich

Hallo Sven,

Du kannst ja ThisDrawing.SelectionSets.Item durchlaufen und alle Selectionsets löschen. Du kannst bis zu 128 SelectionSets gleichzeitig benutzen.
Deine Variablen sind nach End Sub alle gelöscht.
Deine Selectionsets bleiben dir aber noch erhalten.

Gruß, Carsten

Code:
'' Löscht eventuell vorhandene Auswahlsätze
    If ThisDrawing.SelectionSets.count > 0 Then
      For intAuswahl = 0 To ThisDrawing.SelectionSets.count - 1
          ThisDrawing.SelectionSets.Item(intAuswahl).Delete
      Next intAuswahl
    End If

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: 22. Feb. 2006 16:24    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 Big Sven 10 Unities + Antwort hilfreich

... und so gibts nicht mal nen Error dabei  ;;-))
Code:

For intauswahl = ThisDrawing.SelectionSets.Count - 1 To 0 Step -1
    ThisDrawing.SelectionSets.Item(intauswahl).Delete
Next intauswahl

Neenee Joke, aber mal ernsthaft, innerhalb einer Zählschleife löschen ... immer von hinten;-)

Gruss Nancy

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: 22. Feb. 2006 20:22    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 Big Sven 10 Unities + Antwort hilfreich

Hallo Nancy,

Hast natürlich Recht . Hab den Code auch nur schnell aus einem anderen Beitrag genommen. Ich persönlich lösche die Auswahlsätze jedesmal am Ende der Sub.

Gruß, Carsten

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

Goofy007
Mitglied
Vermessungstechniker


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

Beiträge: 578
Registriert: 06.11.2004

Map3D 2018 und Civil3D 2018

erstellt am: 22. Feb. 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 Nur für Big Sven 10 Unities + Antwort hilfreich

Hallo Nancy,

warum ist es von Bedeutung in welche Richtung man löscht ?

mfg didi

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: 22. Feb. 2006 23:34    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 Big Sven 10 Unities + Antwort hilfreich

Didi, das spielt aber wirklich nur beim Löschen eine Rolle ...
das ganze wird dann nämlich ab einem Punkt gegenläufig wenn du ab for i=0 to irgendwas.count anfängst,
also du baust damit auf Sand, da sich irgendwas.count mit jedem .delete um 1 ändert.
Also mit jedem .delete setzt du unbewusst das .Count zurück, irgendwann chrasht es dann, da sich Zähler und Item() nimmer kennen.
Deswegen beim Löschen ist es immer besser man beginnt von hinten und hangelt sich via step -1 nach vorn.

lg Nancy

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



Anzeige:Infos zum Werbeplatz >>

AVC Sawing Table CAD APP für Datenaustausch, Möbel, Messestände

Plugin AVC_Saw for AutoCAD and BricsCAD The measurement of solids. List of its dimension for sawing|cutting with a list of edge bandings and sloped edges. Paste list to AutoCAD table, Excel, Cutting3, OptiCut, Viyar and other

Goofy007
Mitglied
Vermessungstechniker


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

Beiträge: 578
Registriert: 06.11.2004

Map3D 2018 und Civil3D 2018

erstellt am: 23. Feb. 2006 09: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 Nur für Big Sven 10 Unities + Antwort hilfreich

Hallo Nancy,

Danke für die Erklärung!
(spart mir sicher mal viel Ärger  )

mfg Didi

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