Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Auswahl ohne SelectonScreen

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:  Auswahl ohne SelectonScreen (1897 mal gelesen)
bccad
Mitglied



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

Beiträge: 57
Registriert: 02.11.2009

erstellt am: 02. Nov. 2009 21: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

Hallo,

ich habe ein Programm zur Fehlersuche geschrieben. In einem Listview werden dem Benutzer die falschen Elemente angezeigt. Mit einem Doppelclick auf ein Element wird es gezoomt und man kann es korrigieren. Soweit so gut. Was ich aber nicht hinkriege: Ich möchte mehrere Element in dem Listview auswählen und an Autocad als aktiven Auswahlsatz übergeben. Dazu habe ich das Handle der Elemente ermittelt, ein Selectionset erzeugt und die Elemente eingetragen.

Wie kriege ich jetzt Autocad dazu diese Auswahl nach Programmende als aktives Selectionset anzuzeigen ???   

Bin für jeden Tip dankbar.

[Diese Nachricht wurde von bccad am 02. Nov. 2009 editiert.]

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


Ex-Mitglied

erstellt am: 02. Nov. 2009 21:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

mit VBA kannst Du zwar ein Highlight der Entities auslösen, diese aber nicht mit Griffen versehen. Dazu benötigst Du einen Umweg über Lisp bzw. SendCommand eines Lisp-Befehls, der mit 'sssetfirst' agiert.

Siehe auch >>>hier<<<

- alfred -

------------------
www.hollaus.at

bccad
Mitglied



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

Beiträge: 57
Registriert: 02.11.2009

erstellt am: 03. Nov. 2009 07:40    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 a.n.,

danke für Deine schnelle Antwort. Leider halten sich meine Lispkenntnisse in sehr engen Grenzen.
Ich habe ein gefülltes Selectionset namens SSET welches ich nach Programmende aktivieren möchte.

Wie muss der SendCommand-Befehl aussehen ?

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


Ex-Mitglied

erstellt am: 03. Nov. 2009 17:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Wie muss der SendCommand-Befehl aussehen ?

Ich hab doch oben einen Link hineingepackt, in dem der Syntax doch enthalten ist. Hier nochmals:

Code:
(setq pickset (ssadd (handent "<dein objekt handle>")))
(sssetfirst pickset pickset)

Und je nachdem, wie schön es sein soll, kannst Du im einfachsten Fall die erste Zeile für jeden Elementhandle wiederholen. Wenn Du das SelectionSet durch hast, dann die zweite Zeile starten.

Soll es schöner sein (weil bei größerer Anzahl von Elementen halt viele Zeilen in den Befehlszeilenbereich ausgegeben werden), dann kannst Du auch das SelectionSet mit Deinen Handles zusammenbauen unter Verwendung des VL.Application-Objekts (wronzky hat hier eine schöne Anleitung).

Eine weitere (aus meiner Sicht nicht so schöne, aber mögliche) Lösung könnte auch sein, Du schreibst den Lisp-Syntax in eine Datei und lädst diese Lispdatei zur Ausführung.

HTH, - alfred -

------------------
www.hollaus.at

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: 03. Nov. 2009 20:12    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 bccad 10 Unities + Antwort hilfreich

Hallo,

schau dir auch das mal an.

Wilfried Stelberg

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

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

bccad
Mitglied



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

Beiträge: 57
Registriert: 02.11.2009

erstellt am: 04. Nov. 2009 09: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

Hallo a.n.

ich hab Deinen Code ins Programm eingebaut und damit zumindest einen Teilerfolg erzielt.
Wenn ich 3 Fehler auswähle passiert folgendes:

Befehl: (setq pickset (ssadd (handent "74630")))
<Selection set: 4c>
Befehl: (setq pickset (ssadd (handent "7462F")))
<Selection set: 4e>
Befehl: (setq pickset (ssadd (handent "7462E")))
<Selection set: 50>
Befehl: (sssetfirst pickset pickset)
(<Selection set: 50> <Selection set: 50> )


Es sieht so aus als ob für jedes Element ein eigener Selectionset angelegt wird und deshalb
ist auch nur ein Element ausgewählt, nämlich das letzte.
Kann man diesem setq-Befehl mehrere Handles übergeben ?


@Stelli1:
Danke für den Tip, aber das war auch mein erster Versuch. Hatte mein Programm auf dieser
Basis schon fertig aber nach dem >>ThisDrawing.SendCommand ("_.pselect v" & vbCr)<<
passiert einfach nichts. Dabei ist das Selectionset korrekt ausgefüllt. (Mit Debugger getestet)

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 04. Nov. 2009 09:23    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 bccad 10 Unities + Antwort hilfreich

(setq pickset (ssadd))
(ssadd (handent "74630") pickset)
(ssadd (handent "74631") pickset)
(ssadd (handent "74633") pickset)
....
(sssetfirst pickset)


------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

bccad
Mitglied



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

Beiträge: 57
Registriert: 02.11.2009

erstellt am: 04. Nov. 2009 10:15    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 CADmium,

ja, jetzt funzt es     

Wenn man nicht zu viele Elemente gleichzeitig wählt geht das mit SendCommand wirklich gut.

Danke euch allen, dieses Forum ist einfach Klasse.

bccad

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