Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Reaktoren auf ATHENA-Befehl

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:  Reaktoren auf ATHENA-Befehl (1332 mal gelesen)
wisch
Mitglied



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

Beiträge: 78
Registriert: 22.05.2003

WIN 7 Prof. SP1
64Bit Intel i7 2,4GHz 8GB
PDSU 2013
Vault Prof. 2013

erstellt am: 25. Nov. 2009 16:39    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


reactor.lsp.txt

 
Ich habe von
mapcar
unter http://www.visuallisp-tutorial.mapcar.net/layreactor.html
eine lisp gefunden, die mir grundsätzlich ganz gut passen würde.
Es funktioniert auch super, solange ich Autocad-Befehle zum Ansprechen des Reaktors verwende.

Da ich ATHENA einsetze und ich einen Befehl von ATHENA ("ATH_HOKO") ebenfalls mit in die Liste aufnehmen will, hab ich einfach mal versucht diesen Befehl bei den ganzen DIM-Befehlen hinten anzureihen, aber es funktioniert nicht!

Funktionieren die Reaktoren nur für AutoCAD-Befehle oder was müsste ich noch tun??

Danke im voraus!

------------------
wisch

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 25. Nov. 2009 18:14    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 wisch 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von wisch:
Ich habe von
mapcar
unter http://www.visuallisp-tutorial.mapcar.net/layreactor.html
eine lisp gefunden, die mir grundsätzlich ganz gut passen würde.
Es funktioniert auch super, solange ich Autocad-Befehle zum Ansprechen des Reaktors verwende.

Da ich ATHENA einsetze und ich einen Befehl von ATHENA ("ATH_HOKO") ebenfalls mit in die Liste aufnehmen will, hab ich einfach mal versucht diesen Befehl bei den ganzen DIM-Befehlen hinten anzureihen, aber es funktioniert nicht!

Funktionieren die Reaktoren nur für AutoCAD-Befehle oder was müsste ich noch tun??

Danke im voraus!


