Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Layer umschalten bei der Bemassung

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:  Layer umschalten bei der Bemassung (9392 mal gelesen)
CAD-Tötti
Mitglied



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 04. Okt. 2003 20:09    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

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



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

Beiträge: 2996
Registriert: 14.10.2002

ATD 2 bis 2007

erstellt am: 05. Okt. 2003 11:50    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 216
Registriert: 27.04.2001

Autocad 2021 / Win10- 64 bit

erstellt am: 09. Okt. 2003 14:22    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 09. Okt. 2003 15:37    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

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



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 09. Okt. 2003 18: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 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

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 09. Okt. 2003 20:37    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 10. Okt. 2003 11:16    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

tmoehlenhoff
Ehrenmitglied V.I.P. h.c.
Gutzum, CAD-Therapeut und BIM-Priester ;-)



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

Beiträge: 2996
Registriert: 14.10.2002

ATD 2 bis 2007

erstellt am: 13. Okt. 2003 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 CAD-Tötti 10 Unities + Antwort hilfreich

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




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 13. Okt. 2003 10:34    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



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

Beiträge: 2996
Registriert: 14.10.2002

ATD 2 bis 2007

erstellt am: 13. Okt. 2003 12:42    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 CAD-Tötti 10 Unities + Antwort hilfreich

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




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 13. Okt. 2003 12: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 CAD-Tötti 10 Unities + Antwort hilfreich

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




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 13. Okt. 2003 13:28    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 13. Okt. 2003 22:26    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 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



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 13. Okt. 2003 22:30    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

By the way: wie war es in STUGGET :-) ???

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 13. Okt. 2003 22:57    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



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

Beiträge: 2996
Registriert: 14.10.2002

ATD 2 bis 2007

erstellt am: 14. Okt. 2003 08: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 Nur für CAD-Tötti 10 Unities + Antwort hilfreich

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




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 14. Okt. 2003 08:36    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 CAD-Tötti 10 Unities + Antwort hilfreich

@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



Sehen Sie sich das Profil von CAD-Tötti an!   Senden Sie eine Private Message an CAD-Tötti  Schreiben Sie einen Gästebucheintrag für CAD-Tötti

Beiträge: 116
Registriert: 27.09.2003

ACAD 2009

erstellt am: 18. Okt. 2003 09:35    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

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



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

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 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 CAD-Tötti 10 Unities + Antwort hilfreich

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




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 18. Okt. 2003 16: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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 216
Registriert: 27.04.2001

Autocad 2021 / Win10- 64 bit

erstellt am: 22. Okt. 2003 16:58    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 08:59    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 CAD-Tötti 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Brischke:
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


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




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 27. Okt. 2004 09: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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 09:47    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 27. Okt. 2004 10:33    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 10:40    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 10:41    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 27. Okt. 2004 11:16    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 12:07    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 CAD-Tötti 10 Unities + Antwort hilfreich

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




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 27. Okt. 2004 12:28    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 12:44    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 CAD-Tötti 10 Unities + Antwort hilfreich

Hallo,
ich hab jetzt in die Acad.lsp (load "reactoren") eingefügt.
Hab den Code eben so benannt.
Wenn ich jetzt acad öffne funzt es, mach ich jedoch eine neue Zeichnung auf, bekomme ich folgende Meldung: no function after_lay.

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


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 27. Okt. 2004 13:23    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 27. Okt. 2004 15:25    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 CAD-Tötti 10 Unities + Antwort hilfreich

Hallo,

1) Ich laden Acad.lsp jedesmal
2) Ich habe alle 3 Defun in einer Datei "Reactor.lsp"
3) Ich arbeite im Single (d.h. immer nur eine Zeichnung aktiv)

Irgendwo hier liegt der Fehler.

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



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: 27. Okt. 2004 18: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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 28. Okt. 2004 11:56    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



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: 28. Okt. 2004 19:59    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 28. Okt. 2004 20:58    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 CAD-Tötti 10 Unities + Antwort hilfreich


acad2000.lsp.txt


acad2000doc.lsp.txt

 
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



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: 29. Okt. 2004 12: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 CAD-Tötti 10 Unities + Antwort hilfreich

Hans-Peter,

es hat eine Weile gedauert, bis ich deinen Fehler nachvollziehen konnte. Ich kann ihn reproduzieren, wenn ich SDI auf 1 setze. Ich habe aber derzeit keine 2000er Version, und ich weiss auch gar nicht mehr, wann SDI und LISPINIT überhaupt eingeführt wurden. Kann es sein, dass 2000 noch nicht MDI-fähig war?

Da müsste jetzt mal jemand helfend einspringen, der eine 2000er Version hat.

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

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: 29. Okt. 2004 12:40    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 CAD-Tötti 10 Unities + Antwort hilfreich

Also ACAD2000 war/ist MDI-Fähig!

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3543
Registriert: 21.06.2001

erstellt am: 29. Okt. 2004 12:41    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 CAD-Tötti 10 Unities + Antwort hilfreich

2000 ist MDI-fähig.

Gruß, Torsten

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

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 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 CAD-Tötti 10 Unities + Antwort hilfreich

LISPINIT gibt's auch.

Gruß, Torsten

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: 29. Okt. 2004 13: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 Nur für CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 29. Okt. 2004 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 CAD-Tötti 10 Unities + Antwort hilfreich

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



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: 29. Okt. 2004 18:53    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 CAD-Tötti 10 Unities + Antwort hilfreich

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


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

Beiträge: 1331
Registriert: 17.07.2003

Win2k
IV7-SP1
IV8
IV9

erstellt am: 30. Okt. 2004 10:27    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 CAD-Tötti 10 Unities + Antwort hilfreich

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



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: 30. Okt. 2004 20:48    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 CAD-Tötti 10 Unities + Antwort hilfreich

> 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

stolti
Mitglied
technischer zeichner


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

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 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 CAD-Tötti 10 Unities + Antwort hilfreich

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

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