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

 Beiträge: 57 Registriert: 02.11.2009
|
erstellt am: 02. Nov. 2009 21:46 <-- editieren / zitieren --> Unities abgeben:         
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 / zitieren -->
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

 Beiträge: 57 Registriert: 02.11.2009
|
erstellt am: 03. Nov. 2009 07:40 <-- editieren / zitieren --> Unities abgeben:         
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 / zitieren -->
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.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 03. Nov. 2009 20:12 <-- editieren / zitieren --> Unities abgeben:          Nur für bccad
|
bccad Mitglied

 Beiträge: 57 Registriert: 02.11.2009
|
erstellt am: 04. Nov. 2009 09:13 <-- editieren / zitieren --> Unities abgeben:         
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
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 04. Nov. 2009 09:23 <-- editieren / zitieren --> Unities abgeben:          Nur für bccad
(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

 Beiträge: 57 Registriert: 02.11.2009
|
erstellt am: 04. Nov. 2009 10:15 <-- editieren / zitieren --> Unities abgeben:         
|