Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Funktionstasten während Programmablauf

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:  Funktionstasten während Programmablauf (625 mal gelesen)
SebZ
Mitglied
Bauingenieur Tiefbau


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

Beiträge: 189
Registriert: 17.10.2004

AutoCAD 2010 Civil 3D DACH
WinXP Professional 2002 SP3
MS Office 2007
Intel Core2Duo 2.80 GHz, 3.00 GB RAM

erstellt am: 19. Jan. 2007 10:19    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,

während eines Lisp-Programmablaufes möchte ich gern die Systemvariable "Orthomode" triggern und stelle mir vor, mit F8 oder Statusleistenbutton ausschließlich dann, wenn ich es auch brauche.
Die entscheidende Stelle ist, dass ich in der gegenwärtigen Version Elemente mit voreingestelltem Orthomode=1 verschiebe, möchte aber diesen Freiheitsgrad während des Ablaufes verändern können.
Leider wird F8 bzw. Button "ORTHO" als Enter interpretiert und der Schiebevorgang an der aktuellen Fadenkreuzposition beendet.

Zum Thema "Funktionstasten" habe ich nur dieses hier gefunden, was ein Hinweis wäre, dass ich sowas nur mit einem Reaktor realisieren kann (was ich aber nicht möchte).

Gibt es noch eine andere Möglichkeit, die SYSVAR ohne fest programmierte Abfrage beim Programmlauf zu triggern?

------------------
Gruß
SebZ

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

.

erstellt am: 19. Jan. 2007 10:29    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 SebZ 10 Unities + Antwort hilfreich

die hilfe sagt :
ORTHOMODE (Systemvariable)
Typ: Ganzzahl
Gespeichert in: Zeichnung
Ausgangswert: 0

Beschränkt Cursorbewegungen auf die Lotrechte. Bei eingeschaltetem ORTHOMODE bewegt sich der Cursor bezogen auf das BKS und den aktuellen Drehwinkel des Rasters nur horizontal oder nur vertikal.

0 Schaltet den Orthomodus aus.
1 Schaltet den Orthomodus ein.


und damit z.B: (setvar "ORTHOMODE" 1)
oder zum Umschalten wie F8 (setvar "ORTHOMODE" (- 1 (getvar "ORTHOMODE")))
------------------
      - 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

SebZ
Mitglied
Bauingenieur Tiefbau


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

Beiträge: 189
Registriert: 17.10.2004

AutoCAD 2010 Civil 3D DACH
WinXP Professional 2002 SP3
MS Office 2007
Intel Core2Duo 2.80 GHz, 3.00 GB RAM

erstellt am: 19. Jan. 2007 11:11    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

Da habe ich glaube ich noch nicht präzise genug gefragt.

Die Möglichkeit mit (setvar) ist mir bekannt.
Um (setvar) abzuarbeiten, muss ich aber immer an einer festen Stelle im Programmablauf, der in einer Schleife zuerst jeweils eine Elementpalette zusammenstellt und diese dann in einem BKS längs der X-Achse verschiebt/streckt, eine Abfrage einfügen. Genau das möchte ich aber eigentlich nicht, sondern wie während eines normalen AutoCad-Befehles an ganz beliebiger Stelle, die Bewegungsmöglichkeit auch in Y-Richtung freigeben bzw. frieren: eben halt nur in den wenigen Fällen, wo es tatsächlich erforderlich ist.

Ergänzen müsste ich noch, dass ich die Verschiebung/Streckung in einer (grread)-Schleife mit (vla-move) bzw. (vlax-put-property) durchführe. Die Koordinatenübergabe ist also in Wirklichkeit unabhängig von ORTHOMODE (Y wird im Code konstant gehalten und müsste bei ORTHOMODE=0 entsprechend berechnet werden). Derzeit benötige ich daher ORTHOMODE nicht wirklich und will sie auch nur als "Informationsquelle" über den (Wunsch: variablen) AutoCad-Status nutzen, anhand der ich Y berechne oder eben nicht.
Das nur als Hintergrund...

------------------
Gruß
SebZ

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

.

erstellt am: 19. Jan. 2007 11: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 SebZ 10 Unities + Antwort hilfreich

