Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Autocad 2010 - kleines lisp geht nicht mehr

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:  Autocad 2010 - kleines lisp geht nicht mehr (693 mal gelesen)
jonnymaier1
Mitglied



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

Beiträge: 12
Registriert: 11.05.2010

erstellt am: 30. Sep. 2010 15: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

Kann mir jemand verraten warum nachstehendes Lisp im Acad2008 ohne Probleme gelaufen ist und im Acad2010 nicht mehr funktionieren will.

(defun c:lay_1 ()
  (setq temp (ssget "I"))
  (if (= temp nil)
    (command "-layer" "se" "Layer_1" "")
    (progn
      (command "eigändr" temp "" "la" " Layer_1" "f" "vonlayer" "")
      )
    )
  )

Folgendes sollte das Lisp bewirken: falls kein Objekt ausgewählt ist wir nur der Layer 1 zum aktuelle Layer (dies funktionier noch einwandfrei) -  falls Objekte ausgewählt sind, sollen diese auf den Layer1 gelegt werden (dies funktionier eben nicht). Ich bekomme dann die Rückmeldung „Ungültiger Optionstitel | Geben Sie die zu ändernde Eigenschaft ein [Farbe/LAyer/LTYp/LTFaktor/LStärke/Objekthöhe/Material/Beschriftung]:“.

Hat vielleicht jemand eine Idee, was dem 2010 da nicht passen kann?

Danke

Jonny

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

runkelruebe
Ehrenmitglied V.I.P. h.c.
Straßen- / Tiefbau



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

Beiträge: 8075
Registriert: 09.03.2006

sw:
Win7-x64
Office 365 ProPlus
C3D (& LT )
ET; DACH; Extensions
-------------------
hw:
FX3800
i5 CPU 670
8GB RAM

erstellt am: 30. Sep. 2010 15: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 Nur für jonnymaier1 10 Unities + Antwort hilfreich

und das lief so vorher?
Änder mal die Zeile in
Code:
(command "eigändr" "la" " Layer_1" "f" "vonlayer" "")

Besser?

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

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

jonnymaier1
Mitglied



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

Beiträge: 12
Registriert: 11.05.2010

erstellt am: 30. Sep. 2010 17:04    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 runkelruebe:
und das lief so vorher?
Änder mal die Zeile in
Code:
(command "eigändr" "la" " Layer_1" "f" "vonlayer" "")

Besser?


1.Mit der ausgebesserten Zeile funktioniert es jetzt im Acad 2010 – Danke !!!

2.Im Acad 2008 aber nicht(!) da funktioniert es nur mit alten Zeile !

3.Wieso sich dies zwischen den Versionen geändert lohnt sich seit Office 2010 eh nicht mehr zu hinterfragen 

4.Verstehen tu ich das ganze trotzdem nicht  – vor allem warum darf ich beim 2010 nicht eine Variable als Objektauswahl einsetzen – könnte ja auch ein komplizierteres Lisp sein wo ich mal eine Variable brauche – oder ist meine Variable für 2010 ungeeignet?

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 30. Sep. 2010 17: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 jonnymaier1 10 Unities + Antwort hilfreich

Hallo Jonny,
da ist ein Leerzeichen zwischen dem Anführungszeichen und Layer_1.
Also " Layer_1" statt "Layer_1".
Ich glaub das soll da nicht hin.

------------------
Gruß
Andreas

http://kraus-cad.de

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

jonnymaier1
Mitglied



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

Beiträge: 12
Registriert: 11.05.2010

erstellt am: 30. Sep. 2010 17: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

Zitat:
Original erstellt von Andreas Kraus:
Hallo Jonny,
da ist ein Leerzeichen zwischen dem Anführungszeichen und Layer_1.
Also " Layer_1" statt "Layer_1".
Ich glaub das soll da nicht hin.


Danke für den Hinweis – das von mir gepostete Lisp hab ich nur schnell zusammengezimmert (ist eigentlich nur Teil eines Ganzen) und hab da ein Leerzeichen zu viel erwischt.
Das Problem war die Variable „temp“ im Autocad 2010.

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 01. Okt. 2010 09: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 jonnymaier1 10 Unities + Antwort hilfreich

Hallo Jonny,
du hast im ersten Beitrag was von „Ungültiger Optionstitel I " geschrieben. Das bezieht sich ja auf das (ssget "I"). Ich weis zwar nicht was es da zu meckern gibt aber schau mal nach Tippfehlern usw.

------------------
Gruß
Andreas

http://kraus-cad.de

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

jonnymaier1
Mitglied



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

Beiträge: 12
Registriert: 11.05.2010

erstellt am: 01. Okt. 2010 15:45    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 Andreas Kraus:
Hallo Jonny,
du hast im ersten Beitrag was von „Ungültiger Optionstitel I " geschrieben. Das bezieht sich ja auf das (ssget "I"). Ich weis zwar nicht was es da zu meckern gibt aber schau mal nach Tippfehlern usw.


Danke für den Hinweis mit den "Ungültiger Optionstitel" - es war nichts falsch geschrieben sondern mir ist folgendes aufgefallen:

Acad2010 merkt sich die Vorauswahl  - sprich hier brauche ich die Variable nicht mehr bzw. ist die Variableninformation schon eine Optionseingabe für den Befehl „eigändr“ – deshalb die Fehlermeldung "Ungültiger Optionstitel" – im Acad2008 war das anscheinend noch anders (oder es liegt vielleicht an einer Systemvariable?).
Ich hab jetzt einfach ein (command) eingefügt um die Vorauswahl aufzuheben und es funktioniert!

(defun c:lay_1 ()
  (setq temp (ssget "I"))
  (if (= temp nil)
    (command "-layer" "se" "Layer_1" "")
    (progn
    (command)
      (command "eigändr" temp "" "la" "Layer_1" "f" "vonlayer" "")
      )
    )
  )

Danke an alle die mir geholfen haben!
Jonny

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 04. Okt. 2010 08: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 jonnymaier1 10 Unities + Antwort hilfreich

Hallo Jonny,

Zitat:
Original erstellt von  jonnymaier1:

Ich hab jetzt einfach ein (command) eingefügt um die Vorauswahl aufzuheben und es funktioniert!

(defun c:lay_1 ()
  (setq temp (ssget "I"))
  (if (= temp nil)
    (command "-layer" "se" "Layer_1" "")
    (progn
     [b] (command)

      (command "eigändr" temp "" "la" "Layer_1" "f" "vonlayer" "")
      )
    )
  )
[/B]


ein Auswahl von Objekten setzen ich so zurück:

( defun auswahl_zuruecksetzen ( /
                                cpauswahl )
 
; Die Auswahl der Objekte zurücksetzen
  (setq cpauswahl (ssget "_p"))
  (if (/= cpauswahl nil)
    (command "_.select" cpauswahl "") ; Auswahl aufheben
  ) ; if

; Rückgabewert
  (princ)

) ; Modulende 

Ich habe bisher keine Probleme damit gehabt. Vielleicht hilft es auch Dir.

Viele Grüße
Bernd

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: 04. Okt. 2010 08: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 jonnymaier1 10 Unities + Antwort hilfreich

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