Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Objektwahl / Auswahlfenster

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
Autor Thema:  Objektwahl / Auswahlfenster (1546 mal gelesen)
montana
Mitglied



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

Beiträge: 11
Registriert: 04.10.2006

erstellt am: 09. Okt. 2006 17:00    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

Hallöle.

Für eine Funktion sollen Objekte ausgewählt werden. Wenn der User ein einzelnes Objekt trifft, soll es dann zum SelectionSet hinzugefügt werden. Wird kein Objekt getroffen, möchte ich davon ausgehen, dass der Nutzer mehrere Objekte durch aufziehen eines Rechteckes wählt.
Und genau da hakt es. Klickt der User daneben, wird Err wahr und es sollte .GetCorner aufgerufen werden. Aber der gepickte Punkt vom ersten Versuch ist leer, wegen Fehler eben.

Wo liegt denn da nun mein Denkfehler, kann ich das überhaupt so einfach implementieren?

Code:

  Dim P1 As Variant, P2 As Variant
  Dim Objekt As AcadEntity
 
  ThisDrawing.Utility.GetEntity Objekt, P1, "Objekt wählen: "
  If Err Then
    P2 = ThisDrawing.Utility.GetCorner(P1, "Andere Ecke wählen: ")
  End If

Haut mich mit dem Zaunpfahl 
Christian

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: 1357
Registriert: 24.07.2002

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 09. Okt. 2006 17: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 Nur für montana 10 Unities + Antwort hilfreich

Hallo Christian,

Setz mal vor die Objekt-Auswahl ein "On Local Error Resume Next".
Und nach der Asuwahl folgendes : If TypeName(Object) <> "Nothing" Then...

Damit sollte es laufen.

Gruß, Carsten

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

montana
Mitglied



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

Beiträge: 11
Registriert: 04.10.2006

erstellt am: 09. Okt. 2006 19:30    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

Danke, Carsten, für die flotte Antwort.

Gelöst wurde das Problem nicht, wenigstens habe ich jetzt erfahren, dass das Objekt (AcadEntity), sofern ich kein Objekt wähle, sondern (beabsichtigt) daneben klicke, nicht initialisiert ist.

Es wäre nett, wenn es etwas wie .GetInput gäbe. Alternativ könnte ich mir vorstellen, zuerst einen Punkt picken zu lassen. Sollte auf dem Punkt ein Objekt liegen, füge ich das hinzu. Aber da fehlt mir dann zB das nette 'Highlight' bei überfahren von Objekten.

Ein Workaround wäre, wenn ich den Maustastendruck abfange und mir dort die Mauskoordinaten merke...

Ein scheinbar triviales Problem. Aber es sind immer die Kleinigkeiten...

Grüße,
Christian

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 10. Okt. 2006 11:44    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 montana 10 Unities + Antwort hilfreich

Hallo Christian,

auch innerhalb der AutoCAD Befehle wird diese (deine) Vorgehensweise nie verwendet. Entweder (ein) Objekt wählen oder (mehrere) Objekte wählen.
Mit SelectOnScreen kann der Benutzer ein oder meherer Objekte mit allen Optionen wie hinzufügen, entfernen, Fenster etc. verwenden.
Eigentlich sollte auch deine Funktion damit auskommen.

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

montana
Mitglied



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

Beiträge: 11
Registriert: 04.10.2006

erstellt am: 10. Okt. 2006 16: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

Hi Stelli.

Da muss ich auf das heftigste widersprechen. Wenn ich SCHIEBEN verwende (Befehl vor Auswahl), wird nach einem Objekt gefragt. So kann ich beliebig viele Objekte wählen. Klicke ich jedoch daneben, wird ein Fenster aufgezogen. Vielleicht habe ich es nicht adäquat ausgedrückt, aber soetwas wollte ich machen.

Soweit ich das sehe, werde ich wirklich im 'OnMausClick' die Koordinaten speichern, damit der erste Punkt auf jeden Fall gespeichert ist, galls nämlcih die .GetEntity nicht funktioniert.

Viele Grüße und auf ein baldiges Wochenende,
Christian

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 10. Okt. 2006 17: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 montana 10 Unities + Antwort hilfreich

Hallo Christian,

vielleicht hab ich's wirklich nicht verstanden,
aber mit

Code:
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("MySel")

sset.Clear
sset.SelectOnScreen

Debug.Print sset.Count



hast du genau das Eingabeverhalten wie beim Befehl SCHIEBEN.
Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

montana
Mitglied



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

Beiträge: 11
Registriert: 04.10.2006

erstellt am: 10. Okt. 2006 20: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

Ich sag nur K N U D D E L - egal ob Mann oder Frau, manchesmal muß das sein 

Christian

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 11. Okt. 2006 10:28    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 montana 10 Unities + Antwort hilfreich

Hallo Christian,

... war es so wie du es wolltest ?

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

montana
Mitglied



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

Beiträge: 11
Registriert: 04.10.2006

erstellt am: 11. Okt. 2006 15:57    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

Das wollte ich damit ausdrücken, ja.

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