| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layer umschalten bei der Bemassung (9404 mal gelesen)
|
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 04. Okt. 2003 20:09 <-- editieren / zitieren --> Unities abgeben:
HI @ ALL :-), folgendes ist nun mein Problem (ich weiss, ich nerve :-)): Vor jedem Bemassungs-Befehl möchte ich, dass mir eine Lisp-Routine den aktuellen Layer abfragt, dann auf den Layer "DIM" schaltet (das ist der Layer auf dem die Bemassungs-Objekte eingefügt werden sollen) und nach der Bemassung wieder auf den ehemals aktuellen Layer geht. Hat jemand von Euch sowas schon mal gemacht ? Kann mir da jemand weiterhelfen ? Danke, CAD-Tötti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 05. Okt. 2003 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Eine Möglichkeit wäre sich mit (getvar "clayer") den aktuellen Layer zu merken, dann mittels (command ".-layer" ...) den layer zu wechseln, dann die Elemente zu erzeugen und schließlich wieder auf den am Anfang gemerkten Layer zurückzuwechseln. Alternativ kann man mittels (entmake ...) sicherlich die Elemente auch gleich auf dem entsprechenden Layer erzeugen, nur ist das (je nach zu erzeugendem Element) nicht unbedingt immer die einfachste Methode. sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ManfredMann Mitglied CAD Konstrukteur
Beiträge: 216 Registriert: 27.04.2001 Autocad 2021 / Win10- 64 bit
|
erstellt am: 09. Okt. 2003 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo! Eine ähnliche Lösung wäre, mit einer Lisp-Routine alle vorhandenen Bemaßungs-Elemente auf DIM-Layer zu stellen. Also Zeichnung beliebig mit Bemaßungen versehen, und nachträglich die auf DIM "verschieben". Natürlich geht DIM aktiv stellen + bemaßen + altes Layer als aktiv stellen auch. Dies hat aber einen Nachteil: es gibt eine ganze Reihe Bemaßungs-Befehle, die müssten alle in diese Funktion auswählbahr integriert werden. Das nachträgliche "Aufräumen" ist von Kommandoauswahl und Ablauf dagegen unabhängig, damit können praktisch auch alte Zeichnungen beackert werden. Gruß, Manfred Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 09. Okt. 2003 15:37 <-- editieren / zitieren --> Unities abgeben:
Hi, danke erstmal für Eure Antworten. Ich meine, dass jeder Bemaßungsbefehl seinen Ursprung im Befehl "DIM" oder "DIM1" hat, und wenn man vor jedem dieser Befehle auf den Bemaßungslayer schaltet, müsste das doch gehen, oder ? Jetzt mein Problem: wie geht das :-) ??? Ich beschäftige mich noch nicht sehr lange mit Lisp. CAD-Tötti
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 09. Okt. 2003 18:08 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 09. Okt. 2003 20:37 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Ich rate erstmal zu der version mit der Sache des änderns nach bemassung. Also bemassen dann knöppsche drücke und bemassung verschieben. Allerdings gibts noch ne Lösung vor der Hardcore-Version (Danke an Albert für das Wort!!!) die wäre einfach ein lisp schreiben, was die ganzen Bemassungsbefehle umdefiniert (bflösch) und neu definieren !!!*** F1 ***!!! ..und zum Schuß bleiben dann die Reaktoren :-) i-love Reaktoren :-( ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 10. Okt. 2003 11:16 <-- editieren / zitieren --> Unities abgeben:
|
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 13. Okt. 2003 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Es geht wahrscheinlich auch ohne Reaktoren. Folgendes Progrämmchen wechselt auf einen Layer, ruft den Bemassungsbefehl auf (welcher sich wie bissher verhält) und wechselt nach Befehlsende wieder auf den Ursprungslayer zurück. Für eine Produktivversion sollte man u.a. aber noch die Fehlerbehandlung dazustricken, so dass auch im Falle eines Abbruchs durch den Benutzer die veränderten Systemvariablen und der Layer zurückgesetzt wird. --- 8< --- hier den Glasschneider ansetzen --- 8< --- (defun c:ldim( / oldlayer oldtexteval) (setq oldlayer (getvar "clayer") oldtexteval (getvar "texteval") ) (setvar "texteval" 1) (command "._-layer" "_make" "MeineBemassung" "_color" "_red" "" "") (command "._dim") (while (equal (getvar "cmdactive") 1) (command pause) ) (setvar "texteval" oldtexteval) (setvar "clayer" oldlayer) ) --- 8< --- hier den Glasschneider ansetzen --- 8< --- sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 13. Okt. 2003 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
ja, tmoehlenhoff natürlich geht das so, aber was ist mit allen anderen möglichen Bem-Befehlen? logisch kann mann sich für jeden einen eigenen Button machen und mit einem angepassten lisp hinterlegen - aber ob's das ist???? ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 13. Okt. 2003 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hi Cadwiesel, ist schon klar, dass das dann nicht dir hyperelegante Lösung wird, aber Originalaussage von CAD-Tötti war "Ich beschäftige mich noch nicht sehr lange mit Lisp" und dann halte ich Reaktoren für recht schwere Kost. Wenn man dann die Bemassung eben nicht in einem weiteren zweiten Schritt auf den gewünschten Layer legen möchte bleibt nicht mehr wirklich viel übrig. Der von mir vorgeschlagene Lösungsweg bedeutet tatsächlich, dass man eigene Buttons oder Menüeinträge für alle Bemassungsbefehle schaffen müsste, aber wenn man die Routine noch mit einem Parameter für den aufzurufenden Befehl ausstattet, dann kommt man mit ein bisschen Programm und ein bisschen mehr Schreibarbeit beim Erstellen des Menüs bzw. der Buttons auch als Lisp-Starter relativ schnell zum Ziel. Alternativ kann man natürlich auch die Originalbefehle löschen und entsprechende Kommandos in Lisp neu definieren, wobei dann ein c riginalname mein Code-Schnipselchen von oben mit dem Befehlsnamen als Parameter aufruft. Somit erspart man sich dann die Menüänderungen, wirklich gut finde ich das aber auch nicht. Die Reaktoren-Lösung ist sicherlich um Längen eleganter, wenngleich aber auch (gerade am Anfang) um einiges kniffeliger ... sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 13. Okt. 2003 12:52 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
annscheinend herrscht das Bild vor, dass ich Reaktoren präferiere. Das ist aber nicht so. Wenn ich's machenmüsste, würde ich die Befehle umdefinieren und zar so einfach, dass nur vor jedem dim-Befehl der Layer gesetzt wird und dannach wieder zurück - wobei ich mir bei der 'zurück'-Geschichte nicht so sicher bin, ob das so einfache geht, oder nicht doch auf so einen blöden reaktor zurückgegriffen werden muß. Jetzt müsste sich Tröte nur mal äussern, wie er sich entschieden hat. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 13. Okt. 2003 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hi, jetzt will ich mich auch einmal einmischen die folgenden paar Zeilen sind für die Implementierung eines Reaktors vollkommen ausreichend- es sind auch alle Befehle, die mit DIM beginnen 'erschlagen'. Code:
(defun pre_lay (reatyp befname / );Wenn Bem gestartet wird (cond ((wcmatch (car befname) "DIM*") (setq *oldlay* (getvar "CLAYER")) (setvar "CLAYER" "0") ) ) ) (defun after_lay (reatyp befname / );Wenn Bem beendet wird (cond ((and (wcmatch (car befname) "DIM*") *oldlay* ) (setvar "CLAYER" *oldlay*) (setq *oldlay* nil) ) ) ) (defun reaload ();Initialisierung des Reactors (if (not *DEFUN_DIMLAYER*) (progn (setq *DEFUN_DIMLAYER* (VLR-Command-Reactor "*DEFUN_DIMLAYER*" '((:vlr-commandEnded . after_lay) (:vlr-commandwillstart . pre_lay) ) ) ) (princ "\nLayerschalter Bemassung aktiviert") ) ) ) (reaload)
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 13. Okt. 2003 22:26 <-- editieren / zitieren --> Unities abgeben:
Ich danke Euch recht herzlich :-), aber streiten braucht Ihr Euch ja nicht wegen mir *hick* (huch, das war ein bisschen zuviel des roten Weines :-)). Aber eine dumme Frage hätte ich dann noch: was sind denn (völlig abstrahiert) eigentlich Reaktoren ? Grüße aus FFM der "blutige Anfänger" :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 13. Okt. 2003 22:30 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 13. Okt. 2003 22:57 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo CAD-Tötti, Reactoren reagieren ohne weitere Befehlseingabe auf ein bestimmtes Ereignis. Object-Reactoren auf irgendeine Aktion, die mit einem Objekt ausgeführt wird. Command-Reactoren auf die Befehle. Das ist in meinem Code passiert. Es werden 2 Reaktoren geschaffen. Der eine für den Befehlsstart und der 2. für das Ende des Befehls. Bei Fragen ...
Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tmoehlenhoff Ehrenmitglied V.I.P. h.c. Gutzum, CAD-Therapeut und BIM-Priester ;-)
Beiträge: 2996 Registriert: 14.10.2002 ATD 2 bis 2007
|
erstellt am: 14. Okt. 2003 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Ich streite doch gar nicht, ich diskutiere doch nur :-) Die Lösung vom Holger ist sicherlich die eleganteste und letztendlich ja auch nicht wirklich schwierig zu verstehen. Ich wollte auch niemanden fälschlicherweise als Anfänger einstufen, nur als die Reaktoren aufkamen fand das zwar höchst interessant aber den Einstieg auch recht komplex. Vielleicht lags auch daran, dass ich bis dahin schon Jahre ohne die Teile ausgekommen bin. Nichts für ungut an alle. sayonara Torsten Möhlenhoff ACAD-Systemhaus Bremen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 14. Okt. 2003 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
@tmoehlenhoff Ich denke du brauchst dir keine Sorgen zu machen, das sich hier gestritten wird. von sowas sind wir Meilenweit entfernt. Vielen Dank an Holger, der mal eben das schöne Beispiel zu den Reaktoren und die Erklärung dazu geliefert hat. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Tötti Mitglied
Beiträge: 116 Registriert: 27.09.2003 ACAD 2009
|
erstellt am: 18. Okt. 2003 09:35 <-- editieren / zitieren --> Unities abgeben:
HI@ALL, also die Nummer mit den Reaktoren ist schon geil *danke Holger*. Das war genau das was ich gesucht habe, ich meine auch ein bisschen zu verstehen, was da vor sich geht. Mein Bemaßungslayer heißt "DIM" und wenn er nicht in der Zeichnung existiert, kommt eine Fehlermeldung. Es ist aber ein generelles Problem, dass da heißt: Wie gestallte ich eine Überprüfung, die a) prüft ob der Layer in der zeichnung existiert b) den Layer ggf. nach den Maßgaben aus einer Datei z.B. "Layer.dat" anlegt c) die Layer generell beim Start von AutoCAD aus dieser Datei lädt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: Damit wir besser geholfen werden WinXP, acadR14, acad map2006
|
erstellt am: 18. Okt. 2003 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo CAD-Tötti, ich brauche für verschiedene Projekte jeweils einen anderen Satz Layer. Ich habe das so gelöst: Es gibt eine "acad.lsp", die bei jedem Start automatisch geladen wird. Dort trage ich alle LISP ein, die geladen werden sollen. Ein Eintrag lauten: (princ (load "laden_layer" "\ladenlayer.LSP-Datei nicht geladen.")) Das "laden_layer.lsp" sieht so aus: (defun c:laden_layer (/ wahl) (setq wahl (getfiled "Layer-Anwendung wählen" "J:/acad_support/Layer_Verwaltung/" "" 8)) (load wahl) ) Im Ordner Layer_Verwaltung sind nun lauter LISPs, die mir verschiende Layer anlegen. Für das ProjektXY gibt es eine LayerXY.lsp, die so aussehen könnte: (command "layer" "M" "Layer1" "farbe" "weiß" "" "") (command "layer" "M" "LayerA" "farbe" "weiß" "" "") (command "layer" "M" "Punkt" "farbe" "weiß" "" "") (...) Außerdem habe ich mir noch einen neuen Button angelegt: ^C^Claden_layer Es geht auch ohne zusätzlichen Button: Einfach "laden_layer" in der Befehlszeile eingeben. Wenn ich nun auf den Button klicke bzw. den Befehl "laden_layer" eingebe, öffnet sich ein Fenster und ich kann den passenden Layersatz auswählen. Es gibt natürlich noch weitere Möglichkeiten soetwas zu regeln. ------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 18. Okt. 2003 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo CAD-Tötti, Zitat: Wie gestallte ich eine Überprüfung, die a) prüft ob der Layer in der zeichnung existiert b) den Layer ggf. nach den Maßgaben aus einer Datei z.B. "Layer.dat" anlegt c) die Layer generell beim Start von AutoCAD aus dieser Datei lädt
zu a) (setq LayName "Testlayer") (if (tblobjectname "LAYER" LayName) (princ "\nLayer vorhanden") (alert (strcat LayName " fehlt!")) ) zu b) das kann man verschieden lösen, hängt im wesentlichen vom Dateiaufbau ab. zu c) ich gestalte mir meist eine Menüdatei, und schreibe die Dinge, die sofort geladen werden sollen in die zugehörige MNL-Datei. Das hängt aber auch von b) ab. Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ManfredMann Mitglied CAD Konstrukteur
Beiträge: 216 Registriert: 27.04.2001 Autocad 2021 / Win10- 64 bit
|
erstellt am: 22. Okt. 2003 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo! Zitat: Original erstellt von CAD-Tötti: Hallo Manfred, wenn man es so machen würde (man kann ja mal über eine zweite Variante nachdenken :-)), wie würde das denn gehen ?CAD-Tötti
Entschuldige, für die verspätete Reaktion, ich war in Urlaub. Wenn Du noch Interesse für "meine" Lösung hättest, dann hier die Schritten, die dies erledigen: 1.)- Nachprüfen, ob das "DIM" -Layer existiert, wenn nicht eventuell erstellen. 2.)- Alle Objekte, die Bemaßung sind und auf einem anderen Layer als "DIM" sitzen, in einem Auswahlsatz mit (ssget [Filtermodus]) abfragen. 3.) Dieser Objekte ihre Layerzugehörigkeit mit (entmod) auf "DIM" ändern. Meld Dich wenn ich Dir noch helfen könnte! Gruß, Manfred [Diese Nachricht wurde von ManfredMann am 22. Oktober 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Zitat: Original erstellt von Brischke: Hi, jetzt will ich mich auch einmal einmischendie folgenden paar Zeilen sind für die Implementierung eines Reaktors vollkommen ausreichend- es sind auch alle Befehle, die mit DIM beginnen 'erschlagen'. Code:
(defun pre_lay (reatyp befname / );Wenn Bem gestartet wird (cond ((wcmatch (car befname) "DIM*") (setq *oldlay* (getvar "CLAYER")) (setvar "CLAYER" "0") ) ) ) (defun after_lay (reatyp befname / );Wenn Bem beendet wird (cond ((and (wcmatch (car befname) "DIM*") *oldlay* ) (setvar "CLAYER" *oldlay*) (setq *oldlay* nil) ) ) ) (defun reaload ();Initialisierung des Reactors (if (not *DEFUN_DIMLAYER*) (progn (setq *DEFUN_DIMLAYER* (VLR-Command-Reactor "*DEFUN_DIMLAYER*" '((:vlr-commandEnded . after_lay) (:vlr-commandwillstart . pre_lay) ) ) ) (princ "\nLayerschalter Bemassung aktiviert") ) ) ) (reaload)
Bei Fragen ... Grüße Holger
Hallo, ich habe zu diesem Code noch Fragen. 1. Auf Acad2004-dt. funzt er wunderbar, aber auf 2002-engl. bekomme ich beim Laden eine Fehlermeldun string nil. 2. Kann man auch einen Befehlsabbruch abfangen? ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 27. Okt. 2004 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo Hans-Peter, erste Vermutung zu 1) Schreibe mal ganz oben zum Code noch ein (vl-load-com) dazu. Vielleicht war es das schon. 2) Befehlsabbruch abfangen - Was meinst du damit genau? Jeden X-beliebigen Befehl, oder bestimmte? Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 09:47 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Zitat: Original erstellt von Brischke: Hallo Hans-Peter,erste Vermutung zu 1) Schreibe mal ganz oben zum Code noch ein (vl-load-com) dazu. Vielleicht war es das schon. 2) Befehlsabbruch abfangen - Was meinst du damit genau? Jeden X-beliebigen Befehl, oder bestimmte? Grüße Holger
zu 2) einen DIM-Befehl, welche bei Start und Ende behandelt werden. ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 27. Okt. 2004 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
ich vermute eher , dass das reaktor lisp auf abruch mit ESC nicht reagiert, da der :vlr-commandEnded aber nicht der :vlr-commandCancelled eingebaut ist. d.h. beim abbruch mit ESC wird der originale Layer nicht wieder zurückgestellt. (defun reaload ();Initialisierung des Reactors (if (not *DEFUN_DIMLAYER*) (progn (setq *DEFUN_DIMLAYER* (VLR-Command-Reactor "*DEFUN_DIMLAYER*" '((:vlr-commandEnded . after_lay) (:vlrcommandCancelled . after_lay) (:vlr-commandwillstart . pre_lay) ) ) ) (princ "\nLayerschalter Bemassung aktiviert") ) ) )
------------------ WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Zitat: Original erstellt von Brischke: Hallo Hans-Peter,erste Vermutung zu 1) Schreibe mal ganz oben zum Code noch ein (vl-load-com) dazu. Vielleicht war es das schon. 2) Befehlsabbruch abfangen - Was meinst du damit genau? Jeden X-beliebigen Befehl, oder bestimmte? Grüße Holger
Hallo, zu 1) das war OK. ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Zitat: Original erstellt von fuchsi: ich vermute eher , dass das reaktor lisp auf abruch mit ESC nicht reagiert, da der :vlr-commandEnded aber nicht der :vlr-commandCancelled eingebaut ist. d.h. beim abbruch mit ESC wird der originale Layer nicht wieder zurückgestellt.(defun reaload ();Initialisierung des Reactors (if (not *DEFUN_DIMLAYER*) (progn (setq *DEFUN_DIMLAYER* (VLR-Command-Reactor "*DEFUN_DIMLAYER*" '((:vlr-commandEnded . after_lay) (:vlrcommandCancelled . after_lay) (:vlr-commandwillstart . pre_lay) ) ) ) (princ "\nLayerschalter Bemassung aktiviert") ) ) )
Hallo, das hab ich auch schon probiert, funzt leider nicht. Eben wie Du schon vermutet hast. ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 27. Okt. 2004 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
also ich habs auch ausprobiert , und bei mir funktioniert es. aber ich vermute , du bist in der gleichen Zeichnung geblieben. und da vor dem reaktordefniieren mit (if (not *DEFUN_DIMLAYER*) abgefargt wurde , obs den reaktor schon gibt, wurde natürlich der reaktor nicht neu defniert. beende mal acad und starte es neu. und noch was , (defun pre_lay (reatyp befname / );Wenn Bem gestartet wird (cond ((wcmatch (car befname) "DIM*,BEM*") (setq *oldlay* (getvar "CLAYER")) (setvar "CLAYER" "DIM") ) ) ) in die funktion vor dem bem-befehl, sollte man nicht nur DIM* sonder auch auf BEM* abprüfen. manche user wechseln ganz gerne mit BEM in den Bemassungsmodus, und arbeiten hier mit AUS,HOR,VER usw. da dürfte der befehlsnamen weitergabe nicht auf englisch übersetzte worden sein. ------------------ WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Ja stimmt, es funktioniert. Jetzt hab ich aber ein anderes Problem. Wenn ich nun eine neue Zeichnung öffne bekomme ich eine Fehlermeldung und ich weis nicht warum. Es dürfte mit der Acad.lsp zusammenhängen, denn dort lade ich schon einige Sachen. Kann das sein? Wann soll der Reaktor denn geladen werden? Kann ich das in die Acad.lsp schreiben? ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister [Diese Nachricht wurde von SHP am 27. Okt. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 27. Okt. 2004 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo Hans-Peter, was soll ich dazu sagen .. ist zu allgemein von dir beschrieben. Ich würde an deiner Stelle jetzt nach dem Ausschluß-Prinzip vorgehen, und eine Routine nach der anderen in der acad.lsp auskommentieren, bis man eben die gefunden hat, die den Fehler verursacht. Dann kann man auf Ursache3nforschung gehen. Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 12:44 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 27. Okt. 2004 13:23 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
also seh ich das richtig, du hast jetzt den gesamten code (also insgesamt die 3 defun´s) in einer datei reactor.lsp abgespeichert, und lädst diese in der acad.lsp ?? kann nicht ganz sein, dann dürftest du in einer neuen zeichnung überhaupt keinen fehler erhaten (aber auch der reaktor dürfte nicht funktionieren) , da die acad.lsp NUR einmal (beim starten von acad) geladen wird. um lisp programme in allen Ziechnungen zu haben. verwendet man die AcadDoc.lsp, die wird auch bei neuen Ziechnungen geladen. da du in neuen zeichnungen fehler erhälst, deutet es mir so, als wenn der reaktor aktiv ist, und die funktionen pre_lay und after_lay starten will, diese aber nicht geladen sind. hast du die 3 (defun ......) in verschiedenen dateien geladen ??? (defun pre_lay (reatyp befname / );Wenn Bem gestartet wird ..... ) (defun after_lay (reatyp befname / );Wenn Bem beendet wird ..... ) (defun reaload ();Initialisierung des Reactors ..... ) (reaload)
------------------ WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 27. Okt. 2004 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 27. Okt. 2004 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 28. Okt. 2004 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Zitat: Original erstellt von mapcar: Warum macht ihr euch eigentlich so eine Arbeit? Steht alles fix und fertig seit Jahren hier: http://activex.autolisp.info/layreactor.html Der schaltet nicht nur auf den DIM-Layer, sondern (indem er vorher DIMSCALE ausliest) auf verschiedene maßstabsabhängige DIM-Layer. Alles komplett fix und fertig, und auch noch leicht erweiterbar. Aber: wie bei allen reaktorhaltigen AutoCAD-Programmen ist auch hier mit Instabilitäten zu rechnen. Ich übernehme keine Garantie! Gruß, Axel Strube-Zettler
Hallo, habe den gesamten Code in der Datei ActiveX-Utils.lsp gespeichert und geladen. Bekomme aber folgende Fehlermeldung. * Acad2002 * Single-drawing * Acad.lsp wird jedesmal geladen Command: _appload ActiveX-Utils.lsp successfully loaded.
Command: _dimlinear ; error: An error has occurred inside the *error* functionbad argument type: stringp nil
------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 28. Okt. 2004 19:59 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo Hans-Peter, warum der Fehler bei dir innerhalb von *error* auftritt, weiss ich nicht - in meinem Programm ist doch gar kein Errorhandling drin... Aber natürlich waren zwei Fehler drin, die habe ich beseitigt (an zwei stellen stimmte die Parameterübergabe nicht). Außerdem habe ich die beiden ersten Funktionen rausgekürzt, die waren völlig überflüssig. Auf meinen Seiten ist der Fehler schon behoben. Gruß, Axel Strube-Zettler Code:
; Funktion zum Setzen des Reaktors (defun add-cmd-reactors( / ) (vl-load-com) (vlr-command-reactor nil '( (:vlr-commandWillStart . cmd-start-callback)) ) (vlr-command-reactor nil '( (:vlr-commandEnded . cmd-end-callback)) ) ); Funktion zum Setzen der Reaktoren (defun add-cmd-reactors( / ) (vl-load-com) (if(not *cmd-reactor-added*) (progn (vlr-command-reactor nil '( (:vlr-commandWillStart . cmd-start-callback)) ) (vlr-command-reactor nil '( (:vlr-commandEnded . cmd-end-callback)) ) (setq *cmd-reactor-added* 'T) ) ) ) ; allgemeine Cmd-Callback-Funktion ; (vor der Befehlsausführung) (defun cmd-start-callback(reactor argslist / ) (cond ( (member(car argslist)'("DIMLINEAR""DIMALIGNED" "DIMRADIUS""DIMANGULAR" "DIMBASELINE""DIMDIAMETER" "DIMCONTINUE""QLEADER")) (dim-start-callback reactor argslist) ) ( (=(car argslist)"BHATCH") (bhatch-start-callback reactor argslist) ) ) ) ; allgemeine Cmd-Callback-Funktion ; (nach der Befehlsausführung) (defun cmd-end-callback(reactor argslist / ) (cond ( (member(car argslist)'("DIMLINEAR""DIMALIGNED" "DIMRADIUS""DIMANGULAR" "DIMBASELINE""DIMDIAMETER" "DIMCONTINUE""QLEADER")) (dim-end-callback) ) ( (=(car argslist)"BHATCH") (bhatch-end-callback) ) ) ) ; Macht einen Layer aktuell (defun set-layer(name / ) (vla-put-ActiveLayer (current-document) (vla-item(document-layers)name) ) ) ; gibt das Vla-Object zu einem ; Layernamen zurück (defun layer-object(name / result) (vlax-for layer(document-layers) (if (=(strcase name) (strcase(vla-get-name layer)) ) (setq result layer) ) ) result ) ; Erzeugt einen neuen Layer (defun create-layer(name props / newlayer) (setq newlayer (vla-add (document-layers) name) ) (foreach prop props (vlax-put-property newlayer (car prop)(cdr prop) ) ) newlayer ) ; Ermittelt den aktuellen Layer (defun get-current-layer( / ) (vla-get-activelayer (current-document) ) ) ; Gibt die Layer-Collection zurück (defun document-layers( / ) (vla-get-layers (current-document) ) ) ; gibt die aktuelle Zeichnung zurück (defun current-document( / ) (vla-get-activedocument (vlax-get-acad-object) ) ) ; Vorher-Callback für Schraffuren (defun bhatch-start-callback( / layer) (setq layer "S_Schraffuren") (if(not(layer-object layer)) (create-layer layer '((Color . 140))) ) (setq *previous-layer*(get-current-layer)) (set-layer layer) ) ; Nachher-Callback für Schraffuren (defun bhatch-end-callback( / ) (if *previous-layer* (progn (vla-put-activelayer (current-document) *previous-layer* ) (setq *previous-layer* nil) ) ) ) ; Vorher-Callback für Bemassungen (defun dim-start-callback(reactor argslist / scale str layer) (setq scale(getvar"dimscale")) (setq str (cond ( (>= scale 10.0 ) "1~10") ( (>= scale 5.0 ) "1~5") ( (>= scale 4.0 ) "1~4") ( (>= scale 3.0 ) "1~3") ( (>= scale 2.0 ) "1~2") ( (>= scale 1.0 ) "1~1") ( (>= scale 0.5 ) "2~1") ( (>= scale 0.33) "3~1") ( (>= scale 0.25) "4~1") ( (>= scale 0.20) "5~1") ( (>= scale 0.10) "10~1") ( 1 "1~XX") ) ) (setq layer(strcat "Bem_" str)) (if(not(layer-object layer)) (create-layer layer '((Color . 11))) ) (setq *previous-layer*(get-current-layer)) (set-layer layer) ) ; Nachher-Callback für Bemassungen (defun dim-end-callback( / ) (if *previous-layer* (progn (vla-put-activelayer (current-document) *previous-layer* ) (setq *previous-layer* nil) ) ) ) ; Sicherstellen, dass die ActiveX- ; Funktionen geladen sind (vl-load-com) ; Reaktoren beim Laden starten (add-cmd-reactors)
------------------ (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 28. Okt. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 28. Okt. 2004 20:58 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo, ich kann machen was ich will, es funzt einfach nicht. Habe den obigen Code, die original Acad2000.lsp und Acad2002doc.lsp verwendet und trotzdem kommt ein error. Das Laden funzt, auch das Bemaßen. Nur wenn ich eine neue Zeichnung öffne kommt der Fehler. Command: _appload ActiveX-Utils.lsp successfully loaded. Command: _dimlinear Specify first extension line origin or <select object>: Specify second extension line origin: Specify dimension line location or [Mtext/Text/Angle/Horizontal/Vertical/Rotated]: Dimension text = 13.4
Command: _new Regenerating model. Command: ; error: no function definition: CMD-END-CALLBACK AutoCAD menu utilities loaded. AIGNER Menü-Dienstprogramme......geladen. ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister [Diese Nachricht wurde von SHP am 28. Okt. 2004 editiert.] [Diese Nachricht wurde von SHP am 28. Okt. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 29. Okt. 2004 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 29. Okt. 2004 12:40 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001
|
erstellt am: 29. Okt. 2004 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3543 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 29. Okt. 2004 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 29. Okt. 2004 13:11 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Na, das ging doch flott... Also - ich kann den Fehler unter folgenden Umständen reproduzieren: SDI = 1 LISPINIT = 1 Wenn ich dann eine neue Zeichnung aufmache, wird trotz LISPINIT=1 der Reaktor selber übernommen, aber die Callbacks fehlen. Ruft man dann irgendeinen Befehl auf, kommt der Fehler, bei mir allerdings zuerst CMD-START-CALLBACK nicht gefunden. Ich sehe die Logik darin nicht so ganz. Bei LISPINIT=1 sollten eigentlich weder Reaktor noch die Funktionen übernommen werden. Tatsächlich verhält sich der Reaktor aber, als sei er persistent - ist er aber doch gar nicht. Sieht für mich wie ein Bug aus. Setze ich LISPINIT auf 0 (immer noch SDI=1), dann wird auch der Code übernommen, alles funktioniert. Und bei SDI=0 geht's sowieso. Das Problem sollte sich aber über ACADLSPASDOC und einen load-Eintrag in der entspr. LSP lösen lassen. Man muss also nur dafür sorgen, dass der Code geladen wird, bevor der erste AutoCAD-Befehl ausgeführt wird. Ganz exakt kann ich den Fehler aber auch nicht reproduzieren, bei mir sucht er immer zuerst nach dem Start-Callback. Ich vermute, dass es bei dir am _NEW-Befehl selber liegt. Die Start-Callback-Funktion wird noch in der alten Zeichnung ausgeführt, das CommandHasEnded aber offensichtlich schon in der neuen - deswegen mault er nur die END-Funktion an. Da scheint es Unterschiede zwischen 2000 und 2002 zu geben. Tja, mehr als spekulieren kann ich jetzt ohne 2000er nicht. 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 |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 29. Okt. 2004 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Hallo, habs jetzt in Acad2004 versucht. * Single drawing * Acad.lsp jedesmal laden Fehlermeldung wie in 2002. Command: _appload ActiveX-Utils.lsp successfully loaded. Command: _dimlinear Specify first extension line origin or <select object>: Specify second extension line origin: Non-associative dimension created. Specify dimension line location or [Mtext/Text/Angle/Horizontal/Vertical/Rotated]: Dimension text = 151.74 Command: _qnew Regenerating model. Command: ; error: no function definition: CMD-END-CALLBACK AutoCAD menu utilities loaded. ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik.
Das Saxregister [Diese Nachricht wurde von SHP am 29. Okt. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 29. Okt. 2004 18:53 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Tja, jetzt hab ich's unter 2004 genauso wie du, und es nützt auch nix, das Programm in die acad.lsp einzubinden. Ich schließe daraus kurz und bündig: Wenn man mit den Einstellungen SDI=1 und LISPINIT=1 arbeitet, ist das Verwenden eines Editor-Reaktors mit dem CommandEnded-Event ohne Auftreten dieses Fehlers nicht möglich. Die Gründe dafür habe ich ja schon genannt: Warum wird der Reaktor in die neue Zeichnung übernommen, als sei er persistent? Ich addiere das einfach zur Liste aller der Dinge, die in VLisp nicht richtig ticken, und drüber aufregen will ich mich auch nicht. Geändert oder korrigiert wird in Lisp sowieso nichts mehr. Tja, wenn du auf diese Einstellungen angewiesen bist, ist wohl nix 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 |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 Win2k IV7-SP1 IV8 IV9
|
erstellt am: 30. Okt. 2004 10:27 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
Danke für Eure Bemühungen. Das heist im Klartext: 1) MDI auf 0 setzen 2) Lispinit auf 1 setzen 3) in der Acad.lsp die Reaktoren laden So funzt es auch. Noch eine Frage. Bei Lispinit = 0 wird die Acad.lsp nur einmal geladen, die Acaddoc.lsp aber bei jeder neuen dwg. Sehe ich das richtig so.
------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 30. Okt. 2004 20:48 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
> Das heist im Klartext: > 1) MDI auf 0 setzen > 2) Lispinit auf 1 setzen NEIN. Im Klartext heisst es immer noch: Jede andere Kombination als SDI=1 und LISPINIT=1 funktioniert, und das egal, wie du das Programm lädst. > Bei Lispinit = 0 wird die Acad.lsp nur einmal geladen, die > Acaddoc.lsp aber bei jeder neuen dwg. > Sehe ich das richtig so. Auch NEIN. Dafür ist ACADLSPASDOC zuständig. LISPINIT steuert, ob das Lisp-Memory-Image in die neue Zeichnung übernommen wird, wenn SDI=1. Wenn SDI=0, hat LISPINIT keine Wirkung. 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 30. Okt. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur für Dampfturbinen (m/w/d) | Mit unserer langjährigen Rekrutierungserfahrung und unseren Kenntnissen des Engineering-Personalmarktes bieten wir Fach- und Führungskräften aus dem Ingenieurwesen und dem technischen Umfeld eine starke Partnerschaft. Denn durch unsere intensiven Beziehungen und Netzwerke über alle Industriebranchen hinweg vermitteln wir Ihnen als Engineering-Fachleuten spannende Projekte und attraktive Positionen.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
stolti Mitglied technischer zeichner
Beiträge: 373 Registriert: 05.09.2007 auto_cad 2008 athena 2008 DELL Precision PWS390 Intel Core2 CPU 6600 2gb RAM 2.40 GHz
|
erstellt am: 27. Mrz. 2009 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für CAD-Tötti
hallo. mal noch ne zusätzliche frage: ich hatte das thema schon im autocad forum. ich hab ne höhenkote - die ich trotz acad 2008 nicht annotativ machen kann... nun hab ich den block nicht annotativ gemacht und eine skalierungsaktion zugewiesen. und pro maßstab einen layer angelegt. kote-1 kote-2 kote-5 ... jetzt möchte ich irgendwie einstellen: wenn ich in nem AF maßstab 1:1 habe, alle andern (quasi die kotenlayer) gefroren werden. dementsprechend das ganze bei den standardmaßstäben 1:2 (alle außer kote-2 frieren)... das müsste theoretisch gehen. oder? danke stolti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |