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

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
  
Jetzt verfügbar: NVIDIA RTX PRO 6000 Blackwell Server Edition, eine Pressemitteilung
Autor Thema:  Selection ausschließen (644 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: 2877
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: 2877
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 >>

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

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

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