Hot News aus dem CAD.de-Newsletter:
  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
Autor Thema:   Objektwahl / Auswahlfenster (842 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
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: 1145
Registriert: 24.07.2002

ACA 2013 / Solidworks 2012 SP3.0
Solidworks EnterprisePDM 2012 SP3.0
Windows 7
Core i7 2600K , 8192MB
Nvidia Quadro FX 2000
2x Apple Cinema Display 23"

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: 1346
Registriert: 17.08.2005

Map 2000-2013, Rasterdesign
MapGuide 6.5 - 2012
autodesk Topobase 2-2013
VS6, VS.net 2010

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: 1346
Registriert: 17.08.2005

Map 2000-2013, Rasterdesign
MapGuide 6.5 - 2012
autodesk Topobase 2-2013
VS6, VS.net 2010

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: 1346
Registriert: 17.08.2005

Map 2000-2013, Rasterdesign
MapGuide 6.5 - 2012
autodesk Topobase 2-2013
VS6, VS.net 2010

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



Praktikant (m/w) für die Begleitung zur Lastenheftübergabe für ein Fahrzeugentwicklungsprojekt
Bayern-München, Die MAN Truck & Bus sucht am Standort München für den Bereich Technik zum frühestmöglichen Eintrittstermin eine/n Praktikant (m/w) für die Begleitung zur Lastenheftübergabe für ein Fahrzeugentwicklungsprojekt Ihre Aufgaben Die MAN Truck & Bus mit Sitz in München ist mit 34.000 Mitarbeitern das größte Unternehmen der MAN Gruppe und einer der führenden internationalen Anbieter ganzheitlicher Transpo...
Anzeige ansehenAnzeige vom 17.07.2014 (02:06 Uhr)
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)2014 CAD.de

-