Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Befehl Command unterbrechen

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:  Befehl Command unterbrechen (994 mal gelesen)
Jonapap
Mitglied



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

Beiträge: 206
Registriert: 18.08.2006

erstellt am: 20. Sep. 2006 12:06    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,

Was muss ich angeben damit der Befehl pedit ab der Abfrage für den Fuzzy-Abstand anhält, der Benutzer Fuzzyabstand und Verbindungstyp angeben kann, und anschließend der Befehl automatisch abgeschlossen wird?

(command "_.pedit" "_M" ss1 "" "_J" ???)

Kann ich da irgendwie "Pause" verwenden?

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 20. Sep. 2006 12:08    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 Jonapap 10 Unities + Antwort hilfreich

Hi,
genau das mußt Du tun. Da wo das command auf 'ne Benutzereingabe warten soll mußt Du
Code:
pause
eintragen!

------------------
Ciao,
Marc

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

Jonapap
Mitglied



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

Beiträge: 206
Registriert: 18.08.2006

erstellt am: 20. Sep. 2006 14:08    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 Marc,

ich hatte ja schon folgendes ausprobiert:

    (Command "_.pedit" "_m" ss "" "_y" "_j" pause "")

allerdings bekomme ich dann in der Kommandozeile keinerlei Aufforderung zur Eingabe des Fuzzy-Abstandes.

Wenn ich die dynamische Anzeige aktiviert habe, kann ich zwar den Wert eingeben,
habe aber keine Chance den Verbindungstyp zu ändern.

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 20. Sep. 2006 14: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 Jonapap 10 Unities + Antwort hilfreich

Hi,
Du mußt das genauso eingeben wie im interaktiven Dialog in der Befehlszeile. Optionen wie dort. Und für jede Benutzereingabe ein separates <pause> nicht für alle eines...

------------------
Ciao,
Marc

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

Jonapap
Mitglied



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

Beiträge: 206
Registriert: 18.08.2006

erstellt am: 20. Sep. 2006 15: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

Hallo Marc,

danke für dein Bemühen, aber ich komme damit irgendwie noch nicht klar.

Ich beschreib es Mal etwas genauer:
Ich will das angehängte Programm so abändern, das ich anstatt eines Fuzzy-Abstandes auch den Verbindungstyp (Dehnen,Hinzufügen,Beides) auswählen kann - wie es auch im Original pedit-Befehl geht.
Kann ich das mit dem Pause-Befehl realisieren, oder muss ich dann eine komplett neue Abfrage für die Schlüsselwörter einbauen?

Der Befehl pljoin aus den Express-Tools macht zwar genau das, allerdings lassen sich manche Linien, die ich in der Isometrie gezeichnet habe (Acad2007), damit trotz Fuzzy-Abstand einfach nicht verbinden.
Mit dem Befehl pedit geht's komischerweise.

Hier das Programm:

;;;Copyright (C) 2003-2004 JTB World, All Rights Reserved
(defun c:jf () (c ljoinfuzz)) ; this line can be commented out if there is an existing command called jf
(defun c ljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
  (setq oldcmdecho (getvar "cmdecho"))
  (setq oldpeditaccept (getvar "PEDITACCEPT"))
  (setvar "cmdecho" 0)
  (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
  (if A2k4 (setvar "PEDITACCEPT" 0))
  (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
  (princ "\nSelect object to join: ")
  (setq ss1 (ssget okObjects))
  (setq fuzz (getdist "\nFuzz distance <0>: "))
  (if (= fuzz nil) (setq fuzz 0))
  (if (/= ss1 nil)
      (progn
(setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
(if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
(if (member objType '("LINE" "ARC"))
  (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
  (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
)
      )
  )
  (setvar "cmdecho" oldcmdecho)
  (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
  (princ)
)

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 20. Sep. 2006 15:43    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 Jonapap 10 Unities + Antwort hilfreich

Hallo Jonapap,

vielleicht solltest Du erst festlegen, wie der Verbindungstyp ist, und dann entsprechend den (command "_.pedit... aufrufen, dann brauchst Du nicht mit "Pause" rumzuhantieren".

Das folgende ist nur ein prinzipieller Vorschlag, ungetestet:

Code:

(defun test (aws jointype / fuzzy)
(setq fuzzy (getreal "\nBitte Fuzzyabstand eingeben:"))
  (cond ((not jointype);wenn Verbindungstype unverändert
(if (not(member(cdr(assoc 0(entget (ssname AWS 0))))'("POLYLINE" "LWPOLYLINE")))
  (command "_.pedit" "_m" AWS"" "_Y" "_j" (if (not fuzzy) 0.0 fuzzy) "")
  (command "_.pedit" "_m" AWS"" "_j" "_j" (if (not fuzzy) 0.0 fuzzy) "")))
((= jointype "E");wenn Verbindungstype "Dehnen"
(if (not(member(cdr(assoc 0(entget (ssname AWS 0))))'("POLYLINE" "LWPOLYLINE")))
  (command "_.pedit" "_m" AWS"" "_Y" "_j" "_j" "_e" (if (not fuzzy) 0.0 fuzzy) "")
  (command "_.pedit" "_m" AWS"" "_j" "_j" "_e" (if (not fuzzy) 0.0 fuzzy) "")))
((= jointype "A");wenn Verbindungstype "Hinzufügen"
(if (not(member(cdr(assoc 0(entget (ssname AWS 0))))'("POLYLINE" "LWPOLYLINE")))
  (command "_.pedit" "_m" AWS"" "_Y" "_j" "_j" "_a" (if (not fuzzy) 0.0 fuzzy) "")
  (command "_.pedit" "_m" AWS"" "_j" "_j" "_a" (if (not fuzzy) 0.0 fuzzy) "")))
((= jointype "B");wenn Verbindungstype "Beide"
(if (not(member(cdr(assoc 0(entget (ssname AWS 0))))'("POLYLINE" "LWPOLYLINE")))
  (command "_.pedit" "_m" AWS"" "_Y" "_j" "_j" "_b" (if (not fuzzy) 0.0 fuzzy) "")
  (command "_.pedit" "_m" AWS"" "_j" "_j" "_b" (if (not fuzzy) 0.0 fuzzy) "")))))


;;;Aufruf z.B. mit (test (ssget) "A")

------------------
viele Grüße

Jörn

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

Jonapap
Mitglied



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

Beiträge: 206
Registriert: 18.08.2006

erstellt am: 20. Sep. 2006 16: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

Danke Jörn,

mir ist schon klar, dass man die Abfrage für den Verbindungstyp auch so lösen kann (siehe Fuzzy-Abstand im obigen Beispiel).

Allerdings suche ich eine einfache Lösung, weil ich mich mit Lisp noch nicht so gut auskenne (ich baue im Moment noch lieber vorhandenen Code um).

Da ich das Programm so schnell Bedienbar wie möglich haben möchte, müsste ich eine Abfrage schreiben, die gleichzeitig einen eventuellen Fuzzy-Abstand (oder den Null-Wert) und die Abfrage für den Verbindungstyp auswertet.
Das ist mir im Moment noch ein bischen viel...

Gibt es vielleicht noch eine einfachere Möglichkeit?

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