Probier mal VL-ACAD-DEFUN, eventuell greifen die Reaktoren dann auch zu (hab's nicht ausprobiert). Ansonsten brauchst Du doch gar keine Reaktoren, weil Du doch den Befehl einfach mit
(defun MY-ATH_HOKO ()
  (c:ATH_HOKO)
  (do-the-reactor-stuff)
)
so umdefinieren kannst, dass die gewünschte Funktionalität greift.

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

wisch
Mitglied



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

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 26. Nov. 2009 07: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 hab vielleicht vergessen zu erwähnen, dass meine LISP-Kenntnisse sehr dürftig sind!
Wo müsste man denn diese Erweiterungen einbauen?

------------------
wisch

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 26. Nov. 2009 09:05    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 wisch 10 Unities + Antwort hilfreich

Hi,

mit "dürftigen" Lisp-Kenntnissen an Reaktoren rumzuspielen halte ich für ziemlich ... übermütig? 
Aber vielleicht haben wir unterschiedliche Definitionen von "dürftig".

Der Reaktor setzt den entsprechenden Layer für das erzeugte Objekt. Eine der ureigensten Funktionen von Applikationen im Allgemeinen. Macht Athena das denn nicht von sich aus?
Außerdem solltest du als erstes beim Support mal anfragen, ob man die App-Befehle so überhaupt abfangen kann, oder ob die App nicht einen Riegel in irgendeiner Form vorgeschoben hat.


Gruß
CADchup

------------------
CADmaro.de

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

wisch
Mitglied



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

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 26. Nov. 2009 09:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Athena hat da schon eine Funktionalität, wo ich Bemaßungen grundsätzlich einen bestimmten Layer zuweisen kann, jedoch nicht in Abhängigkeit des eingestellten Bemaßungsstils/Maßstabs (zumindest nicht im Modell-Bereich).
Daher würde ich gerne - für Bemaßungen funktioniert es ja mit obiger lisp ausgezeichnet - diese Funktion auch für die Höhenkoten erweitern. Da dachte ich mir, es müsste doch möglich sein die lisp so zu erweitern, dass der Reaktor auch bei den Athena-Befehlen anspricht. Aber dem ist nicht so und das ist mein Problem.
Es käme dann ohnehin noch die Herausforderung dazu, dass ich bei Bemaßungen andere Layer setzen möchte als bei den Höhenkoten, aber soweit bin ich noch gar nicht!

Also ich habe aufgrund meiner nun schon längeren Recherche in vielen Forumseinträgen zumindest das Gefühl bekommen, dass man mit Reaktoren vorsichtig sein muss. Aber ist mein Vorhaben schon so riskant?

------------------
wisch

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 26. Nov. 2009 09:38    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 wisch 10 Unities + Antwort hilfreich

No risk no fun. 

Aber es kann ziemlich frustrierend sein, wenn man sich tagelang in ein Lisp-Problem verbeißt und am Ende stellt sich heraus, dass die zusätzliche Applikation grundsätzlich nicht mitspielen will oder lässt.

Also frag die App-Entwickler. Am besten mit Beispiel-Code. Wenn die das durchwinken und Athena bei Hökos keine Reaktoren, Eventhandler o.ä. anwirft um Layer, Skalierung, erweiterte Daten zu modifizieren, sollte es grundsätzlich laufen.


Gruß
CADchup

------------------
CADmaro.de

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

wisch
Mitglied



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

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 26. Nov. 2009 10: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

Nun gut, meine ursprüngliche Idee wäre ohnhin gewesen, dass ich mir einen eigenen Werkzeugkasten einrichte wo ich einen eigenen lisp-Befehl vor den Athena-Befehl setze.
Somit lass ich alles schön in Ruhe!
Dieser lisp-Befehl soll den aktuellen Bemaßungsstil abfragen und den dazugehörigen Layer aktuell setzen (Die Zuornung Bemstil zu Layer sollte in lisp od. eigener cfg erfolgen). Mehr bräuchte ich vorher gar nicht tun!
Nur wie gesagt - dazu fehlen mir die lisp-Kenntnisse und ich suche schon tagelang im Forum herum und finde leider nichts... 

Über Hilfe wäre ich sehr, sehr dankbar!

------------------
wisch

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: 26. Nov. 2009 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 wisch 10 Unities + Antwort hilfreich

du suchst schon Tage lang .... wow ... und nichts gefunden ??

na dann :

(setq DIMS(getvar "DIMSTYLE")) ;_Dimstlye auslesen
(cond
  ((= DIMS "STANDARD")(setvar "CLAYER" "0")) ;_Layer entsprechend aktuell setzen
  ((= DIMS "DIMS1")(setvar "CLAYER" "1"))
  ((= DIMS "DIMS2")(setvar "CLAYER" "3"))
)

namen ect. mußt du natürlich anpassen

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

Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 26. Nov. 2009 10: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 wisch 10 Unities + Antwort hilfreich

Reicht da nicht ne einfache cond-Schleife?

Also aktuellen Bemaßungsstilnamen ermitteln (DIMSTYLE),
den dann vergleichen mit cond, nach dem Schema ((wenn Name a)(command -layer "se" "layer a))

Vielleicht noch was mit reinbasteln, dass der aktuelle Layer (vorher) gemerkt wird und hinterher wieder eingestellt wird, nachdem die Höhenkoten drin sind.

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

Steff179
Mitglied
Geomatiker


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

Beiträge: 266
Registriert: 09.08.2007

AutoCAD 2014

erstellt am: 26. Nov. 2009 11: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 wisch 10 Unities + Antwort hilfreich

hallo wisch

wenn du (command -layer "se" "layer a) machst dann schau dir einfach mal die var "clayer" an wie sich die verändert  

"clayer" = der aktuelle layer

und CADmium macht genau das was du beschrieben hast sogar mit (cond)  
den namen des aktuellen bemassungsstiels abfragen und dann den layer entschprechend setzen.

gruss steff

[Diese Nachricht wurde von Steff179 am 26. Nov. 2009 editiert.]

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

wisch
Mitglied



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

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 26. Nov. 2009 16:24    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

Zitat:
Original erstellt von CADmium:
du suchst schon Tage lang .... wow ... und nichts gefunden ??

na dann :

(setq DIMS(getvar "DIMSTYLE")) ;_Dimstlye auslesen
(cond
  ((= DIMS "STANDARD")(setvar "CLAYER" "0")) ;_Layer entsprechend aktuell setzen
  ((= DIMS "DIMS1")(setvar "CLAYER" "1"))
  ((= DIMS "DIMS2")(setvar "CLAYER" "3"))
)

namen ect. mußt du natürlich anpassen


Vielen Dank, der Ansatz hat mir weitergeholfen!

------------------
wisch

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