wenn du mit (grread) arbeitest, frag doch einfach ab, ob (equal(grread)'(2 15)) ..entspricht F8.. und dann verzweigst du nach (setvar "ORTHOMODE" (- 1 (getvar "ORTHOMODE"))) ansonsten deine gewohnte Routine..

------------------
  - 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

SebZ
Mitglied
Bauingenieur Tiefbau


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

Beiträge: 189
Registriert: 17.10.2004

AutoCAD 2010 Civil 3D DACH
WinXP Professional 2002 SP3
MS Office 2007
Intel Core2Duo 2.80 GHz, 3.00 GB RAM

erstellt am: 19. Jan. 2007 13: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

Ich hatte inzwischen zwar schon eine immer größer werdende Antwort geschrieben, die sich unter dem Strich aber zu folgender Problematik reduziert:

Die Auswertung von (grread) finde ich sehr elegant und verfolgenswert und habe in der Zwischenzeit eine Menge rumprobiert,
-- nur: 

die Cursorkoordinaten ermittle ich mit (grread 't) bzw. (grread nil 1), während ich einen Tastencode über (grread) bzw. (grread nil 2) erhalte.
(Wo liegt eigentlich der Unterschied zwischen (grread 't) und (grread nil 1)?)

Blöderweise weiß ich natürlich nie, ob ich als nächstes eine Koordinate oder einen Tastendruck  erhalte, die ich auswerten muss, also beißt sich die Katze in den Schwanz. Oder mache ich einen logischen Fehler?

------------------
Gruß
SebZ

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

.

erstellt am: 19. Jan. 2007 14:02    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 SebZ 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von SebZ:
Blöderweise weiß ich natürlich nie, ob ich als nächstes eine Koordinate oder einen Tastendruck  erhalte, die ich auswerten muss, also beißt sich die Katze in den Schwanz. Oder mache ich einen logischen Fehler?

grrread gibt doch ne Liste zurück und der erste Wert sagt doch ( wie in der Hilfe beschrieben) aus:

2  Keyboard input
3  Selected point
4  Screen/pull-down menu
...
und der 2. Listenwert ist dann das entsprechende ..

z.B.
(setq VALUE(grread nil 0  1))
(cond
  ((=(car Value)3)(setq KOORD (cdr VALUE)))
  ((equal VALUE '(2 15))(setvar "ORTHOMODE" (- 1 (getvar "ORTHOMODE"))))
  ('T ...)
)

und zu mehr müßte man deinen Code kennen.

------------------
  - 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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 19. Jan. 2007 14: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 SebZ 10 Unities + Antwort hilfreich

Hallo Thomas,

wie kommst zu den 15? Tabelle oder Tool?
Vor langer Zeit, noch unter DOS,  hatte ich ein Programm, das wenn ich eine Taste gedrückt habe mit den Code ausgegeben (außer ESC, damit wurde  abgebrochen) hat.

Gruß
Theodor

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

.

erstellt am: 19. Jan. 2007 14:29    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 SebZ 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Theodor Schoenwald:
Hallo Thomas,

wie kommst zu den 15? Tabelle oder Tool?
Vor langer Zeit, noch unter DOS,  hatte ich ein Programm, das wenn ich eine Taste gedrückt habe mit den Code ausgegeben (außer ESC, damit wurde  abgebrochen) hat.

Gruß
Theodor


Hallo Theodor.. also : ich habe :
grread aufgerufen .. F8 gedrückt, und mir die Rückgabe angeschaut.. irgentwas bietet da auch noch die Winapi .. aber ich hab das in der Form noch nicht gebraucht und mich somit auch nicht weiter mit beschäftigt.

------------------
  - 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

SebZ
Mitglied
Bauingenieur Tiefbau


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

Beiträge: 189
Registriert: 17.10.2004

AutoCAD 2010 Civil 3D DACH
WinXP Professional 2002 SP3
MS Office 2007
Intel Core2Duo 2.80 GHz, 3.00 GB RAM

erstellt am: 19. Jan. 2007 14:32    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

Na ja, das hatte ich ja auch gedacht, aber wenn ich eine Mauskoordinate abfragen will, muss ich Tracking aktivieren, also (grread 't), und schon gibts keinen Tastaturcode mehr zurück:

vgl. Hilfe:

Zitat:

grread return values 
First Element                                                                      |  Second Element
Value  | Type of input                                                          |  Value      | Description
5        |  Pointing device (returned only if tracking is enabled)  |  3D point  |  Drag mode coordinate


Anderenfalls gibts den Value 3 zurück, den ich aber nicht brauchen kann, weil ich die Maus ungedrückt abfrage.

@Theodor:
das hatte ich mich natürlich auch gefragt nach Cadmiums Antwort. Lässt sich für einzelne Tasten mit (grread nil 2) schnell rauskriegen, ansonsten natürlich Fleißarbeit übers gesamte keyboard... (mangels weiterer Dokumentationen, die ich nicht besitze)

------------------
Gruß
SebZ

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 19. Jan. 2007 15:04    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 SebZ 10 Unities + Antwort hilfreich


Hallo Thomas, hallo SebZ,

Danke, das ich es die ganze Zeit nicht mehr gebraucht habe, ist die Antwort eine Auffrischung.

Gruß
Theodor

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