Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Objektfang

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:  Objektfang (424 mal gelesen)
vision
Mitglied



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

Beiträge: 113
Registriert: 27.10.2003

AutoCAD 2015
Expresstools
Windows 10

erstellt am: 09. Sep. 2004 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,

in einem Lispprogramm ist folgende Anweisung:
  (setvar "OSMODE" 32)
  (setq schn (getpoint "\n Schnittpunkt wählen: "))
  . . .
Wenn der Schnittpunkt dann aber doch nicht ausgewählt wird, kommt es im weiteren Programverlauf zu einer Fehlfunktion.
Frage: gibt es eine Möglichkeit den Objektfang zu überwachen?

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 09. Sep. 2004 10:20    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 vision 10 Unities + Antwort hilfreich

jo,

(if(setq schn (getpoint "\n Schnittpunkt wählen: "))
  (progn
  .....
  )
(princ"\nKein Schnittpunkt gewählt")
)
wird nur abgearbeitet wenn Schnitpunkt gewählt.

------------------
- Thomas -

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 09. Sep. 2004 11:52    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 vision 10 Unities + Antwort hilfreich

> ... den Objektfang überwachen
Did you mean ... die Objektwahl überwachen>?

Ich denke wie Thomas auch nicht, dass das eine Frage des OSMODE ist - hier geht es nur um die Gestaltung des Programmablaufs. Den Objektfang überwachst du doch schon, indem du OSMODE auf 32 setzt. Kannst ja anschließend (setvar "osmode" 0) oder sonstwas verwenden. Aber macht es überhaupt Sinn, das Programm fortzusetzen, wenn der Schnittpunkt nicht angegeben wurde? Wenn ja, sollte auch ein Prompt wie "Wählen Sie einen Schnittpunkt oder drücken Sie Return" erscheinen.

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

[Diese Nachricht wurde von mapcar am 09. Sep. 2004 editiert.]

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

vision
Mitglied



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

Beiträge: 113
Registriert: 27.10.2003

AutoCAD 2015
Expresstools
Windows 10

erstellt am: 09. Sep. 2004 12: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

Hallo!

Bei diesem Testprogramm erhalte ich immer die Meldung [Schnittpunkt ist gewählt!] auch wenn ich mit der Maus neben dem Schnittpunkt klicke!

(defun c:LINE_BRUCH ()

  (setq bl (entsel "\n Bruchlinie wählen: "))
  (setvar "OSMODE" 32)

  (if(setq schn (getpoint "\n Schnittpunkt wählen: "))
      (progn
(princ" [Schnittpunkt ist gewählt!] ")
      )
  (princ" [Schnittpunkt ist nicht gewählt!] ")
  )
)

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 09. Sep. 2004 13: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 Nur für vision 10 Unities + Antwort hilfreich

Ja, das hat eine einfache Erklärung: Du hast vergessen, die Variable schn lokal zu machen.

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

Peter Tropf
Mitglied
Konstrukteur


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

Beiträge: 246
Registriert: 28.06.2003

erstellt am: 09. Sep. 2004 20: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 Nur für vision 10 Unities + Antwort hilfreich

Hallo,

auch wenn das Pgm so aussieht, hat es nicht den gewünschten Effekt:

(defun C:LINE_BRUCH (/ BL SCHN)
  (setq BL (entsel "\n Bruchlinie wählen: "))
  (setvar "OSMODE" 32)
  (if (setq SCHN (getpoint "\n Schnittpunkt wählen: "))
    (princ " [Schnittpunkt ist gewählt!] ")
    (princ " [Schnittpunkt ist nicht gewählt!] ")
  ) ;_ end if
) ;_ end defun

Du willst vermutlich den User zwingen, einen Schnittpunkt einzugeben, oder? OSMODE setzt aber "nur" den Dauerobjektfang und der wird nicht überwacht. Also setzt jede beliebige Punkteingabe SCHN auf True. Du kannst nur mit initget ein Return abfangen.

------------------

Gruß Peter

(Fachbuchautor und AutoCAD-Trainer)

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 10. Sep. 2004 01:10    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 vision 10 Unities + Antwort hilfreich

Bei einem Return zeigt das Programm aber korrekt an, dass kein Punkt gewählt wurde. Die Return-Eingabe ist also nicht das Problem, und initget daher auch keine Lösung. AutoCAD bzw. Lisp können überhaupt nicht überprüfen, ob eine Eingabe des Benutzers inhaltlich korrekt ist - es kann sowieso nur getestet werden, ob die Eingabe formal korrekt ist (Datentyp == Punkt).

Es sieht so aus, dass hier erwartet wird, dass der User einen Schnittpunkt wählt, der auf der zuvor gewählten Linie liegt. Das muss getestet werden! Und da muss sich dann das Programm schon was einfallen lassen, z.B. mit vlax-curve... usw. Oder mit ein wenig analytischer Geometrie.

Gruß, Axel Strube-Zettler

<edit>
Richtig aber, dass das 'lokalisieren' der Symbole hier nicht die Ursache war
</edit>
------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

[Diese Nachricht wurde von mapcar am 10. Sep. 2004 editiert.]

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