Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Doppelklick soll eigenes Programm öffnen.

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:  Doppelklick soll eigenes Programm öffnen. (939 mal gelesen)
FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 11. Dez. 2004 20: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, habe folgendes vor:
Doppelklick soll eigenes Programm öffnen.
Zweck: EED's bequem mit Doppelklick per Dialogbox editieren, usw.
Ein Versuch mit Reactor, funktioniert erstmal, störend ist hier
aber, daß nachher acad das ausführt, was normalerweise bei
Doppelklick kommt.
Frage: kann man das abstellen, oder bin ich da auf dem "Holzweg"?
Code:

(defun
  FIT-MOUSE-DOUBLECLICK
                        (REAKTOR BACKLIST / ELI SS)
  (if
    (setq SS (ssget (car BACKLIST)))
    (progn
      ;; zum testen ohne EED's:
      (setq ELI (entget (ssname SS 0)))
      ;; mit EED's:
;;;      (setq ELI (entget (ssname SS 0) '("FI_TOOLS_020502")))
      (if
        ;; zum testen ohne EED's:
        ELI
        ;; nur wenn EED's und richtiger Anwendungsname:
;;;        (= "FI_TOOLS_020502" (car (last (assoc -3 ELI))))
          (progn
            ;; zum testen alert statt Programm:
            (alert (strcat "Element: " (cdr (assoc 0 ELI))))
            (princ "\nund mach NICHT, was acad normalerweise macht. ")
          )
          (princ "\nmach, was acad normalerweise macht. ")
      )
    )
  )
  (prin1)
)
(defun
  FIT-MOUSE-REAC
                (/)
  (if
    (not *FIT-MOUSE-REAC*)
    (progn
      (vlr-mouse-reactor
        NIL
        '((:vlr-begindoubleclick . FIT-MOUSE-DOUBLECLICK))
      )
      (setq *FIT-MOUSE-REAC* t)
    )
  )
)
(FIT-MOUSE-REAC)


Gibt es hierzu noch andere Lösungsansätze?
Übringens: FiT bedeutet nicht daß ich fit bin (oder doch? ;-), sondern ist
nur die Abkürzung für "Namenskürzel" und "Tools" und verwende ich als
prefix für Programme und Variablen um Namenskonflikten aus dem Weg
zu gehen.

...code nicht geändert, nur schöner formatiert...
------------------
Gruß Gerald

[Diese Nachricht wurde von FiT am 11. Dez. 2004 editiert.]

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 12. Dez. 2004 05: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

Hallo,
habe eine Lösung gefunden:
"Objekt vor Befehl"; Systemvariable "PICKFIRST"!
"FIT-MOUSE-DOUBLECLICK" sieht jetzt so aus und funktioniert:
Code:

(defun
  FIT-MOUSE-DOUBLECLICK
                        (REAKTOR BACKLIST / ELI SS)
  (if
    (setq SS (ssget (car BACKLIST)))
    (progn
      ;; zum testen ohne EED's:
;;;      (setq ELI (entget (ssname SS 0)))
      ;; mit EED's:
      (setq ELI (entget (ssname SS 0) '("FI_TOOLS_020502")))
      (if
        ;; zum testen ohne EED's:
;;;        ELI
        ;; nur wenn EED's und richtiger Anwendungsname:
        (= "FI_TOOLS_020502" (car (last (assoc -3 ELI))))
          (progn
            (setvar "PICKFIRST" 0)
            ;; zum testen alert statt Programm:
            (alert (strcat "Element: " (cdr (assoc 0 ELI))))
;;;            (princ "\nund mach NICHT, was acad normalerweise macht. ")
            (setvar "PICKFIRST" 1)
          )
;;;          (princ "\nmach, was acad normalerweise macht. ")
      )
    )
  )
  (prin1)
)


Hmm... das eröffnet neue Perspektiven in Sachen Anwenderführung...
Hat jemand Verbesserungsvorschläge?

------------------
Gruß Gerald

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

mkl-cad
Mitglied
Technischer Zeichner


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

Beiträge: 378
Registriert: 23.07.2003

ACAD 2002
Express Tools 1-9
Architektural Desktop
Windows XP
Server Windows 2003
3 GHz Rechner
1 GB RAM
80 GB Festplatte
ATI FireGL V3100
2 17" Flachbildschirme

erstellt am: 15. Dez. 2004 08: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 Nur für FiT 10 Unities + Antwort hilfreich

Hallo ich beide

Bin ich dumm oder was? Wie muß ich das Programm aufrufen. (FIT-MOUSE-DOUBLECLICK  ??? ???)?

Danke für eine Antwort

------------------
  Martin 

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 15. Dez. 2004 10:55    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,
@Martin
Programm Code speichern: LW:\irgendwo\FIT-MOUSE-REAC.LSP
Prog. laden: acad-Befehlszeile: (load "LW:\irgendwo\FIT-MOUSE-REAC.LSP")
Reactor wird in letzter Zeile aktiviert (FIT-MOUSE-REAC).
Prog ausführen: Doppelklick auf irgend ein Zeichnungselement.
@Alle
Das ganze funktioniert noch nicht richtig, mal wird das Eigenschaftsfenster angezeigt, mal nicht.
Und wenn ich ein Programm oder (command ... ) ausführen will tut sich nichts bzw. Fehler in VLisp (siehe Kommentar im Code).
Stelle dieses Thema hier zur Diskussion und bitte um Vorschläge und Verbesserungen.
Code:

(defun
  FIT-MOUSE-DOUBLECLICK
                        (REAKTOR BACKLIST / ELI SS)
  (if
    (setq SS (ssget (car BACKLIST)))
    (if
      (< (sslength (last (ssgetfirst))) 2)
        (progn
          ;; zum testen ohne EED's:
          (setq ELI (entget (ssname SS 0)))
          ;; mit EED's:
;;;          (setq ELI (entget (ssname SS 0) '("FI_TOOLS_020502")))
          (if
            ;; zum testen ohne EED's:
            ELI
            ;; nur wenn EED's und richtiger Anwendungsname:
;;;            (= "FI_TOOLS_020502" (car (last (assoc -3 ELI))))
            (progn
              (setvar "PICKFIRST" 0)
              ;; zum testen alert statt Programm:
              (alert (strcat "Element: " (cdr (assoc 0 ELI))))
              ;; warum erzeugt z.B. das einen Fehler:
                (command "_line" "0,0,0" "100,100,0" "") :_???
;;;            (princ "\nund mach NICHT, was acad normalerweise macht. ")
              (setvar "PICKFIRST" 1)
            )
;;;          (princ "\nmach, was acad normalerweise macht. ")
          )
        )
    )
  )
  (prin1)
)
(defun
  FIT-MOUSE-REAC
                (/)
  (if
    (not *FIT-MOUSE-REAC*)
    (progn
      (vlr-mouse-reactor NIL '((:vlr-begindoubleclick . FIT-MOUSE-DOUBLECLICK)))
      (setq *FIT-MOUSE-REAC* t)
    )
  )
)
(FIT-MOUSE-REAC)


------------------
Gruß Gerald

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

mkl-cad
Mitglied
Technischer Zeichner


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

Beiträge: 378
Registriert: 23.07.2003

ACAD 2002
Express Tools 1-9
Architektural Desktop
Windows XP
Server Windows 2003
3 GHz Rechner
1 GB RAM
80 GB Festplatte
ATI FireGL V3100
2 17" Flachbildschirme

erstellt am: 15. Dez. 2004 11: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 FiT 10 Unities + Antwort hilfreich

Danke Fit

Hatt nur den Teil des Programms gelanden der im zweiten Beitrag steht und erkenne jetzt dein Problem. Leider kann ich Dir dabei nicht helfen da ich mit Reaktoren und co. so gut wie nicht auskenne. Die Idee ist aber nicht schlecht.

------------------
  Martin 

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 15. Dez. 2004 14:26    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 FiT 10 Unities + Antwort hilfreich

In einer Reactorcallback funktion können keine Command Befehle ausgeführt werden - grundsätzlich nicht!

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 15. Dez. 2004 15:51    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 für den Hinweis, CADwiesel,
ein Test mit (entmod ... ) - ich will ja die EED's ändern - geht auch nicht. Um vernünftigen Zugriff auf die EED's zu haben, muß ich mich erstmal damit beschäftigen: (set_eed ... )(get_eed ... ) ...
Es geht darum, vohandene, von einem fremden Programm erzeugte EED's zu ändern - schön wäre mit Doppelklick...
Ich studiere hierzu gerade die "XED.LSP" von: http://xarch.tu-graz.ac.at/autocad/code/adesk/ghindex.html

------------------
Gruß Gerald

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

FiT
Mitglied



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

Beiträge: 22
Registriert: 27.08.2004

Pentium-IV, 1GB-Ram, Matrox-Parphelia, SCSII-UW2, Win2k, acad2004, BauCaD*K+R*17.

erstellt am: 22. Dez. 2004 22:42    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 Leute,
kurzer Zwischenbericht meiner derzeitigen Studien bezüglich:
Doppelklick öffnet eigenes Programm.
(command... und auch (entmod... geht nicht (im callback), aber:
(vla-sendcommand... funktioniert; und auch z. B.
(vla-startundomark...
(vla-endundomark...
(vla-highlight...
(vla-setxdata...
(vla-getxdata... ...usw. funktioniert.
Also konzentriere ich mich auf die vla-* Funktionen.
Habe auch eine jetzt endlich lauffähige Version hinbekommen, bin noch am testen und verbessern, und werde das demnächst posten.
weihnachtlicher Gruß aus Würzburg.

------------------
Gruß Gerald

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