Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Selection ausschließen

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 präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Selection ausschließen (636 mal gelesen)
PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

BricsCad V8-9
ACAD 2000-2009

erstellt am: 15. Aug. 2008 09:36    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,

ich möchte ein Selectionset generieren, welches im Gruppencode 102 einen bestimmten Wert nicht hat.
Normalerweise funktioniert das ja mit dem type=-4 und data= <x>

Der Code für die Auswahl eines bestimmeten Wertes funktioniert

Dim myData(1) As Variant
Dim myType(1) As Integer
Dim mySS As AcadSelectionSet

myType(0) = 0
myData(0) = "DIMENSION"

myType(1) = 102
myData(1) = "{*"

Set mySS = ActiveDocument.SelectionSets.Add("Temp")
mySS.Select acSelectionSetAll, , , myType, myData

Wenn ich nun, was ja bei anderen ENTITIES wie bei einer Abfrag eines Kreisradius funktioniert, die Abfrage so gestalte


Dim myData(2) As Variant
Dim myType(2) As Integer
Dim mySS As AcadSelectionSet

myType(0) = 0
myData(0) = "DIMENSION"

myType(1) = -4
myData(1) = "<>"

myType(2) = 102
myData(2) = "{*"

Set mySS = ActiveDocument.SelectionSets.Add("Temp")
mySS.Select acSelectionSetAll, , , myType, myData

bekomme ich eine Fehlermeldeung

"ungültiges Argument filter list in Select"

Hat jemand eine Erklärung?

schon mal vielen Dank!

Peter

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

PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

erstellt am: 15. Aug. 2008 11:07    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

Vieleicht hilft die Information weiter:

Liegt es daran, dass es den Gruppencode 102 bei den betreffenden Objekten im 2.Codebeispiel gar nicht gibt?

Dann muß ich mein Frage neu stellen.

Wie komme ich an Elemete, die einen bestimmten Gruppencode nicht haben?

------------------
ich danke Euch schon mal!

PeterF

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 15. Aug. 2008 13:05    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 PeterF 10 Unities + Antwort hilfreich

Hallo PeterF,

Ändere doch mal Deinen Code, meines Erachtens gibt`s den Gruppencode "-4" "<>" so nicht.
Probiers doch mal so:

Code:
  myType(0) = 0    'Gruppencode
  myData(0) = "DIMENSION"  '
  myType(1) = -4  '
  myData(1) = "<NOT"    'Bedingung Anfang
  myType(2) = 102  'Gruppencode
  myData(2) = "{"    '
  myType(3) = -4  '
  myData(3) = "NOT>"    'bedingung Ende


(ungetestet)

Grüße,
Klaus

[EDIT]Auszug aus "Gruppencodes in numerischer Reihenfolge":

Zitat:
102
Steuerzeichenkette gefolgt von “ {<beliebiger Name>” oder “}”. Ähnlich dem xdata-Gruppencode 1002 (mit Ausnahme von Zeichenfolgen, die mit “{“ beginnen) kann eine beliebige Zeichenkette folgen, deren Interpretation von der Anwendung abhängt. Daneben ist lediglich die Steuerzeichenkette “}” als Endzeichen für die Gruppe zulässig. In AutoCAD werden diese Zeichenfolgen lediglich im Rahmen der Zeichnungsüberprüfung interpretiert. Sie sind ausschließlich für den Gebrauch durch Anwendungen bestimmt.


Was möchtest Du denn abfragen?
[/EDIT]

[Diese Nachricht wurde von KlaK am 15. Aug. 2008 editiert.]

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

PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

erstellt am: 15. Aug. 2008 13: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 Klaus,

erst einmal vielen Dank, so funktioniert es!

Den Code  "-4" "<>" gibt es. Er funktioniert z.B. wenn ich alle Objekte haben möchte, deren Radius <100 ist

myType(0) = 0    'Gruppencode
myData(0) = "CIRCLE"  '
myType(1) = -4  'Bedingung Anfang
myData(1) = "<"
myType(2) = 40
myData(2) = 100 'Bedingung ENDE

Aber anscheinend geht das nicht bei alphanumerischen Ausdrücken!

wie auch immer, Deine Lösung funktioniert!

Vielen Dank!


Peter

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 16. Aug. 2008 21:13    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 PeterF 10 Unities + Antwort hilfreich

Hallo Peter,

Auszug aus 
AutoLISP Developer's Guide > Using the AutoLISP Language > Using AutoLISP to Manipulate AutoCAD Objects > Selection Set Handling > Selection Set Filter Lists >

Zitat:
For numeric groups (integers, reals, points, and vectors), you can specify other relations by including a special -4 group code that specifies a relational operator.

Deshalb kannst Du den Radius abfragen aber nicht den Text.

Grüße,
Klaus

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



Anzeige:Infos zum Werbeplatz >>

pitCAD Ultimate Basis - Einzelplatz CAD APP für TGA, Elektro, Facility Management

Vereint die langjährige Erfahrung von pit-cup im Bereich der Gebäudetechnikplanung und des Facility Management zu einem durchgängigen 2D/3D CAD/BIM Planungswerkzeug, über den gesamten Lebenszyklus einer Immobilie.

PeterF
Mitglied



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

Beiträge: 30
Registriert: 11.08.2008

erstellt am: 17. Aug. 2008 07:18    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 Klaus,

nur mal so, da Du Dich ja offenbar damit beschäftigt hast.
Für die Selektion von Stringtypen gibt es sogar noch eine andere einfache Möglichkeit ohne den Gruppencode -4 überhaupt zu verwenden


Dim myData(1) As Variant
Dim myType(1) As Integer
Dim mySS As AcadSelectionSet

myType(0) = 0
myData(0) = "INSERT"

myType(1) = 2
myData(1) = "~BMA*"                                      'Filtert alle Blöcke die nicht mit BMA beginnen

SelectionSetsClear ActiveDocument, "Temp"                'eigene Funktion, die sicher stellt, dass das SS erst mal gelöscht wird
Set mySS = ActiveDocument.SelectionSets.Add("Temp")
mySS.Select acSelectionSetAll, , , myType, myData

Das funktionierte aber in meinen Fall nicht. Vielleicht weil in dem Gruppencode ein Reaktor abgefragt wird?

------------------
Viele Grüße aus dem Münsterland!

PeterF
--------------------------------------------
Der Horizont vieler Menschen ist ein Kreis mit dem Radius Null. Das nennen Sie dann ihren Standpunkt.

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