Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  LISP Hilfslinien erstellen (K_Linien) funzt nicht richtig

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:  LISP Hilfslinien erstellen (K_Linien) funzt nicht richtig (885 mal gelesen)
Macherto
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 20
Registriert: 10.09.2003

MS Windows XP
AutoCAD 2004 (Englische Version)

erstellt am: 11. Dez. 2008 09: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


acaddoc.txt


K_Linien.txt

 
Hallo,

ich habe mir vor ein paar Tagen ein paar nützliche LISP Programm, die ich hier aus dem Forum habe, auf meinem CAD Arbeitsplatz (AutoCAD 2004) eingerichtet. Die funktionieren auch alle sehr gut muss ich sagen.
Das Programm für die Hilfsliniengenerierung läuft allerdings noch nicht und ich habe als Neuling keine Ahnung, woran es liegen kann!
Hier mal meine Vorgehensweise:
Befehl: „hh“ (Erzeugung einer horizontalen Hilfslinie)
AutoCAD Meldung:
„Command: hh
_undo Enter the number of operations to undo or
[Auto/Control/BEgin/End/Mark/Back] <1>: _m“

Bei den anderen Möglichkeiten eine Hilfslinie zu generieren erhalte ich die gleiche Meldung. Lediglich die Funktion „Hilfslinie durch zwei Punke“ (Befehl „hj“  funktioniert.

Zum besseren Verständnis hänge ich die „acaddoc.lsp“ mit der das LISP geladen wird und das eigentliche LISP programm an.

Weiss jemand den Fehler?

Danke für die Hilfe.

Macherto

[Diese Nachricht wurde von Macherto am 11. Dez. 2008 editiert.]

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 11. Dez. 2008 09: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 Macherto 10 Unities + Antwort hilfreich

nimm aus allen Funktionen die Zeile
(command "_undo" "_m")
raus  oder bau dir die Funktionen so um:

(defun c:hh() ;erzeugt eine horizontale Hilfslinie im gewählten Punkt
  (command "_undo" "_e")
  (command "_undo" "_m")
  (setq altlay (getvar "CLAYER"))
  (setq pt (getpoint "\nPunkt für horizontsle Hilfslinie:"))
  (command "_layer" "_m" "hilfslin_018" "_p" "k" "hilfslin_018"
"_c" "Magenta" "hilfslin_018" "_lw" "0" "hilfslin_018" "")
  (command "_xline" "_h" pt "")
  (setvar "CLAYER" altlay)
  (princ)
  (command "_undo" "_e")
)


oder nutz ne Lispvariante, die mittels Reaktor beim Befehl _xline auf den entsprechenden Layer und anschließend wieder zurück schaltet.

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

Macherto
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 20
Registriert: 10.09.2003

MS Windows XP
AutoCAD 2004 (Englische Version)

erstellt am: 11. Dez. 2008 10:00    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

Ohne
(command "_undo" "_m")
funktioniert auch nicht. Erhalte die Meldung:

Command: hh
nPunkt für horizontale Hilfslinie:_layer
Current layer:  "hilfslin_018"
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
_m
Enter name for new layer (becomes the current layer) <hilfslin_018>:
hilfslin_018 Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
_p
Enter a plotting preference [Plot/No plot] <Plot>: k
Invalid option keyword.
; error: Function cancelled

Enter a plotting preference [Plot/No plot] <Plot>: *Cancel*
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
*Cancel*


Und so umgebaut, wie du es beschrieben hattest, bleibt das Programm stehen:
Command: hh
_undo Enter the number of operations to undo or
[Auto/Control/BEgin/End/Mark/Back] <1>: _e
Command: _undo Enter the number of operations to undo or
[Auto/Control/BEgin/End/Mark/Back] <1>: _m
Command: *Cancel*

Mal ne doofe Frage! Was soll denn "command undo _m" und "command undo _e" genau bewirken? 

Wie sähe den die Lisp Variante mit dem Reaktor aus?

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 11. Dez. 2008 10: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 Macherto 10 Unities + Antwort hilfreich

aha .. du hast ne englische ACAD-Version .. die Versionsnummer wäre auch noch interessant .. dafür gibts die  - bei dir nicht ausgefüllte - Systeminfo.


Bei dir tritt der Fehler beim Layererzeugen auf ... probier mal
defun c:hh()
  (command "_undo" "_e")
  (command "_undo" "_m")
  (setq altlay (getvar "CLAYER"))
  (setq pt (getpoint "\nPunkt für horizontsle Hilfslinie:"))
  (command "_layer" "_m" "hilfslin_018" "_p" "_n" "hilfslin_018"
"_c" "Magenta" "hilfslin_018" "_lw" "0" "hilfslin_018" "")
  (command "_xline" "_h" pt "")
  (setvar "CLAYER" altlay)
  (princ)
  (command "_undo" "_e")
)


Für die Reaktorlisp-variante fehlt dir (noch) die Basics, die du dir hier erlernen kannst.

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

Macherto
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 20
Registriert: 10.09.2003

MS Windows XP
AutoCAD 2004 (Englische Version)

erstellt am: 11. Dez. 2008 11: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

Alles klar. Jetzt funktioniert es wunderbar.
Hast aber Recht. ich hätte schreiben müssen, dass ich die englische Version habe. Dann gibt es wenigstens keine Missverständnisse. Mein Profil habe ich dementsprechend angepasst.

Die Basic Seite hatte ich auch schon gefunden, danke. Da werde ich mich zu Hause mal mit beschäftigen.

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

Macherto
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 20
Registriert: 10.09.2003

MS Windows XP
AutoCAD 2004 (Englische Version)

erstellt am: 11. Dez. 2008 12: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

Könntest du vielleicht noch mal schauen, ob hier Unterschiede zwischen englisch und deutsch sind. Das funktioniert noch nicht.

(defun c:hm() ;erzeugt eine Hilfslinie zwischen zwei gewählten Elementen
  (command "_undo" "_e")
  (command "_undo" "_m")
  (setq altlay (getvar "CLAYER"))
  (command "_layer" "_m" "hilfslin_018" "_p" "n" "hilfslin_018"
"_c" "Magenta" "hilfslin_018" "_lw" "0" "hilfslin_018" "")
  (setq en (nentselp))
  (setq p1 nil)
  (setq p1 (osnap (cadr en) "_end"))
  (setq en (nentselp))
  (setq p2 nil)
  (setq p2 (osnap (cadr en) "_end"))
  (setq win (angle p1 p2))
  (setq d (distance p1 p2))
  (setq dh (/ d 2))
  (setq mp (polar p1 (+ win (DTR 0)) dh))
  (command "_xline" "_v" mp "")
  (setvar "CLAYER" altlay)
  (princ)
  (command "_undo" "_e")

(defun c:ha() ;erzeugt eine Hilfslinie mit Abstand
  (command "_undo" "_e")
  (command "_undo" "_m")
  (setq altlay (getvar "CLAYER"))
  (command "_layer" "_m" "hilfslin_018" "_p" "n" "hilfslin_018"
"_c" "Magenta" "hilfslin_018" "_lw" "0" "hilfslin_018" "")
  (command "_xline" "a" pause pause pause pause "")
  (setvar "CLAYER" altlay)
  (princ)
  (command "_undo" "_e")
)

Macherto 

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 11. Dez. 2008 12: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 Macherto 10 Unities + Antwort hilfreich

(defun c:ha() ;erzeugt eine Hilfslinie mit Abstand
  (command "_undo" "_e")
  (command "_undo" "_m")
  (setq altlay (getvar "CLAYER"))
  (command "_layer" "_m" "hilfslin_018" "_p" "_n" "hilfslin_018"
"_c" "Magenta" "hilfslin_018" "_lw" "0" "hilfslin_018" "")
  (command "_xline" "a" pause pause pause pause "")
  (setvar "CLAYER" altlay)
  (princ)
  (command "_undo" "_e")
)


HA läuft so ....

HM fehlt die abschließende Klammer und die Funktion DTR .. aber die Routine ist so IMHO  sowieso Quatsch.

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

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