| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Bildschirmausgabe unterdrücken (2324 mal gelesen)
|
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 01. Aug. 2007 16:53 <-- editieren / zitieren --> Unities abgeben:         
Hallo ! Ich habe ein lisp-Programm, welches in einer "defun C:..." eine command-Zeile enthält mit einem script aus AutoCAD-Befehlen und Optionen. Wie kann ich es unterbinden, daß der Ablauf des AutoCAD-scripts in der Befehlszeile von AutoCAD "dokumentiert" wird ? Hier ein kurzes script mit command-Befehl, welches aber das Prinzip zeigt worum es mir geht. (defun C:re-kontur () (command "^C" "^C" "pickbox" "7" "-layer" "t" "Kontur" "se" "Kontur" "" "re" "a" "5") ) Ich möchte im AutoCAD-Befehlsfenster nicht nachvollziehen können, was die Funktion re-kontur alles macht, z.B welche systemparameter unter Umständen geschaltet werden usw. Danke für Eure Hilfe ! Gruß Mario
------------------ Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 01. Aug. 2007 17:29 <-- editieren / zitieren --> Unities abgeben:         
Vielen Dank für deine Antwort ! Noch 2 Fragen: 1)Wenn ich in meinem lisp mehrere Funktionen definiere mit defun C: und command, reicht es dann wenn ich cmdecho am Beginn des lisp-Programmes auf 0 setze ? 2) Wirkt sich cmdecho = 0 nur auf die in diesem lisp definierten Funktionen (aus command mit script) aus oder auch auf Funktionen, die ich in einem anderen lisp definiere und wo ich cmdecho nicht auf 0 setze ? Gruß Mario ------------------ Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LiSpler Mitglied
 Beiträge: 1 Registriert: 13.07.2007
|
erstellt am: 01. Aug. 2007 18:29 <-- editieren / zitieren --> Unities abgeben:          Nur für cpims
Hallo Mario, bei Änderung einer ACAD-Variable wird der neu gesetzte Wert übernommen, bis er wieder geändert wird (gilt für die aktuelle Sitzung). man kann die Variable aber am Ende des LISPs auf den Ausgangswert zurücksetzen: (setq cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (command "blablabla"...) (setvar "cmdecho" cmdecho) Hoffe dir geholfen zu haben 
------------------ -> never 4get 2 smile <- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 01. Aug. 2007 18:44 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied | |
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 02. Aug. 2007 08:30 <-- editieren / zitieren --> Unities abgeben:          Nur für cpims
Systemvariablen werden in meinem System immer automatisch zurückgestellt. Mittels den Reaktoren LispWillStart, LispEnded, LispCancelled, und sysVarWillChange weiss ich genau welche Systemvariablen von einem LISP Programm verändert wurden. Diese werden mitprotokolliert und im Ereigniss LispEnded und LispCancelled wieder auf ihrem Ausgangswert zurückgestellt. ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
scj Mitglied
  
 Beiträge: 555 Registriert: 09.08.2001
|
erstellt am: 02. Aug. 2007 09:52 <-- editieren / zitieren --> Unities abgeben:          Nur für cpims
|
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 09. Aug. 2007 11:29 <-- editieren / zitieren --> Unities abgeben:         
Hallo ! Danke für die vielen interessanten Vorschläge ! Trotzdem muß ich nochmal nachhaken. Ich habe ein lisp-Programm geschrieben, welches eigentlich nur eine Ansammlung von vielen Funktionen ist, die auf script basieren. Also Aneinanderreihungen von AutoCAD-Befehlen mit Optionen und Schalten von Systemvariablen. Etwa in dieser Form: (defun C:re-kontur () (command "^C" "^C" "pickbox" "7" "-layer" "t" "Kontur" "se" "Kontur" "" "re" "a" "5") ) Nun möchte ich 2 verschiedene Dinge erreichen. 1) Nach Ausführen (Beendigung) solch eines Befehls in AutoCAD (natürlich nachdem das lisp geladen wurde) sollen alle Systemvarialen, welche mit solch einem Befehl verändert wurden (z.B. pickbox 7), wieder auf den Wert zurückgesetzt werden,der vor Ausführung des Befehls aktuell war. 2) Bei manchen Befehlen möchte ich nur die Ausgabe in die Befehlszeile unterdrücken und nach Beendigung des Befehls soll die Unterdrückung der Ausgabe in die Befehlszeile wieder aufgehoben sein. (siehe auch Punkt 3) Ist hier die Lösung mit nomutt oder mit cmdecho besser Zusatzfrage 3) Wie kann ich diesen Befehl in einem lisp-Programm in ein "defun-command" verpacken ? Mein Problem ist der * ganz am Anfang (für die Wiederholung der Option Abstand) und das Wiedereinschalten von cmdecho auf 1 nach Beendigung des Befehls *^C^Ccmdecho 0 '-ofang endp,mit,sch,hil,zen,tan,quad -layer t HK m HK fa rot HK l continuous hk ls 0.2 hk klinie a Gruß Mario ------------------ Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 09. Aug. 2007 12:39 <-- editieren / zitieren --> Unities abgeben:         
OK Ist mir soweit klar. Aber die Wiederholung der Option Abstand (im script mit * erzeugt) funktioniert so ja nicht. Ich will nicht nur den Befehl Konstruktionslinie immer wieder neu starten, sondern den Befehl Konstruktionslinie mit Option Abstand. Gruß Mario
------------------ Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 09. Aug. 2007 13:41 <-- editieren / zitieren --> Unities abgeben:         
Ich möchte nachdem ich mit diesem Befehl eine Klinie z.B. mit Abstand 10 gezeichnet habe, gleich die nächste mit Abstand 20 und die nächste mit Abstand 55.6 usw. zeichnen. Dabei möchte ich, daß durch 1x Bestätigung (Leertaste od. Return) nicht der letzte Befehl neu gestartet wird (das wäre ja Klinie), sondern der letzte Befehl inkl. Option. Also durch Drücken von Return nach Abstand z.B. 10 soll in der Befehlszeile gleich wieder stehen "Abstand eingeben" und nicht [Horizontal, Vertikal, Winkel, Abstand], sodaß ich nicht immer wieder die Option Abstand selber mit RMT oder Eingabe von a starten muß, sondern gleich den neuen Abstand eingeben kann Gruß Mario ------------------ Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 10. Aug. 2007 10:21 <-- editieren / zitieren --> Unities abgeben:         
Vielen Dank ! Werde das mal probieren. Aber geht das nicht einfacher ? Die einzige Besonderheit in diesem Befehl (script) ist ja der *, der mir den Befehl Klinie inkl. Option Abstand neu startet sobald ich 1x die Return-Taste drücke. Ansonsten ist es nur eine Aneinanderreihung von Befehlen und Optionen. Kann ich diesen * in einem lisp-Programm nicht verwenden ? Gruß ------------------ Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied | |
cpims Mitglied
 
 Beiträge: 227 Registriert: 28.08.2003
|
erstellt am: 10. Aug. 2007 15:34 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied | |